diff --git a/Ada95/gen/Makefile.in b/Ada95/gen/Makefile.in
index 48df318..525ce99 100644
--- a/Ada95/gen/Makefile.in
+++ b/Ada95/gen/Makefile.in
@@ -1,5 +1,6 @@
 ##############################################################################
-# Copyright (c) 1998-2014,2015 Free Software Foundation, Inc.                #
+# Copyright 2019-2022,2024 Thomas E. Dickey                                  #
+# Copyright 1998-2015,2018 Free Software 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,8 +28,9 @@
 ##############################################################################
 #
 #  Author:  Juergen Pfeifer, 1996
+#     and:  Thomas E. Dickey, 1997
 #
-#  $Id: Makefile.in,v 1.85 2015/08/05 23:06:31 tom Exp $
+#  $Id: Makefile.in,v 1.103 2024/01/19 16:51:56 tom Exp $
 #
 .SUFFIXES:
 
@@ -46,8 +48,8 @@
 bindir		= @bindir@
 includedir	= @includedir@
 
-INSTALL		= @INSTALL@
-INSTALL_PROG	= @INSTALL_PROGRAM@
+INSTALL		= @INSTALL@ @INSTALL_OPT_O@
+INSTALL_SCRIPT	= @INSTALL_SCRIPT@
 INSTALL_DATA	= @INSTALL_DATA@
 
 AWK		= @AWK@
@@ -56,7 +58,7 @@
 CC		= @CC@
 HOST_CC		= @BUILD_CC@
 
-CFLAGS		= @CFLAGS@
+CFLAGS		= @CFLAGS@ @EXTRA_CFLAGS@
 HOST_CFLAGS	= @BUILD_CFLAGS@
 
 CPPFLAGS	= @CPPFLAGS@
@@ -64,9 +66,9 @@
 		  -DHAVE_CONFIG_H -I$(srcdir)
 
 CCFLAGS		= $(HOST_CPPFLAGS) $(HOST_CFLAGS)
-CFLAGS_NORMAL	= $(CCFLAGS)
-CFLAGS_DEBUG	= $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE	= $(CCFLAGS) -pg
+CFLAGS_NORMAL	= $(CCFLAGS) -DNCURSES_STATIC
+CFLAGS_DEBUG	= $(CCFLAGS) -DNCURSES_STATIC @CC_G_OPT@ -DTRACE
+CFLAGS_PROFILE	= $(CCFLAGS) -DNCURSES_STATIC -pg
 CFLAGS_SHARED	= $(CCFLAGS) @CC_SHARED_OPTS@
 
 CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
@@ -98,11 +100,10 @@
 WRAPPER		= @NCURSES_SHLIB2@
 
 PROG_GENERATE	= ./generate$x
-GENERATE	= $(PROG_GENERATE) '@DFT_ARG_SUFFIX@'
+GENERATE	= $(PROG_GENERATE) '@USE_ARG_SUFFIX@'
 DEL_ADAMODE	= sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
 
-GNATHTML	= `type -p gnathtml || type -p gnathtml.pl 2>/dev/null`
-GNATHP          = www.gnat.com
+GNATHTML	= `command -v gnathtml || command -v gnathtml.pl`
 
 ################################################################################
 ALIB            = @cf_ada_package@
@@ -141,6 +142,19 @@
 	          $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4	\
 	          $(srcdir)/$(ABASE)-panels-user_data.ads.m4
 
+################################################################################
+
+@MAKE_PHONY@.PHONY :	all
+@MAKE_PHONY@.PHONY :	clean
+@MAKE_PHONY@.PHONY :	distclean
+@MAKE_PHONY@.PHONY :	install
+@MAKE_PHONY@.PHONY :	install.libs
+@MAKE_PHONY@.PHONY :	libs
+@MAKE_PHONY@.PHONY :	mostlyclean
+@MAKE_PHONY@.PHONY :	realclean
+@MAKE_PHONY@.PHONY :	sources
+@MAKE_PHONY@.PHONY :	uninstall
+@MAKE_PHONY@.PHONY :	uninstall.libs
 
 all \
 libs :	$(GEN_TARGETS)
@@ -153,7 +167,7 @@
 
 install \
 install.libs :: $(DESTDIR)$(bindir) $(ADACURSES_CONFIG)
-	$(INSTALL_PROG) $(ADACURSES_CONFIG) $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
+	$(INSTALL_SCRIPT) $(ADACURSES_CONFIG) $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
 
 uninstall \
 uninstall.libs ::
@@ -166,10 +180,11 @@
 	$(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
 
 $(ADA_SRCDIR)/$(ABASE)_constants.ads: $(PROG_GENERATE)
-	$(WRAPPER) "$(GENERATE)" >$@
+	$(WRAPPER) "$(GENERATE) $@"
 ################################################################################
 $(ADA_SRCDIR)/$(ABASE).ads: 	$(srcdir)/$(ABASE).ads.m4 \
-				$(srcdir)/normal.m4
+				$(srcdir)/normal.m4 \
+				options.m4
 	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
 	$(srcdir)/$(ABASE).ads.m4 |\
 	$(DEL_ADAMODE) >$@
@@ -270,6 +285,7 @@
 	-rm -f a.out core $(PROG_GENERATE) *.o
 
 clean :: mostlyclean
+	-rm -f options.m4
 	-rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
 
 distclean :: clean
@@ -280,36 +296,46 @@
 
 HTML_DIR = @ADAHTML_DIR@
 
+options.m4 :
+	$(SHELL) -c "if [ @cf_cv_enable_sigwinch@ = 0 ]; \
+		then \
+			dashes='   --'; \
+		else \
+			dashes='';\
+		fi; \
+		echo \"define(OPT_KEY_RESIZE,\\\`\$$dashes')dnl\" > $@"
+
 instab.tmp : table.m4 $(GEN_SRC)
 	@rm -f $@
 	@for f in $(GEN_SRC) ; do \
 	  $(M4) $(M4FLAGS) -DM4MACRO=table.m4 $$f | $(DEL_ADAMODE) >> $@ ;\
 	done;
 
+TABLE_TITLE=Correspondence between ncurses C and Ada functions
+
 $(HTML_DIR)/table.html : instab.tmp
 	@-touch $@
 	@-chmod +w $@
-	@echo '<!DOCTYPE HTML'  > $@
-	@echo 'PUBLIC "-//IETF//DTD HTML 3.0//EN">' >> $@
-	@echo '<HTML>' >> $@
-	@echo '<HEAD>' >> $@
-	@echo '<TITLE>Correspondence between ncurses C and Ada functions</TITLE>' >>$@
-	@echo '</HEAD>' >> $@
-	@echo '<BODY>' >> $@
-	@echo '<H1>Correspondence between ncurses C and Ada functions</H1>' >>$@
-	@echo '<H2>Sorted by C function name</H2>' >>$@
-	@echo '<TABLE ALIGN=CENTER BORDER>' >>$@
-	@echo '<TR ALIGN=LEFT>' >>$@
-	@echo '<TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>' >>$@
+	@echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">' > $@
+	@echo '<html>' >> $@
+	@echo '<head>' >> $@
+	@echo '<title>$(TABLE_TITLE)</title>' >>$@
+	@echo '</head>' >> $@
+	@echo '<body>' >> $@
+	@echo '<h1>$(TABLE_TITLE)</h1>' >>$@
+	@echo '<h2>Sorted by C function name</h2>' >>$@
+	@echo '<table align="center" border summary="$(TABLE_TITLE)">' >>$@
+	@echo '<tr align="left">' >>$@
+	@echo '<th>C name</th><th>Ada name</th><th>man page</th></tr>' >>$@
 	@sort < instab.tmp >> $@
-	@echo '</TABLE></BODY></HTML>' >>$@
+	@echo '</table></body></html>' >>$@
 	@rm -f instab.tmp
 
 adahtml:
 	test -n "$(GNATHTML)" || exit 1
 	@find $(HTML_DIR) -type f -exec rm -f {} \;
 	@mkdir -p $(HTML_DIR)
-	cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
+	( cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb] )
 @USE_OLD_MAKERULES@	ln -sf ../src/*.ali .
 @USE_GNAT_PROJECTS@	ln -sf ../static-ali/*.ali .
 	@echo "Filtering generated files"
@@ -326,9 +352,11 @@
 	for f in html/$(ALIB)*.htm*; do \
 	   a=`basename $$f` ; \
 	   sed -e 's/You may also.*body.*//' <$$f |\
-	   sed -e 's%GNAT%<A HREF="http://$(GNATHP)">GNAT</A>%g' |\
+	   sed -e 's%\<GNAT\>%<strong>GNAT</strong>%g' |\
 	   sed -e 's%&lt;A HREF%<A HREF%g' |\
 	   sed -e 's%"&gt;%">%g' |\
+	   sed -e 's%#1A\([[:space:]]*NAME="[^"]*"\)#2%<A\1>%' |\
+	   sed -e 's%#1/A#2%</A>%' |\
 	   sed -e 's/3X/3x/g' |\
 	   sed -e 's/$$\([ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxz0123456789_]*:.*\)\$$/@\1@/' |\
 	   sed -e 's%&lt;/A&gt;%</A>%g' > $$a.tmp ;\
diff --git a/Ada95/gen/adacurses-config.in b/Ada95/gen/adacurses-config.in
index e29c309..a539417 100644
--- a/Ada95/gen/adacurses-config.in
+++ b/Ada95/gen/adacurses-config.in
@@ -1,7 +1,8 @@
 #! /bin/sh
-# $Id: adacurses-config.in,v 1.9 2014/06/07 19:32:22 Pascal.Pignard Exp $
+# $Id: adacurses-config.in,v 1.15 2022/07/16 21:16:43 tom Exp $
 ##############################################################################
-# Copyright (c) 2007-2010,2014 Free Software Foundation, Inc.                #
+# Copyright 2019-2020,2022 Thomas E. Dickey                                  #
+# Copyright 2007-2014,2016 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -41,19 +42,20 @@
 VERSION=@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@
 
 CFLAGS="-aI$ADA_INCLUDE -aO$ADA_OBJECTS"
-LIBS="-L$ADA_OBJECTS -lAdaCurses"
+LIBS="-L$ADA_OBJECTS -l@ADA_LIBNAME@"
 
-THIS="adacurses"
+THIS="@ADA_LIBNAME@"
+THIS_CFG="${THIS}@DFT_ARG_SUFFIX@-config"
 
 case "x$1" in
 	x--version)
-		echo AdaCurses $VERSION
+		echo @ADA_LIBNAME@ $VERSION
 		;;
 	x--cflags)
-		echo $CFLAGS
+		echo "$CFLAGS"
 		;;
 	x--libs)
-		echo $LIBS
+		echo "$LIBS"
 		;;
 	x)
 		# if no parameter is given, give what gnatmake needs
@@ -61,7 +63,7 @@
 		;;
 	x--help)
 		cat <<ENDHELP
-Usage: ${THIS}-config [options]
+Usage: ${THIS_CFG} [options]
 
 Options:
   --cflags           echos the gnat (Ada compiler) flags needed to compile with ${THIS}
@@ -75,7 +77,7 @@
 ENDHELP
 		;;
 	*)
-		echo 'Usage: adacurses@DFT_ARG_SUFFIX@-config [--version | --cflags | --libs]' >&2
+		echo "Usage: ${THIS_CFG} [--version | --cflags | --libs]" >&2
 		exit 1
 		;;
 esac
diff --git a/Ada95/gen/gen.c b/Ada95/gen/gen.c
index 4e986a4..b37de1b 100644
--- a/Ada95/gen/gen.c
+++ b/Ada95/gen/gen.c
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc.              *
+ * Copyright 2020-2021,2024 Thomas E. Dickey                                *
+ * Copyright 1998-2014,2016 Free 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,11 +29,13 @@
 
 /****************************************************************************
  *   Author:  Juergen Pfeifer, 1996                                         *
+ *      and:  Thomas E. Dickey, 1998                                        *
+ *      and:  Nicolas Boulenguez, 2011                                      *
  ****************************************************************************/
 
 /*
     Version Control
-    $Id: gen.c,v 1.69 2014/05/31 21:00:08 tom Exp $
+    $Id: gen.c,v 1.79 2024/01/19 13:41:45 tom Exp $
   --------------------------------------------------------------------------*/
 /*
   This program prints on its standard output the source for the
@@ -54,9 +57,11 @@
 
 #undef UCHAR
 #undef UINT
+#undef ULONG
 
 typedef unsigned char UCHAR;
 typedef unsigned int UINT;
+typedef unsigned long ULONG;
 
 /* These global variables will be set by main () */
 static int little_endian;
@@ -70,19 +75,36 @@
 }
 
 static void
-print_constant(const char *name,
+print_constant(FILE * fp,
+	       const char *name,
+	       UINT value)
+{
+  fprintf(fp, "   %-28s : constant := %u;\n", name, value);
+}
+
+static void
+print_long_val(FILE * fp,
+	       const char *name,
 	       long value)
 {
-  printf("   %-28s : constant := %ld;\n", name, value);
+  fprintf(fp, "   %-28s : constant := %ld;\n", name, value);
+}
+
+static void
+print_size_of(FILE * fp,
+	      const char *name,
+	      size_t value)
+{
+  fprintf(fp, "   %-28s : constant := %lu;\n", name, (unsigned long)value);
 }
 
 #define PRINT_NAMED_CONSTANT(name) \
-  print_constant (#name, name)
+  print_long_val (fp, #name, name)
 
 static void
-print_comment(const char *message)
+print_comment(FILE * fp, const char *message)
 {
-  printf("\n   --  %s\n\n", message);
+  fprintf(fp, "\n   --  %s\n\n", message);
 }
 
 /*
@@ -108,7 +130,7 @@
   else				/* or */
     bit = ~offset;		/* 7 - offset */
   bit &= 7;			/* modulo 8 */
-  return byte & (UCHAR) (1 << bit);
+  return (UCHAR) (byte & (1 << bit));
 }
 
 /* Find lowest and highest used offset in a byte array. */
@@ -141,8 +163,8 @@
     c_type mask = (mask_macro);                                         \
     if (!find_pos ((UCHAR *)&mask, sizeof (mask), &first, &last))       \
       my_error ("failed to locate " ada_name);                          \
-    print_constant (ada_name "_First", first);                          \
-    print_constant (ada_name "_Last", last);                            \
+    print_constant (fp, ada_name "_First", first);                      \
+    print_constant (fp, ada_name "_Last", last);                        \
   }
 
 #define PRINT_NAMED_BITMASK(c_type, mask_macro)         \
@@ -156,8 +178,8 @@
     memset (&mask.field, 0xff, sizeof(mask.field));                     \
     if (!find_pos ((UCHAR *)&mask, sizeof (mask), &first, &last))       \
       my_error ("failed to locate" #record "_" #field);                 \
-    print_constant (#record "_" #field "_First", first);                \
-    print_constant (#record "_" #field "_Last", last);                  \
+    print_constant (fp, #record "_" #field "_First", first);            \
+    print_constant (fp, #record "_" #field "_Last", last);              \
   }
 
 /*--------------------*/
@@ -167,6 +189,7 @@
 int
 main(int argc, const char *argv[])
 {
+  FILE *fp = 0;
   const int x = 0x12345678;
 
   little_endian = (*((const char *)&x) == 0x78);
@@ -176,40 +199,61 @@
   if (KEY_MIN == 256)
     my_error("unexpected value for KEY_MIN: 256");
 
-  if (argc != 2)
-    my_error("Only one argument expected (DFT_ARG_SUFFIX)");
+  if (argc == 3)
+    {
+      fp = fopen(argv[2], "wb");
+    }
+  else if (argc == 2)
+    {
+      fp = stdout;
+    }
+  else
+    {
+      my_error("Only one or two arguments expected (DFT_ARG_SUFFIX)");
+    }
 
-  printf("--  Generated by the C program %s (source " __FILE__ ").\n",
-	 my_program_invocation_name);
-  printf("--  Do not edit this file directly.\n");
-  printf("--  The values provided here may vary on your system.\n");
-  printf("\n");
-  printf("with System;\n");
-  printf("package Terminal_Interface.Curses_Constants is\n");
-  printf("   pragma Pure;\n");
-  printf("\n");
+  if ((strlen(argv[0]) + strlen(__FILE__)) > 25)
+    {
+      fprintf(fp, "--  Generated by the C program %.40s.\n",
+	      my_program_invocation_name);
+    }
+  else
+    {
+      fprintf(fp, "--  Generated by the C program %s (source %s).\n",
+	      my_program_invocation_name,
+	      __FILE__);
+    }
+  fprintf(fp, "--  Do not edit this file directly.\n");
+  fprintf(fp, "--  The values provided here may vary on your system.\n");
+  fprintf(fp, "\n");
+  fprintf(fp, "with System;\n");
+  fprintf(fp, "package Terminal_Interface.Curses_Constants is\n");
+  fprintf(fp, "   pragma Pure;\n");
+  fprintf(fp, "\n");
 
-  printf("   DFT_ARG_SUFFIX : constant String := \"%s\";\n", argv[1]);
-  printf("   Bit_Order : constant System.Bit_Order := System.%s_Order_First;\n",
-	 little_endian ? "Low" : "High");
-  print_constant("Sizeof_Bool", 8 * sizeof(bool));
+  fprintf(fp, "   DFT_ARG_SUFFIX : constant String := \"%s\";\n", argv[1]);
+  fprintf(fp,
+	  "   Bit_Order : constant System.Bit_Order := System.%s_Order_First;\n",
+	  little_endian ? "Low" : "High");
+  print_size_of(fp, "Sizeof_Bool", 8 * sizeof(bool));
 
   PRINT_NAMED_CONSTANT(OK);
   PRINT_NAMED_CONSTANT(ERR);
-  printf("   pragma Warnings (Off); -- redefinition of Standard.True and False\n");
+  fprintf(fp,
+	  "   pragma Warnings (Off); -- redefinition of Standard.True and False\n");
   PRINT_NAMED_CONSTANT(TRUE);
   PRINT_NAMED_CONSTANT(FALSE);
-  printf("   pragma Warnings (On);\n");
+  fprintf(fp, "   pragma Warnings (On);\n");
 
-  print_comment("Version of the ncurses library from extensions(3NCURSES)");
+  print_comment(fp, "Version of the ncurses library from extensions(3NCURSES)");
   PRINT_NAMED_CONSTANT(NCURSES_VERSION_MAJOR);
   PRINT_NAMED_CONSTANT(NCURSES_VERSION_MINOR);
-  printf("   Version : constant String := \"%d.%d\";\n",
-	 NCURSES_VERSION_MAJOR, NCURSES_VERSION_MINOR);
+  fprintf(fp, "   Version : constant String := \"%d.%d\";\n",
+	  NCURSES_VERSION_MAJOR, NCURSES_VERSION_MINOR);
 
-  print_comment("Character non-color attributes from attr(3NCURSES)");
-  printf("   --  attr_t and chtype may be signed in C.\n");
-  printf("   type attr_t is mod 2 ** %lu;\n", (long unsigned)(8 * sizeof(attr_t)));
+  print_comment(fp, "Character non-color attributes from attr(3NCURSES)");
+  fprintf(fp, "   --  attr_t and chtype may be signed in C.\n");
+  fprintf(fp, "   type attr_t is mod 2 ** %lu;\n", (long unsigned)(8 * sizeof(attr_t)));
   PRINT_NAMED_BITMASK(attr_t, A_CHARTEXT);
   PRINT_NAMED_BITMASK(attr_t, A_COLOR);
   PRINT_BITMASK(attr_t, "Attr", A_ATTRIBUTES & ~A_COLOR);
@@ -228,9 +272,9 @@
   PRINT_NAMED_BITMASK(attr_t, A_RIGHT);
   PRINT_NAMED_BITMASK(attr_t, A_TOP);
   PRINT_NAMED_BITMASK(attr_t, A_VERTICAL);
-  print_constant("chtype_Size", 8 * sizeof(chtype));
+  print_size_of(fp, "chtype_Size", 8 * sizeof(chtype));
 
-  print_comment("predefined color numbers from color(3NCURSES)");
+  print_comment(fp, "predefined color numbers from color(3NCURSES)");
   PRINT_NAMED_CONSTANT(COLOR_BLACK);
   PRINT_NAMED_CONSTANT(COLOR_RED);
   PRINT_NAMED_CONSTANT(COLOR_GREEN);
@@ -240,7 +284,7 @@
   PRINT_NAMED_CONSTANT(COLOR_CYAN);
   PRINT_NAMED_CONSTANT(COLOR_WHITE);
 
-  print_comment("ETI return codes from ncurses.h");
+  print_comment(fp, "ETI return codes from ncurses.h");
   PRINT_NAMED_CONSTANT(E_OK);
   PRINT_NAMED_CONSTANT(E_SYSTEM_ERROR);
   PRINT_NAMED_CONSTANT(E_BAD_ARGUMENT);
@@ -257,14 +301,14 @@
   PRINT_NAMED_CONSTANT(E_INVALID_FIELD);
   PRINT_NAMED_CONSTANT(E_CURRENT);
 
-  print_comment("Input key codes not defined in any ncurses manpage");
+  print_comment(fp, "Input key codes not defined in any ncurses manpage");
   PRINT_NAMED_CONSTANT(KEY_MIN);
   PRINT_NAMED_CONSTANT(KEY_MAX);
 #ifdef KEY_CODE_YES
   PRINT_NAMED_CONSTANT(KEY_CODE_YES);
 #endif
 
-  print_comment("Input key codes from getch(3NCURSES)");
+  print_comment(fp, "Input key codes from getch(3NCURSES)");
   PRINT_NAMED_CONSTANT(KEY_BREAK);
   PRINT_NAMED_CONSTANT(KEY_DOWN);
   PRINT_NAMED_CONSTANT(KEY_UP);
@@ -273,30 +317,31 @@
   PRINT_NAMED_CONSTANT(KEY_HOME);
   PRINT_NAMED_CONSTANT(KEY_BACKSPACE);
   PRINT_NAMED_CONSTANT(KEY_F0);
-  print_constant("KEY_F1", KEY_F(1));
-  print_constant("KEY_F2", KEY_F(2));
-  print_constant("KEY_F3", KEY_F(3));
-  print_constant("KEY_F4", KEY_F(4));
-  print_constant("KEY_F5", KEY_F(5));
-  print_constant("KEY_F6", KEY_F(6));
-  print_constant("KEY_F7", KEY_F(7));
-  print_constant("KEY_F8", KEY_F(8));
-  print_constant("KEY_F9", KEY_F(9));
-  print_constant("KEY_F10", KEY_F(10));
-  print_constant("KEY_F11", KEY_F(11));
-  print_constant("KEY_F12", KEY_F(12));
-  print_constant("KEY_F13", KEY_F(13));
-  print_constant("KEY_F14", KEY_F(14));
-  print_constant("KEY_F15", KEY_F(15));
-  print_constant("KEY_F16", KEY_F(16));
-  print_constant("KEY_F17", KEY_F(17));
-  print_constant("KEY_F18", KEY_F(18));
-  print_constant("KEY_F19", KEY_F(19));
-  print_constant("KEY_F20", KEY_F(20));
-  print_constant("KEY_F21", KEY_F(21));
-  print_constant("KEY_F22", KEY_F(22));
-  print_constant("KEY_F23", KEY_F(23));
-  print_constant("KEY_F24", KEY_F(24));
+#define PRINT_NAMED_FUNC_KEY(name) print_constant(fp, "KEY_F"#name, KEY_F(name))
+  PRINT_NAMED_FUNC_KEY(1);
+  PRINT_NAMED_FUNC_KEY(2);
+  PRINT_NAMED_FUNC_KEY(3);
+  PRINT_NAMED_FUNC_KEY(4);
+  PRINT_NAMED_FUNC_KEY(5);
+  PRINT_NAMED_FUNC_KEY(6);
+  PRINT_NAMED_FUNC_KEY(7);
+  PRINT_NAMED_FUNC_KEY(8);
+  PRINT_NAMED_FUNC_KEY(9);
+  PRINT_NAMED_FUNC_KEY(10);
+  PRINT_NAMED_FUNC_KEY(11);
+  PRINT_NAMED_FUNC_KEY(12);
+  PRINT_NAMED_FUNC_KEY(13);
+  PRINT_NAMED_FUNC_KEY(14);
+  PRINT_NAMED_FUNC_KEY(15);
+  PRINT_NAMED_FUNC_KEY(16);
+  PRINT_NAMED_FUNC_KEY(17);
+  PRINT_NAMED_FUNC_KEY(18);
+  PRINT_NAMED_FUNC_KEY(19);
+  PRINT_NAMED_FUNC_KEY(20);
+  PRINT_NAMED_FUNC_KEY(21);
+  PRINT_NAMED_FUNC_KEY(22);
+  PRINT_NAMED_FUNC_KEY(23);
+  PRINT_NAMED_FUNC_KEY(24);
   PRINT_NAMED_CONSTANT(KEY_DL);
   PRINT_NAMED_CONSTANT(KEY_IL);
   PRINT_NAMED_CONSTANT(KEY_DC);
@@ -379,10 +424,12 @@
   PRINT_NAMED_CONSTANT(KEY_SUSPEND);
   PRINT_NAMED_CONSTANT(KEY_UNDO);
   PRINT_NAMED_CONSTANT(KEY_MOUSE);
+#ifdef KEY_RESIZE
   PRINT_NAMED_CONSTANT(KEY_RESIZE);
+#endif
 
-  print_comment("alternate character codes (ACS) from addch(3NCURSES)");
-#define PRINT_ACS(name) print_constant (#name, &name - &acs_map[0])
+  print_comment(fp, "alternate character codes (ACS) from addch(3NCURSES)");
+#define PRINT_ACS(name) print_size_of (fp, #name, (size_t)(&name - &acs_map[0]))
   PRINT_ACS(ACS_ULCORNER);
   PRINT_ACS(ACS_LLCORNER);
   PRINT_ACS(ACS_URCORNER);
@@ -416,20 +463,20 @@
   PRINT_ACS(ACS_NEQUAL);
   PRINT_ACS(ACS_STERLING);
 
-  print_comment("Menu_Options from opts(3MENU)");
+  print_comment(fp, "Menu_Options from opts(3MENU)");
   PRINT_NAMED_BITMASK(Menu_Options, O_ONEVALUE);
   PRINT_NAMED_BITMASK(Menu_Options, O_SHOWDESC);
   PRINT_NAMED_BITMASK(Menu_Options, O_ROWMAJOR);
   PRINT_NAMED_BITMASK(Menu_Options, O_IGNORECASE);
   PRINT_NAMED_BITMASK(Menu_Options, O_SHOWMATCH);
   PRINT_NAMED_BITMASK(Menu_Options, O_NONCYCLIC);
-  print_constant("Menu_Options_Size", 8 * sizeof(Menu_Options));
+  print_size_of(fp, "Menu_Options_Size", 8 * sizeof(Menu_Options));
 
-  print_comment("Item_Options from menu_opts(3MENU)");
+  print_comment(fp, "Item_Options from menu_opts(3MENU)");
   PRINT_NAMED_BITMASK(Item_Options, O_SELECTABLE);
-  print_constant("Item_Options_Size", 8 * sizeof(Item_Options));
+  print_size_of(fp, "Item_Options_Size", 8 * sizeof(Item_Options));
 
-  print_comment("Field_Options from field_opts(3FORM)");
+  print_comment(fp, "Field_Options from field_opts(3FORM)");
   PRINT_NAMED_BITMASK(Field_Options, O_VISIBLE);
   PRINT_NAMED_BITMASK(Field_Options, O_ACTIVE);
   PRINT_NAMED_BITMASK(Field_Options, O_PUBLIC);
@@ -440,27 +487,28 @@
   PRINT_NAMED_BITMASK(Field_Options, O_NULLOK);
   PRINT_NAMED_BITMASK(Field_Options, O_PASSOK);
   PRINT_NAMED_BITMASK(Field_Options, O_STATIC);
-  print_constant("Field_Options_Size", 8 * sizeof(Field_Options));
+  print_size_of(fp, "Field_Options_Size", 8 * sizeof(Field_Options));
 
-  print_comment("Field_Options from opts(3FORM)");
+  print_comment(fp, "Field_Options from opts(3FORM)");
   PRINT_NAMED_BITMASK(Field_Options, O_NL_OVERLOAD);
   PRINT_NAMED_BITMASK(Field_Options, O_BS_OVERLOAD);
+
   /*  Field_Options_Size is defined below */
 
-  print_comment("MEVENT structure from mouse(3NCURSES)");
+  print_comment(fp, "MEVENT structure from mouse(3NCURSES)");
   STRUCT_OFFSET(MEVENT, id);
   STRUCT_OFFSET(MEVENT, x);
   STRUCT_OFFSET(MEVENT, y);
   STRUCT_OFFSET(MEVENT, z);
   STRUCT_OFFSET(MEVENT, bstate);
-  print_constant("MEVENT_Size", 8 * sizeof(MEVENT));
+  print_size_of(fp, "MEVENT_Size", 8 * sizeof(MEVENT));
 
-  print_comment("mouse events from mouse(3NCURSES)");
+  print_comment(fp, "mouse events from mouse(3NCURSES)");
   {
     mmask_t all_events;
 
 #define PRINT_MOUSE_EVENT(event)                \
-    print_constant (#event, event);             \
+    print_constant (fp, #event, event);         \
     all_events |= event
 
     all_events = 0;
@@ -472,7 +520,7 @@
 #ifdef BUTTON1_RESERVED_EVENT
     PRINT_MOUSE_EVENT(BUTTON1_RESERVED_EVENT);
 #endif
-    print_constant("all_events_button_1", (long)all_events);
+    print_constant(fp, "all_events_button_1", (UINT) all_events);
 
     all_events = 0;
     PRINT_MOUSE_EVENT(BUTTON2_RELEASED);
@@ -483,7 +531,7 @@
 #ifdef BUTTON2_RESERVED_EVENT
     PRINT_MOUSE_EVENT(BUTTON2_RESERVED_EVENT);
 #endif
-    print_constant("all_events_button_2", (long)all_events);
+    print_constant(fp, "all_events_button_2", (UINT) all_events);
 
     all_events = 0;
     PRINT_MOUSE_EVENT(BUTTON3_RELEASED);
@@ -494,7 +542,7 @@
 #ifdef BUTTON3_RESERVED_EVENT
     PRINT_MOUSE_EVENT(BUTTON3_RESERVED_EVENT);
 #endif
-    print_constant("all_events_button_3", (long)all_events);
+    print_constant(fp, "all_events_button_3", (UINT) all_events);
 
     all_events = 0;
     PRINT_MOUSE_EVENT(BUTTON4_RELEASED);
@@ -505,7 +553,7 @@
 #ifdef BUTTON4_RESERVED_EVENT
     PRINT_MOUSE_EVENT(BUTTON4_RESERVED_EVENT);
 #endif
-    print_constant("all_events_button_4", (long)all_events);
+    print_constant(fp, "all_events_button_4", (UINT) all_events);
   }
   PRINT_NAMED_CONSTANT(BUTTON_CTRL);
   PRINT_NAMED_CONSTANT(BUTTON_SHIFT);
@@ -513,7 +561,7 @@
   PRINT_NAMED_CONSTANT(REPORT_MOUSE_POSITION);
   PRINT_NAMED_CONSTANT(ALL_MOUSE_EVENTS);
 
-  print_comment("trace selection from trace(3NCURSES)");
+  print_comment(fp, "trace selection from trace(3NCURSES)");
   PRINT_NAMED_BITMASK(UINT, TRACE_TIMES);
   PRINT_NAMED_BITMASK(UINT, TRACE_TPUTS);
   PRINT_NAMED_BITMASK(UINT, TRACE_UPDATE);
@@ -527,8 +575,8 @@
   PRINT_NAMED_BITMASK(UINT, TRACE_CCALLS);
   PRINT_NAMED_BITMASK(UINT, TRACE_DATABASE);
   PRINT_NAMED_BITMASK(UINT, TRACE_ATTRS);
-  print_constant("Trace_Size", 8 * sizeof(UINT));
+  print_size_of(fp, "Trace_Size", 8 * sizeof(UINT));
 
-  printf("end Terminal_Interface.Curses_Constants;\n");
+  fprintf(fp, "end Terminal_Interface.Curses_Constants;\n");
   exit(EXIT_SUCCESS);
 }
diff --git a/Ada95/gen/html.m4 b/Ada95/gen/html.m4
index 8df2653..22374f6 100644
--- a/Ada95/gen/html.m4
+++ b/Ada95/gen/html.m4
@@ -1,5 +1,6 @@
 dnl***************************************************************************
-dnl Copyright (c) 2000-2006,2007 Free Software Foundation, Inc.              *
+dnl Copyright 2019,2020 Thomas E. Dickey                                     *
+dnl Copyright 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 +27,7 @@
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl $Id: html.m4,v 1.3 2007/09/01 23:59:59 tom Exp $
+dnl $Id: html.m4,v 1.5 2020/02/02 23:34:34 tom Exp $
 define(`ANCHORIDX',`0')dnl
 define(`MANPAGE',`define(`MANPG',$1)dnl
 |=====================================================================
@@ -35,6 +36,6 @@
 define(`ANCHOR',`define(`ANCHORIDX',incr(ANCHORIDX))dnl
 `#'1A NAME="AFU`_'ANCHORIDX"`#'2dnl
 define(`CFUNAME',`$1')define(`AFUNAME',`$2')dnl
-|')dnl
+|#1/A#2')dnl
 define(`AKA',``AKA': <A HREF="../man/MANPG.html">CFUNAME</A>')dnl
 define(`ALIAS',``AKA': $1')dnl
diff --git a/Ada95/gen/normal.m4 b/Ada95/gen/normal.m4
index 9529976..5132702 100644
--- a/Ada95/gen/normal.m4
+++ b/Ada95/gen/normal.m4
@@ -1,5 +1,6 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+dnl Copyright 2020 Thomas E. Dickey                                          *
+dnl Copyright 1998,2006 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 +27,7 @@
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl $Id: normal.m4,v 1.2 2006/04/22 23:16:14 tom Exp $
+dnl $Id: normal.m4,v 1.3 2020/02/02 23:34:34 tom Exp $
 define(`MANPAGE',`define(`MANPG',$1)dnl
 |=====================================================================
    --  | Man page MANPG
diff --git a/Ada95/gen/table.m4 b/Ada95/gen/table.m4
index 36b0027..7de07d3 100644
--- a/Ada95/gen/table.m4
+++ b/Ada95/gen/table.m4
@@ -1,5 +1,6 @@
 dnl***************************************************************************
-dnl Copyright (c) 2000,2006 Free Software Foundation, Inc.                   *
+dnl Copyright 2020 Thomas E. Dickey                                          *
+dnl Copyright 2000,2006 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 +27,7 @@
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl $Id: table.m4,v 1.2 2006/04/22 23:16:44 tom Exp $
+dnl $Id: table.m4,v 1.3 2020/02/02 23:34:34 tom Exp $
 define(`ANCHORIDX',`0')dnl
 define(`MANPAGE',`define(`MANPG',$1)')dnl
 divert(-1)dnl
diff --git a/Ada95/gen/terminal_interface-curses-aux.ads.m4 b/Ada95/gen/terminal_interface-curses-aux.ads.m4
index b90b8dd..94eaad8 100644
--- a/Ada95/gen/terminal_interface-curses-aux.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-aux.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc.              --
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1998-2011,2014 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,7 +39,7 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.23 $
+--  $Revision: 1.25 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
@@ -48,8 +49,6 @@
 package Terminal_Interface.Curses.Aux is
    pragma Preelaborate (Terminal_Interface.Curses.Aux);
 
-   use type Interfaces.C.int;
-
    subtype C_Int      is Interfaces.C.int;
    subtype C_Short    is Interfaces.C.short;
    subtype C_Long_Int is Interfaces.C.long;
diff --git a/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 b/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
index 51682cd..0f5db6c 100644
--- a/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc.              --
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1998-2011,2014 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,7 +39,7 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.19 $
+--  $Revision: 1.21 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
@@ -46,7 +47,6 @@
 
 package Terminal_Interface.Curses.Forms.Field_Types is
    pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
-   use type Interfaces.C.int;
    subtype C_Int is Interfaces.C.int;
 
    --  MANPAGE(`form_fieldtype.3x')
diff --git a/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4 b/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4
index 9de700b..71334b6 100644
--- a/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc.              --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2003,2009 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,7 +39,7 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.16 $
+--  $Revision: 1.17 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
diff --git a/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4 b/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4
index f7fb1a7..4a98949 100644
--- a/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc.              --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2003,2009 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,7 +39,7 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.15 $
+--  $Revision: 1.16 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
diff --git a/Ada95/gen/terminal_interface-curses-forms.ads.m4 b/Ada95/gen/terminal_interface-curses-forms.ads.m4
index b269f4c..1293d37 100644
--- a/Ada95/gen/terminal_interface-curses-forms.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-forms.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc.              --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2009,2014 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,8 +39,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.33 $
---  $Date: 2014/05/24 21:31:57 $
+--  $Revision: 1.34 $
+--  $Date: 2020/02/02 23:34:34 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
diff --git a/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4 b/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4
index 4ffa41b..57dc963 100644
--- a/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc.              --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2006,2009 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,8 +39,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.17 $
---  $Date: 2009/12/26 17:31:35 $
+--  $Revision: 1.18 $
+--  $Date: 2020/02/02 23:34:34 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
diff --git a/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4 b/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4
index 9138ba6..af8ae12 100644
--- a/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc.              --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2003,2009 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,7 +39,7 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.15 $
+--  $Revision: 1.16 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
diff --git a/Ada95/gen/terminal_interface-curses-menus.ads.m4 b/Ada95/gen/terminal_interface-curses-menus.ads.m4
index 0ad9c45..6914c16 100644
--- a/Ada95/gen/terminal_interface-curses-menus.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-menus.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc.              --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2009,2014 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,8 +39,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.31 $
---  $Date: 2014/05/24 21:31:57 $
+--  $Revision: 1.32 $
+--  $Date: 2020/02/02 23:34:34 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
diff --git a/Ada95/gen/terminal_interface-curses-mouse.ads.m4 b/Ada95/gen/terminal_interface-curses-mouse.ads.m4
index 8d3f8ed..6506b4e 100644
--- a/Ada95/gen/terminal_interface-curses-mouse.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-mouse.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2014,2015 Free Software Foundation, Inc.              --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2014,2015 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,8 +39,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.32 $
---  $Date: 2015/05/30 23:19:19 $
+--  $Revision: 1.33 $
+--  $Date: 2020/02/02 23:34:34 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
diff --git a/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4 b/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
index 03d8114..4d60e52 100644
--- a/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc.              --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2003,2009 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,7 +39,7 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.15 $
+--  $Revision: 1.16 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
diff --git a/Ada95/gen/terminal_interface-curses-panels.ads.m4 b/Ada95/gen/terminal_interface-curses-panels.ads.m4
index b0eda4d..1175343 100644
--- a/Ada95/gen/terminal_interface-curses-panels.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-panels.ads.m4
@@ -10,7 +10,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc.              --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2009,2014 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,8 +39,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.22 $
---  $Date: 2014/05/24 21:31:57 $
+--  $Revision: 1.23 $
+--  $Date: 2020/02/02 23:34:34 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
diff --git a/Ada95/gen/terminal_interface-curses-trace.ads.m4 b/Ada95/gen/terminal_interface-curses-trace.ads.m4
index e227343..794d132 100644
--- a/Ada95/gen/terminal_interface-curses-trace.ads.m4
+++ b/Ada95/gen/terminal_interface-curses-trace.ads.m4
@@ -9,7 +9,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000,2014 Free Software Foundation, Inc.                   --
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 2000,2014 Free Software Foundation, Inc.                       --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -37,7 +38,7 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control:
---  $Revision: 1.4 $
+--  $Revision: 1.5 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
diff --git a/Ada95/gen/terminal_interface-curses.adb.m4 b/Ada95/gen/terminal_interface-curses.adb.m4
index b98782b..c966f9b 100644
--- a/Ada95/gen/terminal_interface-curses.adb.m4
+++ b/Ada95/gen/terminal_interface-curses.adb.m4
@@ -9,7 +9,8 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc.              --
+-- Copyright 2018-2020,2024 Thomas E. Dickey                                --
+-- Copyright 2007-2011,2014 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -37,8 +38,8 @@
 ------------------------------------------------------------------------------
 --  Author: Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.14 $
---  $Date: 2014/05/24 21:31:05 $
+--  $Revision: 1.17 $
+--  $Date: 2024/03/30 13:24:07 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
@@ -52,7 +53,6 @@
 package body Terminal_Interface.Curses is
 
    use Aux;
-   use type System.Bit_Order;
 
    package ASF renames Ada.Strings.Fixed;
 
@@ -564,7 +564,7 @@
       L : constant Special_Key_Code  := Special_Key_Code (Natural (Key_F0) +
         Natural (Function_Key_Number'Last));
    begin
-      if (Key >= Key_F0) and then (Key <= L) then
+      if Key >= Key_F0 and then Key <= L then
          return True;
       else
          return False;
diff --git a/Ada95/gen/terminal_interface-curses.ads.m4 b/Ada95/gen/terminal_interface-curses.ads.m4
index 25bb5d9..d6b18e5 100644
--- a/Ada95/gen/terminal_interface-curses.ads.m4
+++ b/Ada95/gen/terminal_interface-curses.ads.m4
@@ -1,6 +1,6 @@
 --  -*- ada -*-
 define(`HTMLNAME',`terminal_interface-curses__ads.htm')dnl
-include(M4MACRO)------------------------------------------------------------------------------
+include(M4MACRO)include(options.m4)------------------------------------------------------------------------------
 --                                                                          --
 --                           GNAT ncurses Binding                           --
 --                                                                          --
@@ -9,7 +9,8 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc.              --
+-- Copyright 2020,2024 Thomas E. Dickey                                     --
+-- Copyright 1998-2011,2014 Free Software Foundation, Inc.                  --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -37,8 +38,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.47 $
---  $Date: 2014/05/24 21:31:57 $
+--  $Revision: 1.49 $
+--  $Date: 2024/01/19 16:51:30 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System.Storage_Elements;
@@ -376,8 +377,8 @@
      := Curses_Constants.KEY_UNDO;
    Key_Mouse                   : constant Special_Key_Code
      := Curses_Constants.KEY_MOUSE;
-   Key_Resize                  : constant Special_Key_Code
-     := Curses_Constants.KEY_RESIZE;
+OPT_KEY_RESIZE   Key_Resize                  : constant Special_Key_Code
+OPT_KEY_RESIZE     := Curses_Constants.KEY_RESIZE;
    Key_Max                     : constant Special_Key_Code
      := Special_Key_Code'Last;
 
