xterm-93.patch.txt

# ------------------------------------------------------------------------------
#  INSTALL        |  200 ++++++++++++++++++-
#  Makefile.in    |    2 
#  aclocal.m4     |   80 +++++--
#  button.c       |    2 
#  charproc.c     |  121 ++++++++++-
#  configure      |  572 +++++++++++++++++++++++++++++++++----------------------
#  configure.in   |   44 +++-
#  ctlseqs.ms     |  268 +++++++++++++++++++++++++
#  doublechr.c    |    2 
#  fontutils.c    |   10 
#  fontutils.h    |    2 
#  input.c        |  277 +++++++++++++++++++++-----
#  main.c         |   28 ++
#  menu.c         |    2 
#  menu.h         |    2 
#  misc.c         |  232 ++++++++++++++++++++++
#  os2main.c      |   13 +
#  ptyx.h         |   55 ++++-
#  resize.c       |    2 
#  screen.c       |    2 
#  scrollbar.c    |    4 
#  termcap        |    8 
#  terminfo       |  118 ++++++++++-
#  util.c         |   26 +-
#  version.h      |    4 
#  xterm.h        |   67 +++++-
#  xterm.log.html |   80 +++++++
#  xterm.man      |   87 +++++++-
#  xtermcfg.hin   |    7 
#  29 files changed, 1909 insertions, 408 deletions
# ------------------------------------------------------------------------------
Index: INSTALL
--- xterm-92+/INSTALL   Wed Feb  3 06:48:46 1999
+++ xterm-93/INSTALL    Sat Mar 13 15:37:02 1999
@@ -1,4 +1,4 @@
--- $XFree86: xc/programs/xterm/INSTALL,v 3.8 1998/12/20 11:58:28 dawes Exp $
+-- $XFree86: xc/programs/xterm/INSTALL,v 3.9 1999/02/07 06:18:52 dawes Exp $
 -- Thomas E. Dickey <dickey@clark.net>
 
 Xterm is normally built as part of the X Windows source tree, using
@@ -26,37 +26,230 @@
 Autoconf configure scripts recognize two types of application-defined
 options, enable/disable and with/without.  The latter, by convention, are
 used for denoting inclusion of external packages, while the former denote
-enabling/disabling of internal features.  The configure --help option
-lists the available options.  This script uses "enable" and "disable"
-to indicate the sense of the default behavior.
+enabling/disabling of internal features.  The configure --help option lists
+the available options.  This script uses "enable" and "disable" to indicate
+the sense of the default behavior.
 
 The options (in alphabetic order):
 
   --disable-16-color      disable 16-color support (default: on)
+
+       Do not compile-in code to recognize aixterm-style control sequences
+       that support color values 8-15.
+       
+       Most color applications know only about 8 ANSI colors, but some
+       (e.g., ones built with ncurses) do.
+
   --disable-active-icon   disable X11R6.3 active-icon feature (default: on)
+
+       Do not compile-in code to support the active-icon feature.  This is
+       not configured on systems (e.g., X11R5) which lack the library
+       support needed.
+       
+       Xterms with an active icon continue to respond to input and update
+       their display when iconified.  Not all window managers support
+       active icons.  Those that do include fvwm, olvwm and mwm.
+
   --disable-ansi-color    disable ANSI color (default: on)
+
+       Do not compile-in code for ANSI colors.
+
   --disable-bold-color    disable PC-style mapping of bold colors (default: on)
+
+       Do not compile-in code that maps colors 8-15 to bold versions of
+       colors 0-7.
+
+       Some applications have hardcoded logic that assumes this.  It does
+       not interfere with the 16-color support.
+
   --disable-boxchars      disable fallback-support for box chars (default: on)
+
+       Do not compile-in code to generate approximations for box/graphic
+       characters.
+
+       Most fonts do not contain the vt100-style graphic characters in
+       positions 0-31.  Many applications use the line-drawing characters,
+       e.g., to make boxes.  When xterm loads a font, it checks if those
+       characters are present, and draws its own if they are missing.
+
   --disable-color-mode    disable default colorMode resource (default: on)
+
+       Do not compile-in code that sets the default value of the colorMode
+       resource to ``true''.
+
   --disable-doublechars   disable support for double-size chars (default: on)
+
+       Do not compile-in code that supports font-manipulation needed to
+       implement vt100-style double-sized characters.
+
   --disable-echo          test: display "compiling" commands (default: on)
+
+       Modify the generated Makefile so that most compiler options are
+       not shown.  This makes it simpler to read a build log and see the
+       actual warning messages.
+
   --disable-highlighting  disable support for color highlighting (default: on)
+
+       Do not compile-in code that allows the selected region to be a
+       different color than the reverse of foreground/background colors.
+
+       See the discussion of highlightColor in the manual.
+
   --disable-i18n          disable internationalization (default: on)
+
+       Do not compile-in code to handle multi-byte characters.  This is
+       related to, but not identical with the input method logic.
+
   --disable-imake         disable use of imake for definitions (default: on)
+
+       Do not attempt to use imake to determine compiler options.
+
+       The main.c file has many ifdef's which rely on obscure combinations
+       known only to imake.  The configure script implements only a
+       portion of the tests needed to supplant imake.
+
   --disable-input-method  disable input-method (default: on)
+
+       Do not compile-in code for "input method".  This is an X11R6
+       feature which deals with translation of composite characters.
+
+       Some user report problems with their configuration, e.g., messages
+       stating that there is no input method defined for the given preedit
+       type.  If you do not need input method (and are troubled by the
+       warning messages), it is safe to disable this option.
+
+  --disable-maximize      disable actions for iconify/deiconify/maximize/restore
+
+       Do not compile-in code that implements runtime 'actions' for
+       iconifying, maximizing, etc.
+
+       Most users will find that the window manager is more suitable for
+       this sort of manipulation than putting the capabilities into xterm.
+
+  --disable-num-lock      disable NumLock keypad support
+
+       Do not compile-in code that looks for the actual NumLock key to
+       support vt100/vt220 keypad translation.
+
+       This is used in xterm to simplify logic, and to workaround some
+       quirks of the keyboard tables.  Use the ``numLock'' resource to
+       disable this feature if you must customize xterm in some other way.
+
   --disable-rightbar      disable right-scrollbar support (default: on)
+
+       Do not compile-in code that supports a scrollbar on the right.
+
+       Left/right scrollbars are a matter of taste.  Some older libraries
+       (e.g., X11R5) do not perform the geometry computation correctly,
+       leaving the right scrollbar incorrectly positioned after changing
+       the font size.
+
   --disable-samename      disable check for redundant name-change (default: on)
+
+       Do not compile-in code that suppresses redundant updates to the
+       titlebar when the text has not changed.
+
   --disable-tek4014       disable tek4014 emulation (default: on)
+
+       Do not compile-in code to support Tektronix 4014 emulation.
+
+       This reduces the executable size by 17% (checked 1999/3/13).
+
+       Some people use the Tektronix emulation (which has been in xterm
+       for many years) as an example of code bloat, though this is not an
+       accurate impression.
+
   --disable-vt52          disable VT52 emulation (default: on)
+
+       Do not compile-in code to support vt52 emulation.
+
+       A genuine vt100 emulates a vt52.
+
   --disable-ziconbeep     disable -ziconbeep option (default: on)
+
+       Do not compile-in code that modifies the icon's title and sounds a
+       beep when they receive output.
+
   --enable-hp-fkeys       enable support for HP-style function keys (default: off)
+
+       Compile-in code to support HP-style function keys.
+
   --enable-logfile-exec   enable exec'd logfile filter (default: off)
+
+       Compile-in code that allows logging piped via an external filter.
+
   --enable-logging        enable logging (default: off)
+
+       Compile-in code that allows logging.
+
+       Logging was disabled in X11R5 xterm because of security problems.
+       They were addressed in X11R6, but the feature was not reinstated.
+
   --enable-trace          test: set to enable debugging traces (default: off)
+
+       Compile-in code to trace xterm's internal states.
+
+       This is a debugging feature.  It causes xterm to produce two files
+       (Trace-parent.out and Trace-child.out).
+
   --enable-warnings       test: turn on GCC compiler warnings (default: off)
+
+       Modify the generate Makefile to turn on gcc compiler warnings.
+
+       I use this option regularly, and correct all but a few (difficult)
+       problems.
+
   --enable-xmc-glitch     test: enable xmc magic-cookie emulation (default: off)
+
+       Compile-in code that simulates the terminfo "magic cookie" glitch.
+
+       This is for testing ncurses.
+
   --with-Xaw3d            link with Xaw 3d library
+
+       Look for, compile and link with the Xaw 3d widget library.
+
   --with-neXtaw           link with neXT Athena library
+
+       Look for, compile and link with the neXT Athena widget library.
+
   --with-own-terminfo=P   set default $TERMINFO (default: from environment)
+
+       Modify the generated Makefile to set the target for the 'install-ti'
+       rule to point to the given directory.
+
+       If you have the $TERMINFO variable defined in your environment, the
+       configure script will use that value.  If no option and no variable
+       are are given, the configure script uses /usr/lib/terminfo, if it
+       exists.
+
+       You do not have to run "make install-ti", if there is already a
+       workable terminfo description.  Be advised, however, that the
+       common variety of "xterm-color" is not suited for xterm, but is
+       directed to other variations (such as nxterm) which do not
+       support the back-color erase capability.
+
   --with-terminal-id[=V]  set default decTerminalID (default: vt100)
+
+       Set the default emulation level.
+
+       DEC terminals vt52/vt100/vt220/etc form a series where succeeding
+       models emulate features of the older terminals.  While most
+       features of these terminals are recognized by xterm at all levels,
+       a few behave differently according to the emulation level.
+
+       You can always override this with the command-line option "-ti".
+
   --with-terminal-type=T  set default $TERM (default: xterm)
+
+       Set the default value for $TERM.  Xterm supports legacy termcap
+       applications by constructing a modified version of the $TERMCAP
+       variable at initialization, which supplies the resulting screen
+       size.  It also sets $TERM, if not already set, for use by programs
+       running within xterm.
+
+       The default value "xterm", can be overridden to avoid conflict
+       with older versions of xterm, e.g., those that do not implement
+       vt220 emulation. 
+
+       You can always override this with the command-line option "-tn".
Index: Makefile.in
--- xterm-92+/Makefile.in       Sun Dec 20 22:50:38 1998
+++ xterm-93/Makefile.in        Fri Mar 12 19:39:00 1999
@@ -49,7 +49,7 @@
                  data.c doublechr.c fontutils.c input.c \
                  $(MAINSRC) menu.c misc.c print.c \
                  screen.c scrollbar.c tabs.c util.c \
-                 TekPrsTbl.c Tekproc.c VTPrsTbl.c $(EXTRASRC)
+                 VTPrsTbl.c $(EXTRASRC)
           OBJS1 = button.o charproc.o charsets.o cursor.o \
                  data.o doublechr.o fontutils.o input.o \
                  main.o menu.o misc.o print.o \
Index: aclocal.m4
--- xterm-92+/aclocal.m4        Sun Jan 24 14:44:33 1999
+++ xterm-93/aclocal.m4 Sat Mar 13 11:00:51 1999
@@ -546,6 +546,48 @@
 AC_SUBST(IMAKE_LOADFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl Special test to workaround gcc 2.6.2, which cannot parse C-preprocessor
+dnl conditionals.
+dnl
+dnl AC_CHECK_HEADERS(termios.h unistd.h)
+dnl AC_CHECK_FUNCS(tcgetattr)
+dnl
+AC_DEFUN([CF_POSIX_VDISABLE],
+[
+AC_MSG_CHECKING(if POSIX VDISABLE symbol should be used)
+AC_CACHE_VAL(cf_cv_posix_vdisable,[
+       AC_TRY_RUN([
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+#include <termios.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if defined(_POSIX_VDISABLE)
+int main() { exit(_POSIX_VDISABLE == -1); }
+#endif],
+       [cf_cv_posix_vdisable=yes],
+       [cf_cv_posix_vdisable=no],
+       [AC_TRY_COMPILE([
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+#include <termios.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif],[
+#if defined(_POSIX_VDISABLE) && (_POSIX_VDISABLE != -1)
+int temp = _POSIX_VDISABLE;
+#else
+this did not work
+#endif],
+       [cf_cv_posix_vdisable=yes],
+       [cf_cv_posix_vdisable=no],
+       )])
+])
+AC_MSG_RESULT($cf_cv_posix_vdisable)
+test $cf_cv_posix_vdisable = yes && AC_DEFINE(HAVE_POSIX_VDISABLE)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl    On both Ultrix and CLIX, I find size_t defined in <stdio.h>
 AC_DEFUN([CF_SIZE_T],
 [
@@ -602,6 +644,25 @@
 [test -n "$verbose" && echo "  $1" 1>&AC_FD_MSG
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl Check if xterm is installed setuid, assume we want to do the same on a
+dnl new install
+AC_DEFUN([CF_XTERM_MODE],[
+AC_PATH_PROG(XTERM_PATH,xterm)
+XTERM_MODE=755
+AC_MSG_CHECKING(for presumed installation-mode)
+if test -f "$XTERM_PATH" ; then
+       ls -l $XTERM_PATH >conftest.out
+       read cf_mode cf_rest <conftest.out
+       case ".$cf_mode" in #(vi
+       .???s*)
+               XTERM_MODE=4711
+               ;;
+       esac
+fi
+AC_MSG_RESULT($XTERM_MODE)
+AC_SUBST(XTERM_MODE)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl Check for Xaw (Athena) libraries
 dnl
 AC_DEFUN([CF_X_ATHENA],
@@ -695,23 +756,4 @@
 test program.  You will have to check and add the proper libraries by hand
 to makefile.])
 fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if xterm is installed setuid, assume we want to do the same on a
-dnl new install
-AC_DEFUN([CF_XTERM_MODE],[
-AC_PATH_PROG(XTERM_PATH,xterm)
-XTERM_MODE=755
-AC_MSG_CHECKING(for presumed installation-mode)
-if test -f "$XTERM_PATH" ; then
-       ls -l $XTERM_PATH >conftest.out
-       read cf_mode cf_rest <conftest.out
-       case ".$cf_mode" in #(vi
-       .???s*)
-               XTERM_MODE=4711
-               ;;
-       esac
-fi
-AC_MSG_RESULT($XTERM_MODE)
-AC_SUBST(XTERM_MODE)
 ])dnl
Index: button.c
--- xterm-92+/button.c  Fri Feb  5 06:22:16 1999
+++ xterm-93/button.c   Sun Feb  7 12:54:50 1999
@@ -21,7 +21,7 @@
  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  * SOFTWARE.
  */
-/* $XFree86: xc/programs/xterm/button.c,v 3.28 1999/01/31 12:22:31 dawes Exp $ */
+/* $XFree86: xc/programs/xterm/button.c,v 3.29 1999/02/07 06:18:53 dawes Exp $ */
 
 /*
 button.c       Handles button events in the terminal emulator.
Index: charproc.c
--- xterm-92+/charproc.c        Fri Feb  5 05:55:57 1999
+++ xterm-93/charproc.c Sat Mar 13 14:01:49 1999
@@ -1,10 +1,39 @@
 /*
  * $XConsortium: charproc.c /main/196 1996/12/03 16:52:46 swick $
- * $XFree86: xc/programs/xterm/charproc.c,v 3.73 1999/01/31 12:22:31 dawes Exp $
+ * $XFree86: xc/programs/xterm/charproc.c,v 3.74 1999/02/07 06:18:54 dawes Exp $
  */
 
 /*
 
+Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+
+                        All Rights Reserved
+
+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 ABOVE LISTED COPYRIGHT HOLDER(S) 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) 1988  X Consortium
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -207,6 +236,7 @@
 #define XtNmultiClickTime      "multiClickTime"
 #define XtNmultiScroll         "multiScroll"
 #define XtNnMarginBell         "nMarginBell"
+#define XtNnumLock             "numLock"
 #define XtNoldXtermFKeys       "oldXtermFKeys"
 #define XtNpointerColor                "pointerColor"
 #define XtNpointerColorBackground      "pointerColorBackground"
@@ -275,6 +305,7 @@
 #define XtCMarginBell          "MarginBell"
 #define XtCMultiClickTime      "MultiClickTime"
 #define XtCMultiScroll         "MultiScroll"
+#define XtCNumLock             "NumLock"
 #define XtCOldXtermFKeys       "OldXtermFKeys"
 #define XtCPrintAttributes     "PrintAttributes"
 #define XtCPrinterAutoClose    "PrinterAutoClose"
@@ -407,6 +438,7 @@
     { "insert-eight-bit",      HandleEightBitKeyPressed },
     { "insert-selection",      HandleInsertSelection },
     { "insert-seven-bit",      HandleKeyPressed },
+    { "interpret",             HandleInterpret },
     { "keymap",                HandleKeymapChange },
     { "popup-menu",            HandlePopupMenu },
     { "print",                         HandlePrint },
@@ -461,6 +493,12 @@
 #if OPT_HP_FUNC_KEYS
     { "set-hp-function-keys",  HandleHpFunctionKeys },
 #endif
+#if OPT_MAXIMIZE
+    { "deiconify",             HandleDeIconify },
+    { "iconify",               HandleIconify },
+    { "maximize",              HandleMaximize },
+    { "restore",               HandleRestoreSize },
+#endif
 #if OPT_SHIFT_KEYS
     { "larger-vt-font",                HandleLargerFont },
     { "smaller-vt-font",       HandleSmallerFont },
@@ -666,6 +704,11 @@
 {XtNsignalInhibit,XtCSignalInhibit,XtRBoolean, sizeof(Boolean),
        XtOffsetOf(XtermWidgetRec, misc.signalInhibit),
        XtRBoolean, (XtPointer) &defaultFALSE},
+#if OPT_NUM_LOCK
+{XtNnumLock, XtCNumLock, XtRBoolean, sizeof(Boolean),
+       XtOffsetOf(XtermWidgetRec, misc.real_NumLock),
+       XtRBoolean, (XtPointer) &defaultTRUE},
+#endif
 #if OPT_SHIFT_KEYS
 {XtNshiftKeys, XtCShiftKeys, XtRBoolean, sizeof(Boolean),
        XtOffsetOf(XtermWidgetRec, misc.shift_keys),
@@ -2368,13 +2411,13 @@
                    Panic(
                          "input: read returned unexpected error (%d)\n",
                          errno);
-           } else if (bcnt == 0)
+           } else if (bcnt == 0) {
 #if defined(MINIX) || defined(__EMX__)
                Cleanup(0);
 #else
                Panic("input: read returned zero\n", 0);
 #endif
-           else {
+           } else {
                /* read from pty was successful */
                if (!screen->output_eight_bits) {
                    register int bc = bcnt;
@@ -2460,6 +2503,8 @@
        if (XtAppPending(app_con) ||
            FD_ISSET (ConnectionNumber(screen->display), &select_mask)) {
            xevents();
+           if (bcnt > 0)       /* HandleInterpret */
+               break;
        }
 #else  /* AMOEBA */
        i = _X11TransAmSelect(ConnectionNumber(screen->display), 1);
@@ -2467,6 +2512,8 @@
           it counts as being readable */
        if (XtAppPending(app_con) || i > 0) {
            xevents();
+           if (bcnt > 0)       /* HandleInterpret */
+               break;
            continue;
        } else if (i < 0) {
            extern int exiting;
@@ -2808,6 +2855,7 @@
                                ToggleScrollBar(termw);
                        break;
 #if OPT_SHIFT_KEYS
+               case 35:
                        term->misc.shift_keys = (func == bitset) ? ON : OFF;
                        break;
 #endif
@@ -2931,6 +2979,22 @@
                                        CursorRestore(termw);
                        }
                        break;
+               case 1051:
+                       sunFunctionKeys = (func == bitset);
+                       update_sun_fkeys();
+                       break;
+#if OPT_HP_FUNC_KEYS
+               case 1052:
+                       hpFunctionKeys = (func == bitset);
+                       update_hp_fkeys();
+                       break;
+#endif
+#if OPT_SUNPC_KBD
+               case 1061:
+                       sunKeyboard = (func == bitset);
+                       update_sun_kbd();
+                       break;
+#endif
                }
        }
 }
@@ -3162,7 +3226,7 @@
 }
 
 /*
- * Window operations (from CDE dtterm description)
+ * Window operations (from CDE dtterm description, as well as extensions)
  */
 static void
 window_ops(XtermWidget termw)
@@ -3173,6 +3237,7 @@
        XTextProperty text;
        unsigned int value_mask;
        Position x, y;
+       unsigned root_width, root_height;
 
        switch (param[0]) {
        case 1:         /* Restore (de-iconify) window */
@@ -3218,6 +3283,12 @@
                RequestResize(termw, param[1], param[2], TRUE);
                break;
 
+#if OPT_MAXIMIZE
+       case 9:         /* Maximize or restore */
+               RequestMaximize(termw, param[1]);
+               break;
+#endif
+
        case 11:        /* Report the window's state */
                XGetWindowAttributes(screen->display,
                        VWindow(screen),
@@ -3275,6 +3346,24 @@
                unparseseq(&reply, screen->respond);
                break;
 
+#if OPT_MAXIMIZE
+       case 19:        /* Report the screen's size, in characters */
+               if (!QueryMaximize(screen, &root_height, &root_width)) {
+                   root_height = 0;
+                   root_width  = 0;
+               }
+               reply.a_type = CSI;
+               reply.a_pintro = 0;
+               reply.a_nparam = 3;
+               reply.a_param[0] = 9;
+               reply.a_param[1] = root_height;
+               reply.a_param[2] = root_width;
+               reply.a_inters = 0;
+               reply.a_final  = 't';
+               unparseseq(&reply, screen->respond);
+               break;
+#endif
+
        case 20:        /* Report the icon's label */
                report_win_label(screen, 'L', &text,
                        XGetWMIconName(
@@ -3444,11 +3533,11 @@
                if(screen->scroll_amt)
                        FlushScroll(screen);
                if(top == 0)
-                       XClearWindow(screen->display, TextWindow(screen));
+                       XClearWindow(screen->display, VWindow(screen));
                else
                        XClearArea(
                            screen->display,
-                           TextWindow(screen),
+                           VWindow(screen),
                            (int) OriginX(screen),
                            (int) top * FontHeight(screen) + screen->border,
                            (unsigned) Width(screen),
@@ -3777,7 +3866,7 @@
        wnew->screen.terminal_id = MIN_DECID;
    if (wnew->screen.terminal_id > MAX_DECID)
        wnew->screen.terminal_id = MAX_DECID;
-   TRACE(("term_id '%s' -> terminal_id %d\n", 
+   TRACE(("term_id '%s' -> terminal_id %d\n",
        wnew->screen.term_id,
        wnew->screen.terminal_id))
 
@@ -3791,6 +3880,7 @@
    wnew->misc.tekSmall = request->misc.tekSmall;
    wnew->screen.TekEmu = request->screen.TekEmu;
 #endif
+   wnew->misc.re_verse0 =
    wnew->misc.re_verse = request->misc.re_verse;
    wnew->screen.multiClickTime = request->screen.multiClickTime;
    wnew->screen.bellSuppressTime = request->screen.bellSuppressTime;
@@ -4130,6 +4220,9 @@
 #else
        term->screen.xic = NULL;
 #endif
+#if OPT_NUM_LOCK
+       VTInitModifiers();
+#endif
 
        set_cursor_gcs (screen);
 
@@ -4486,7 +4579,7 @@
        if (!screen->select && !screen->always_highlight) {
                screen->box->x = x;
                screen->box->y = y;
-               XDrawLines (screen->display, TextWindow(screen),
+               XDrawLines (screen->display, VWindow(screen),
                            screen->cursoroutlineGC ? screen->cursoroutlineGC
                                                    : currentGC,
                            screen->box, NBOX, CoordModePrevious);
@@ -5003,21 +5096,21 @@
      * use the same GC's.  To avoid having the cursor change color, we use the
      * Xlib calls rather than the Xt calls.
      *
-     * Use the colorMode value to determine which we'll do (the TextWindow may
+     * Use the colorMode value to determine which we'll do (the VWindow may
      * not be set before the widget's realized, so it's tested separately).
      */
     if(screen->colorMode) {
-       if (TextWindow(screen) != 0 && (cc != bg) && (cc != fg)) {
+       if (VWindow(screen) != 0 && (cc != bg) && (cc != fg)) {
            /* we might have a colored foreground/background later */
            xgcv.font = screen->fnt_norm->fid;
            mask = (GCForeground | GCBackground | GCFont);
            xgcv.foreground = fg;
            xgcv.background = cc;
-           new_cursorGC = XCreateGC (screen->display, TextWindow(screen), mask, &xgcv);
+           new_cursorGC = XCreateGC (screen->display, VWindow(screen), mask, &xgcv);
 
            xgcv.foreground = cc;
            xgcv.background = fg;
-           new_cursorFillGC = XCreateGC (screen->display, TextWindow(screen), mask, &xgcv);
+           new_cursorFillGC = XCreateGC (screen->display, VWindow(screen), mask, &xgcv);
 
            if (screen->always_highlight) {
                new_reversecursorGC = (GC) 0;
@@ -5025,10 +5118,10 @@
            } else {
                xgcv.foreground = bg;
                xgcv.background = cc;
-               new_reversecursorGC = XCreateGC (screen->display, TextWindow(screen), mask, &xgcv);
+               new_reversecursorGC = XCreateGC (screen->display, VWindow(screen), mask, &xgcv);
                xgcv.foreground = cc;
                xgcv.background = bg;
-               new_cursoroutlineGC = XCreateGC (screen->display, TextWindow(screen), mask, &xgcv);
+               new_cursoroutlineGC = XCreateGC (screen->display, VWindow(screen), mask, &xgcv);
            }
        }
     } else
Index: configure
--- xterm-92+/configure Sun Jan 24 14:44:33 1999
+++ xterm-93/configure  Sat Mar 13 15:21:23 1999
@@ -205,13 +205,15 @@
   --disable-i18n          disable internationalization (default: on)
   --enable-logging        enable logging (default: off)
   --enable-logfile-exec   enable exec'd logfile filter (default: off)
+  --disable-maximize      disable actions for iconify/deiconify/maximize/restore (default: on)
+  --disable-num-lock      disable NumLock keypad support (default: on)
   --disable-rightbar      disable right-scrollbar support (default: on)
   --disable-samename      disable check for redundant name-change (default: on)
   --disable-tek4014       disable tek4014 emulation (default: on)
-  --disable-vt52          disable VT52 emulation (default: on)
-  --disable-ziconbeep     disable -ziconbeep option (default: on)
 EOF
 cat <<EOF
+  --disable-vt52          disable VT52 emulation (default: on)
+  --disable-ziconbeep     disable -ziconbeep option (default: on)
   --enable-trace          test: set to enable debugging traces (default: off)
   --disable-echo          test: display "compiling" commands (default: on)
   --enable-xmc-glitch     test: enable xmc magic-cookie emulation (default: off)
@@ -583,7 +585,7 @@
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:587: checking host system type" >&5
+echo "configure:589: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -634,7 +636,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:638: checking for $ac_word" >&5
+echo "configure:640: 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
@@ -664,7 +666,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:668: checking for $ac_word" >&5
+echo "configure:670: 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
@@ -715,7 +717,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:719: checking for $ac_word" >&5
+echo "configure:721: 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
@@ -747,7 +749,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:751: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:753: 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.
@@ -758,12 +760,12 @@
 
 cat > conftest.$ac_ext << EOF
 
-#line 762 "configure"
+#line 764 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:769: \"$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
@@ -789,12 +791,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:793: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:795: 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:798: checking whether we are using GNU C" >&5
+echo "configure:800: 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
@@ -803,7 +805,7 @@
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:807: \"$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:809: \"$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
@@ -822,7 +824,7 @@
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:826: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:828: 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
@@ -854,7 +856,7 @@
 fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:858: checking how to run the C preprocessor" >&5
+echo "configure:860: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -869,13 +871,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 873 "configure"
+#line 875 "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:879: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:881: \"$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
   :
@@ -886,13 +888,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 890 "configure"
+#line 892 "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:896: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:898: \"$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
   :
@@ -903,13 +905,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 907 "configure"
+#line 909 "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:913: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:915: \"$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
   :
@@ -935,13 +937,13 @@
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:939: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:941: checking whether ${CC-cc} needs -traditional" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_pattern="Autoconf.*'x'"
   cat > conftest.$ac_ext <<EOF
-#line 945 "configure"
+#line 947 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -959,7 +961,7 @@
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 963 "configure"
+#line 965 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -992,7 +994,7 @@
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:996: checking for a BSD compatible install" >&5
+echo "configure:998: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1047,9 +1049,9 @@
 
 ###    checks for UNIX variants that set C preprocessor variables
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1051: checking for AIX" >&5
+echo "configure:1053: checking for AIX" >&5
 cat > conftest.$ac_ext <<EOF
-#line 1053 "configure"
+#line 1055 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -1071,7 +1073,7 @@
 
 
 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1075: checking for POSIXized ISC" >&5
+echo "configure:1077: checking for POSIXized ISC" >&5
 if test -d /etc/conf/kconfig.d &&
   grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
 then
@@ -1093,17 +1095,17 @@
 
 ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1097: checking for minix/config.h" >&5
+echo "configure:1099: checking for minix/config.h" >&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 1102 "configure"
+#line 1104 "configure"
 #include "confdefs.h"
 #include <minix/config.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1107: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1109: \"$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*
@@ -1142,21 +1144,21 @@
 
 
 ###    checks for header files
-for ac_hdr in stdlib.h unistd.h
+for ac_hdr in stdlib.h termios.h unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1150: checking for $ac_hdr" >&5
+echo "configure:1152: 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 1155 "configure"
+#line 1157 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1160: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1162: \"$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*
@@ -1186,13 +1188,13 @@
 ###    checks for typedefs
 
 echo $ac_n "checking for size_t in <sys/types.h> or <stdio.h>""... $ac_c" 1>&6
-echo "configure:1190: checking for size_t in <sys/types.h> or <stdio.h>" >&5
+echo "configure:1192: checking for size_t in <sys/types.h> or <stdio.h>" >&5
 if eval "test \"`echo '$''{'cf_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
        cat > conftest.$ac_ext <<EOF
-#line 1196 "configure"
+#line 1198 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1205,7 +1207,7 @@
 size_t x
 ; return 0; }
 EOF
-if { (eval echo configure:1209: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_type_size_t=yes
 else
@@ -1225,12 +1227,12 @@
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1229: checking for ANSI C header files" >&5
+echo "configure:1231: 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 1234 "configure"
+#line 1236 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1238,7 +1240,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1244: \"$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*
@@ -1255,7 +1257,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 1259 "configure"
+#line 1261 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1273,7 +1275,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 1277 "configure"
+#line 1279 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1294,7 +1296,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1298 "configure"
+#line 1300 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1305,7 +1307,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:1309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1329,12 +1331,12 @@
 fi
 
 echo $ac_n "checking for time_t""... $ac_c" 1>&6
-echo "configure:1333: checking for time_t" >&5
+echo "configure:1335: checking for time_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_time_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1338 "configure"
+#line 1340 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1367,16 +1369,17 @@
        bcopy \
        memmove \
        strerror \
+       tcgetattr \
        waitpid \
        
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1375: checking for $ac_func" >&5
+echo "configure:1378: 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 1380 "configure"
+#line 1383 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1399,7 +1402,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1406: \"$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
@@ -1425,12 +1428,12 @@
 
 
 echo $ac_n "checking for memmove""... $ac_c" 1>&6
-echo "configure:1429: checking for memmove" >&5
+echo "configure:1432: checking for memmove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_memmove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1434 "configure"
+#line 1437 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char memmove(); below.  */
@@ -1453,7 +1456,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_memmove=yes"
 else
@@ -1472,12 +1475,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for bcopy""... $ac_c" 1>&6
-echo "configure:1476: checking for bcopy" >&5
+echo "configure:1479: checking for bcopy" >&5
 if eval "test \"`echo '$''{'ac_cv_func_bcopy'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1481 "configure"
+#line 1484 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char bcopy(); below.  */
@@ -1500,7 +1503,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_bcopy=yes"
 else
@@ -1516,7 +1519,7 @@
   echo "$ac_t""yes" 1>&6
   
        echo $ac_n "checking if bcopy does overlapping moves""... $ac_c" 1>&6
-echo "configure:1520: checking if bcopy does overlapping moves" >&5
+echo "configure:1523: checking if bcopy does overlapping moves" >&5
 if eval "test \"`echo '$''{'cf_cv_good_bcopy'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1525,7 +1528,7 @@
   cf_cv_good_bcopy=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 1529 "configure"
+#line 1532 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1538,7 +1541,7 @@
 }
                
 EOF
-if { (eval echo configure:1542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cf_cv_good_bcopy=yes
 else
@@ -1576,7 +1579,7 @@
 
 
 echo $ac_n "checking for full tgetent function""... $ac_c" 1>&6
-echo "configure:1580: checking for full tgetent function" >&5
+echo "configure:1583: checking for full tgetent function" >&5
 if eval "test \"`echo '$''{'cf_cv_lib_tgetent'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1591,7 +1594,7 @@
   echo "cross-compiling, cannot verify if a termcap/tgetent is present in $cf_termlib" 1>&5
 else
   cat > conftest.$ac_ext <<EOF
-#line 1595 "configure"
+#line 1598 "configure"
 #include "confdefs.h"
 
 /* terminfo implementations ignore the buffer argument, making it useless for
@@ -1605,7 +1608,7 @@
        tgetent(buffer, "vt100");
        exit(buffer[0] == 0); }
 EOF
-if { (eval echo configure:1609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   echo "yes, there is a termcap/tgetent in $cf_termlib" 1>&5
         if test -n "$cf_termlib" ; then
@@ -1640,17 +1643,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1644: checking for $ac_hdr" >&5
+echo "configure:1647: 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 1649 "configure"
+#line 1652 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1654: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1657: \"$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*
@@ -1683,7 +1686,7 @@
         # validate values for the TERM environment variable given to
         # child processes.
        echo $ac_n "checking for partial tgetent function""... $ac_c" 1>&6
-echo "configure:1687: checking for partial tgetent function" >&5
+echo "configure:1690: checking for partial tgetent function" >&5
 if eval "test \"`echo '$''{'cf_cv_lib_part_tgetent'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1692,14 +1695,14 @@
        for cf_termlib in $cf_TERMLIB ; do
                LIBS="$cf_save_LIBS -l$cf_termlib"
                cat > conftest.$ac_ext <<EOF
-#line 1696 "configure"
+#line 1699 "configure"
 #include "confdefs.h"
 
 int main() {
 tgetent(0, 0)
 ; return 0; }
 EOF
-if { (eval echo configure:1703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "there is a terminfo/tgetent in $cf_termlib" 1>&5
                         cf_cv_lib_part_tgetent="-l$cf_termlib"
@@ -1722,17 +1725,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1726: checking for $ac_hdr" >&5
+echo "configure:1729: 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 1731 "configure"
+#line 1734 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1736: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1739: \"$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*
@@ -1772,13 +1775,13 @@
 ###    checks for structures
 
 echo $ac_n "checking for declaration of fd_set""... $ac_c" 1>&6
-echo "configure:1776: checking for declaration of fd_set" >&5
+echo "configure:1779: checking for declaration of fd_set" >&5
 if eval "test \"`echo '$''{'cf_cv_type_fd_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 1782 "configure"
+#line 1785 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1786,7 +1789,7 @@
 fd_set x
 ; return 0; }
 EOF
-if { (eval echo configure:1790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1793: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_type_fd_set=sys/types.h
 else
@@ -1794,7 +1797,7 @@
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 1798 "configure"
+#line 1801 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1803,7 +1806,7 @@
 fd_set x
 ; return 0; }
 EOF
-if { (eval echo configure:1807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1810: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_type_fd_set=sys/select.h
 else
@@ -1826,17 +1829,90 @@
 fi
 
 
+echo $ac_n "checking if POSIX VDISABLE symbol should be used""... $ac_c" 1>&6
+echo "configure:1834: checking if POSIX VDISABLE symbol should be used" >&5
+if eval "test \"`echo '$''{'cf_cv_posix_vdisable'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+       if test "$cross_compiling" = yes; then
+  cat > conftest.$ac_ext <<EOF
+#line 1841 "configure"
+#include "confdefs.h"
+
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+#include <termios.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+int main() {
+
+#if defined(_POSIX_VDISABLE) && (_POSIX_VDISABLE != -1)
+int temp = _POSIX_VDISABLE;
+#else
+this did not work
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_posix_vdisable=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_posix_vdisable=no
+fi
+rm -f conftest*
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1871 "configure"
+#include "confdefs.h"
+
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+#include <termios.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if defined(_POSIX_VDISABLE)
+int main() { exit(_POSIX_VDISABLE == -1); }
+#endif
+EOF
+if { (eval echo configure:1884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  cf_cv_posix_vdisable=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  cf_cv_posix_vdisable=no
+fi
+rm -fr conftest*
+fi
+
+
+fi
+
+echo "$ac_t""$cf_cv_posix_vdisable" 1>&6
+test $cf_cv_posix_vdisable = yes && cat >> confdefs.h <<\EOF
+#define HAVE_POSIX_VDISABLE 1
+EOF
+
+
+
 ###    checks for external data
 
 
 echo $ac_n "checking declaration of errno""... $ac_c" 1>&6
-echo "configure:1834: checking declaration of errno" >&5
+echo "configure:1910: checking declaration of errno" >&5
 if eval "test \"`echo '$''{'cf_cv_dcl_errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 1840 "configure"
+#line 1916 "configure"
 #include "confdefs.h"
 
 #if HAVE_STDLIB_H
@@ -1849,7 +1925,7 @@
 long x = (long) errno
 ; return 0; }
 EOF
-if { (eval echo configure:1853: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1929: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval 'cf_cv_dcl_'errno'=yes'
 else
@@ -1879,9 +1955,9 @@
 EOF
 
     echo $ac_n "checking existence of errno""... $ac_c" 1>&6
-echo "configure:1883: checking existence of errno" >&5
+echo "configure:1959: checking existence of errno" >&5
         cat > conftest.$ac_ext <<EOF
-#line 1885 "configure"
+#line 1961 "configure"
 #include "confdefs.h"
 
 #undef errno
@@ -1891,7 +1967,7 @@
 errno = 2
 ; return 0; }
 EOF
-if { (eval echo configure:1895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval 'cf_cv_have_'errno'=yes'
 else
@@ -1922,12 +1998,12 @@
 
 ###    checks for compiler characteristics
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1926: checking for working const" >&5
+echo "configure:2002: 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 1931 "configure"
+#line 2007 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1976,7 +2052,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1980: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -1998,7 +2074,7 @@
 
 
 echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:2002: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:2078: 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
@@ -2022,7 +2098,7 @@
 do
        CFLAGS="$cf_save_CFLAGS $cf_arg"
        cat > conftest.$ac_ext <<EOF
-#line 2026 "configure"
+#line 2102 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -2038,7 +2114,7 @@
        struct s2 {int (*f) (double a);};
 ; return 0; }
 EOF
-if { (eval echo configure:2042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2118: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ansi_cc="$cf_arg"; break
 else
@@ -2068,12 +2144,12 @@
 ###    checks for system services and user specified options
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:2072: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:2148: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2077 "configure"
+#line 2153 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -2089,7 +2165,7 @@
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:2093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2169: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -2115,7 +2191,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:2119: checking for X" >&5
+echo "configure:2195: checking for X" >&5
 
 
 # Check whether --with-x or --without-x was given.
@@ -2178,12 +2254,12 @@
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 2182 "configure"
+#line 2258 "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:2187: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2263: \"$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*
@@ -2252,14 +2328,14 @@
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2256 "configure"
+#line 2332 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:2263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2339: \"$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.
@@ -2359,7 +2435,7 @@
        # FIXME: modify the library lookup in autoconf to
        # allow _s.a suffix ahead of .a
        echo $ac_n "checking for open in -lc_s""... $ac_c" 1>&6
-echo "configure:2363: checking for open in -lc_s" >&5
+echo "configure:2439: checking for open in -lc_s" >&5
 ac_lib_var=`echo c_s'_'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
@@ -2367,7 +2443,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lc_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2371 "configure"
+#line 2447 "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
@@ -2378,7 +2454,7 @@
 open()
 ; return 0; }
 EOF
-if { (eval echo configure:2382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2458: \"$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
@@ -2395,7 +2471,7 @@
   echo "$ac_t""yes" 1>&6
   LIBS="-lc_s $LIBS"
        echo $ac_n "checking for gethostname in -lbsd""... $ac_c" 1>&6
-echo "configure:2399: checking for gethostname in -lbsd" >&5
+echo "configure:2475: checking for gethostname in -lbsd" >&5
 ac_lib_var=`echo bsd'_'gethostname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2403,7 +2479,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lbsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2407 "configure"
+#line 2483 "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
@@ -2414,7 +2490,7 @@
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:2418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2494: \"$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
@@ -2431,7 +2507,7 @@
   echo "$ac_t""yes" 1>&6
   LIBS="-lbsd $LIBS"
        echo $ac_n "checking for gethostname in -lnsl_s""... $ac_c" 1>&6
-echo "configure:2435: checking for gethostname in -lnsl_s" >&5
+echo "configure:2511: checking for gethostname in -lnsl_s" >&5
 ac_lib_var=`echo nsl_s'_'gethostname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2439,7 +2515,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2443 "configure"
+#line 2519 "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
@@ -2450,7 +2526,7 @@
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:2454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2530: \"$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
@@ -2467,7 +2543,7 @@
   echo "$ac_t""yes" 1>&6
   LIBS="-lnsl_s $LIBS"
        echo $ac_n "checking for XOpenDisplay in -lX11_s""... $ac_c" 1>&6
-echo "configure:2471: checking for XOpenDisplay in -lX11_s" >&5
+echo "configure:2547: checking for XOpenDisplay in -lX11_s" >&5
 ac_lib_var=`echo X11_s'_'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
@@ -2475,7 +2551,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2479 "configure"
+#line 2555 "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
@@ -2486,7 +2562,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:2490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2566: \"$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
@@ -2503,7 +2579,7 @@
   echo "$ac_t""yes" 1>&6
   LIBS="-lX11_s $LIBS"
        echo $ac_n "checking for XtAppInitialize in -lXt_s""... $ac_c" 1>&6
-echo "configure:2507: checking for XtAppInitialize in -lXt_s" >&5
+echo "configure:2583: checking for XtAppInitialize in -lXt_s" >&5
 ac_lib_var=`echo Xt_s'_'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
@@ -2511,7 +2587,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXt_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2515 "configure"
+#line 2591 "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
@@ -2522,7 +2598,7 @@
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:2526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2602: \"$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
@@ -2563,7 +2639,7 @@
        ;;
 *)
        echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:2567: checking for socket in -lsocket" >&5
+echo "configure:2643: checking for socket in -lsocket" >&5
 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2571,7 +2647,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2575 "configure"
+#line 2651 "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
@@ -2582,7 +2658,7 @@
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:2586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2662: \"$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
@@ -2610,7 +2686,7 @@
 fi
 
        echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6
-echo "configure:2614: checking for gethostname in -lnsl" >&5
+echo "configure:2690: checking for gethostname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2618,7 +2694,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2622 "configure"
+#line 2698 "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
@@ -2629,7 +2705,7 @@
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:2633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2709: \"$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
@@ -2680,17 +2756,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:2684: checking whether -R must be followed by a space" >&5
+echo "configure:2760: 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 2687 "configure"
+#line 2763 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -2706,14 +2782,14 @@
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 2710 "configure"
+#line 2786 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -2745,7 +2821,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:2749: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:2825: 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
@@ -2753,7 +2829,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2757 "configure"
+#line 2833 "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
@@ -2764,7 +2840,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2844: \"$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
@@ -2786,7 +2862,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:2790: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:2866: 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
@@ -2794,7 +2870,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2798 "configure"
+#line 2874 "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
@@ -2805,7 +2881,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2834,12 +2910,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:2838: checking for gethostbyname" >&5
+echo "configure:2914: 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 2843 "configure"
+#line 2919 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -2862,7 +2938,7 @@
 
 ; 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:2942: \"$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
@@ -2883,7 +2959,7 @@
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:2887: checking for gethostbyname in -lnsl" >&5
+echo "configure:2963: 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
@@ -2891,7 +2967,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2895 "configure"
+#line 2971 "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
@@ -2902,7 +2978,7 @@
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:2906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2982: \"$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
@@ -2932,12 +3008,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:2936: checking for connect" >&5
+echo "configure:3012: 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 2941 "configure"
+#line 3017 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -2960,7 +3036,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3040: \"$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
@@ -2981,7 +3057,7 @@
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:2985: checking for connect in -lsocket" >&5
+echo "configure:3061: 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
@@ -2989,7 +3065,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2993 "configure"
+#line 3069 "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
@@ -3000,7 +3076,7 @@
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:3004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3080: \"$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
@@ -3024,12 +3100,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:3028: checking for remove" >&5
+echo "configure:3104: 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 3033 "configure"
+#line 3109 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -3052,7 +3128,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3132: \"$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
@@ -3073,7 +3149,7 @@
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:3077: checking for remove in -lposix" >&5
+echo "configure:3153: 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
@@ -3081,7 +3157,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3085 "configure"
+#line 3161 "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
@@ -3092,7 +3168,7 @@
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:3096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3172: \"$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
@@ -3116,12 +3192,12 @@
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:3120: checking for shmat" >&5
+echo "configure:3196: 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 3125 "configure"
+#line 3201 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -3144,7 +3220,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3224: \"$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
@@ -3165,7 +3241,7 @@
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:3169: checking for shmat in -lipc" >&5
+echo "configure:3245: 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
@@ -3173,7 +3249,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3177 "configure"
+#line 3253 "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
@@ -3184,7 +3260,7 @@
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:3188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3264: \"$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
@@ -3217,7 +3293,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:3221: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:3297: 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
@@ -3225,7 +3301,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3229 "configure"
+#line 3305 "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
@@ -3236,7 +3312,7 @@
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:3240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3316: \"$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
@@ -3263,7 +3339,7 @@
        LDFLAGS="$LDFLAGS $X_LIBS"
        CFLAGS="$CFLAGS $X_CFLAGS"
        echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:3267: checking for XOpenDisplay in -lX11" >&5
+echo "configure:3343: 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
@@ -3271,7 +3347,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3275 "configure"
+#line 3351 "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
@@ -3282,7 +3358,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:3286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3362: \"$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
@@ -3303,7 +3379,7 @@
 fi
 
        echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
-echo "configure:3307: checking for XtAppInitialize in -lXt" >&5
+echo "configure:3383: 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
@@ -3311,7 +3387,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3315 "configure"
+#line 3391 "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
@@ -3322,7 +3398,7 @@
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:3326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3402: \"$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
@@ -3378,17 +3454,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3382: checking for $ac_hdr" >&5
+echo "configure:3458: 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 3387 "configure"
+#line 3463 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3468: \"$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*
@@ -3438,17 +3514,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3442: checking for $ac_hdr" >&5
+echo "configure:3518: 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 3447 "configure"
+#line 3523 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3452: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3528: \"$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*
@@ -3476,7 +3552,7 @@
 
 
 echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
-echo "configure:3480: checking for XextCreateExtension in -lXext" >&5
+echo "configure:3556: 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
@@ -3484,7 +3560,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXext  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3488 "configure"
+#line 3564 "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
@@ -3495,7 +3571,7 @@
 XextCreateExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:3499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3575: \"$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
@@ -3517,7 +3593,7 @@
 
 
 echo $ac_n "checking for XmuClientWindow in -lXmu""... $ac_c" 1>&6
-echo "configure:3521: checking for XmuClientWindow in -lXmu" >&5
+echo "configure:3597: checking for XmuClientWindow in -lXmu" >&5
 ac_lib_var=`echo Xmu'_'XmuClientWindow | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3525,7 +3601,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXmu  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3529 "configure"
+#line 3605 "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
@@ -3536,7 +3612,7 @@
 XmuClientWindow()
 ; return 0; }
 EOF
-if { (eval echo configure:3540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3616: \"$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
@@ -3563,7 +3639,7 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for XmuClientWindow in -lXmu_s""... $ac_c" 1>&6
-echo "configure:3567: checking for XmuClientWindow in -lXmu_s" >&5
+echo "configure:3643: checking for XmuClientWindow in -lXmu_s" >&5
 ac_lib_var=`echo Xmu_s'_'XmuClientWindow | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3571,7 +3647,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXmu_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3575 "configure"
+#line 3651 "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
@@ -3582,7 +3658,7 @@
 XmuClientWindow()
 ; return 0; }
 EOF
-if { (eval echo configure:3586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3662: \"$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
@@ -3613,7 +3689,7 @@
 
 
 echo $ac_n "checking for XawSimpleMenuAddGlobalActions in -l$cf_x_athena""... $ac_c" 1>&6
-echo "configure:3617: checking for XawSimpleMenuAddGlobalActions in -l$cf_x_athena" >&5
+echo "configure:3693: checking for XawSimpleMenuAddGlobalActions in -l$cf_x_athena" >&5
 ac_lib_var=`echo $cf_x_athena'_'XawSimpleMenuAddGlobalActions | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3621,7 +3697,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_x_athena  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3625 "configure"
+#line 3701 "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
@@ -3632,7 +3708,7 @@
 XawSimpleMenuAddGlobalActions()
 ; return 0; }
 EOF
-if { (eval echo configure:3636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3712: \"$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
@@ -3652,7 +3728,7 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for XawSimpleMenuAddGlobalActions in -l${cf_x_athena}_s""... $ac_c" 1>&6
-echo "configure:3656: checking for XawSimpleMenuAddGlobalActions in -l${cf_x_athena}_s" >&5
+echo "configure:3732: checking for XawSimpleMenuAddGlobalActions in -l${cf_x_athena}_s" >&5
 ac_lib_var=`echo ${cf_x_athena}_s'_'XawSimpleMenuAddGlobalActions | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3660,7 +3736,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-l${cf_x_athena}_s $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3664 "configure"
+#line 3740 "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
@@ -3671,7 +3747,7 @@
 XawSimpleMenuAddGlobalActions()
 ; return 0; }
 EOF
-if { (eval echo configure:3675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3751: \"$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
@@ -3711,7 +3787,7 @@
 # Extract the first word of "xterm", so it can be a program name with args.
 set dummy xterm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3715: checking for $ac_word" >&5
+echo "configure:3791: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_XTERM_PATH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3745,7 +3821,7 @@
 
 XTERM_MODE=755
 echo $ac_n "checking for presumed installation-mode""... $ac_c" 1>&6
-echo "configure:3749: checking for presumed installation-mode" >&5
+echo "configure:3825: checking for presumed installation-mode" >&5
 if test -f "$XTERM_PATH" ; then
        ls -l $XTERM_PATH >conftest.out
        read cf_mode cf_rest <conftest.out
@@ -3764,12 +3840,12 @@
        
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3768: checking for $ac_func" >&5
+echo "configure:3844: 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 3773 "configure"
+#line 3849 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3792,7 +3868,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3872: \"$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
@@ -3818,7 +3894,7 @@
 
 
 echo $ac_n "checking if we should use imake to help""... $ac_c" 1>&6
-echo "configure:3822: checking if we should use imake to help" >&5
+echo "configure:3898: checking if we should use imake to help" >&5
 
 # Check whether --enable-imake or --disable-imake was given.
 if test "${enable_imake+set}" = set; then
@@ -3843,7 +3919,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:3847: checking for $ac_word" >&5
+echo "configure:3923: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_IMAKE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3982,7 +4058,7 @@
 
 
 echo $ac_n "checking for default terminal-id""... $ac_c" 1>&6
-echo "configure:3986: checking for default terminal-id" >&5
+echo "configure:4062: checking for default terminal-id" >&5
 
 # Check whether --with-terminal-id or --without-terminal-id was given.
 if test "${with_terminal_id+set}" = set; then
@@ -4003,7 +4079,7 @@
 
 
 echo $ac_n "checking for default terminal-type""... $ac_c" 1>&6
-echo "configure:4007: checking for default terminal-type" >&5
+echo "configure:4083: checking for default terminal-type" >&5
 
 # Check whether --with-terminal-type or --without-terminal-type was given.
 if test "${with_terminal_type+set}" = set; then
@@ -4020,7 +4096,7 @@
 
 
 echo $ac_n "checking for private terminfo-directory""... $ac_c" 1>&6
-echo "configure:4024: checking for private terminfo-directory" >&5
+echo "configure:4100: checking for private terminfo-directory" >&5
 
 # Check whether --with-own-terminfo or --without-own-terminfo was given.
 if test "${with_own_terminfo+set}" = set; then
@@ -4031,11 +4107,17 @@
 fi
 
 echo "$ac_t""$private_TERMINFO" 1>&6
-if test $private_TERMINFO != none ; then
-       cat >> confdefs.h <<EOF
+if test $private_TERMINFO = yes ; then
+       echo "configure: warning: no value given" 1>&2
+elif test $private_TERMINFO != none ; then
+       if test -d $private_TERMINFO ; then
+               cat >> confdefs.h <<EOF
 #define OWN_TERMINFO_DIR "$private_TERMINFO"
 EOF
 
+       else
+               echo "configure: warning: not a directory" 1>&2
+       fi
 elif test -d /usr/lib/terminfo ; then
        private_TERMINFO=/usr/lib/terminfo
 else
@@ -4045,7 +4127,7 @@
 
 ###    checks for optional features
 echo $ac_n "checking if you want active-icons""... $ac_c" 1>&6
-echo "configure:4049: checking if you want active-icons" >&5
+echo "configure:4131: checking if you want active-icons" >&5
 
 # Check whether --enable-active-icon or --disable-active-icon was given.
 if test "${enable_active_icon+set}" = set; then
@@ -4071,7 +4153,7 @@
 fi
 
 echo $ac_n "checking if you want ANSI color""... $ac_c" 1>&6
-echo "configure:4075: checking if you want ANSI color" >&5
+echo "configure:4157: checking if you want ANSI color" >&5
 
 # Check whether --enable-ansi-color or --disable-ansi-color was given.
 if test "${enable_ansi_color+set}" = set; then
@@ -4095,7 +4177,7 @@
 
 
 echo $ac_n "checking if you want 16 colors like aixterm""... $ac_c" 1>&6
-echo "configure:4099: checking if you want 16 colors like aixterm" >&5
+echo "configure:4181: checking if you want 16 colors like aixterm" >&5
 
 # Check whether --enable-16-color or --disable-16-color was given.
 if test "${enable_16_color+set}" = set; then
@@ -4119,7 +4201,7 @@
 
 
 echo $ac_n "checking if you want bold colors mapped like IBM PC""... $ac_c" 1>&6
-echo "configure:4123: checking if you want bold colors mapped like IBM PC" >&5
+echo "configure:4205: checking if you want bold colors mapped like IBM PC" >&5
 
 # Check whether --enable-bold-color or --disable-bold-color was given.
 if test "${enable_bold_color+set}" = set; then
@@ -4143,7 +4225,7 @@
 
 
 echo $ac_n "checking if you want color-mode enabled by default""... $ac_c" 1>&6
-echo "configure:4147: checking if you want color-mode enabled by default" >&5
+echo "configure:4229: checking if you want color-mode enabled by default" >&5
 
 # Check whether --enable-color-mode or --disable-color-mode was given.
 if test "${enable_color_mode+set}" = set; then
@@ -4167,7 +4249,7 @@
 
 
 echo $ac_n "checking if you want support for color highlighting""... $ac_c" 1>&6
-echo "configure:4171: checking if you want support for color highlighting" >&5
+echo "configure:4253: checking if you want support for color highlighting" >&5
 
 # Check whether --enable-highlighting or --disable-highlighting was given.
 if test "${enable_highlighting+set}" = set; then
@@ -4191,7 +4273,7 @@
 
 
 echo $ac_n "checking if you want support for doublesize characters""... $ac_c" 1>&6
-echo "configure:4195: checking if you want support for doublesize characters" >&5
+echo "configure:4277: checking if you want support for doublesize characters" >&5
 
 # Check whether --enable-doublechars or --disable-doublechars was given.
 if test "${enable_doublechars+set}" = set; then
@@ -4215,7 +4297,7 @@
 
 
 echo $ac_n "checking if you want fallback-support for box characters""... $ac_c" 1>&6
-echo "configure:4219: checking if you want fallback-support for box characters" >&5
+echo "configure:4301: checking if you want fallback-support for box characters" >&5
 
 # Check whether --enable-boxchars or --disable-boxchars was given.
 if test "${enable_boxchars+set}" = set; then
@@ -4239,7 +4321,7 @@
 
 
 echo $ac_n "checking if you want support for HP-style function keys""... $ac_c" 1>&6
-echo "configure:4243: checking if you want support for HP-style function keys" >&5
+echo "configure:4325: checking if you want support for HP-style function keys" >&5
 
 # Check whether --enable-hp-fkeys or --disable-hp-fkeys was given.
 if test "${enable_hp_fkeys+set}" = set; then
@@ -4265,7 +4347,7 @@
 fi
 
 echo $ac_n "checking if you want support for input-method""... $ac_c" 1>&6
-echo "configure:4269: checking if you want support for input-method" >&5
+echo "configure:4351: checking if you want support for input-method" >&5
 
 # Check whether --enable-input-method or --disable-input-method was given.
 if test "${enable_input_method+set}" = set; then
@@ -4291,7 +4373,7 @@
 fi
 
 echo $ac_n "checking if you want support for internationalization""... $ac_c" 1>&6
-echo "configure:4295: checking if you want support for internationalization" >&5
+echo "configure:4377: checking if you want support for internationalization" >&5
 
 # Check whether --enable-i18n or --disable-i18n was given.
 if test "${enable_i18n+set}" = set; then
@@ -4317,7 +4399,7 @@
 fi
 
 echo $ac_n "checking if you want support for logging""... $ac_c" 1>&6
-echo "configure:4321: checking if you want support for logging" >&5
+echo "configure:4403: checking if you want support for logging" >&5
 
 # Check whether --enable-logging or --disable-logging was given.
 if test "${enable_logging+set}" = set; then
@@ -4341,7 +4423,7 @@
 EOF
 
        echo $ac_n "checking if you want to allow logging via a pipe""... $ac_c" 1>&6
-echo "configure:4345: checking if you want to allow logging via a pipe" >&5
+echo "configure:4427: checking if you want to allow logging via a pipe" >&5
        
 # Check whether --enable-logfile-exec or --disable-logfile-exec was given.
 if test "${enable_logfile_exec+set}" = set; then
@@ -4367,8 +4449,56 @@
        fi
 fi
 
+echo $ac_n "checking if you want support for iconify/maximize translations""... $ac_c" 1>&6
+echo "configure:4454: checking if you want support for iconify/maximize translations" >&5
+
+# Check whether --enable-maximize or --disable-maximize was given.
+if test "${enable_maximize+set}" = set; then
+  enableval="$enable_maximize"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    enable_maximize=no 
+  else
+    enable_maximize=yes
+  fi
+else
+  enableval=yes 
+  enable_maximize=yes
+  
+fi
+
+echo "$ac_t""$enable_maximize" 1>&6
+test $enable_maximize = no && cat >> confdefs.h <<\EOF
+#define OPT_MAXIMIZE 0
+EOF
+
+
+echo $ac_n "checking if you want NumLock to override keyboard tables""... $ac_c" 1>&6
+echo "configure:4478: checking if you want NumLock to override keyboard tables" >&5
+
+# Check whether --enable-num-lock or --disable-num-lock was given.
+if test "${enable_num_lock+set}" = set; then
+  enableval="$enable_num_lock"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    enable_numlock=no 
+  else
+    enable_numlock=yes
+  fi
+else
+  enableval=yes 
+  enable_numlock=yes
+  
+fi
+
+echo "$ac_t""$enable_numlock" 1>&6
+test $enable_numlock = no && cat >> confdefs.h <<\EOF
+#define OPT_NUM_LOCK 0
+EOF
+
+
 echo $ac_n "checking if you want support for right-scrollbar""... $ac_c" 1>&6
-echo "configure:4372: checking if you want support for right-scrollbar" >&5
+echo "configure:4502: checking if you want support for right-scrollbar" >&5
 
 # Check whether --enable-rightbar or --disable-rightbar was given.
 if test "${enable_rightbar+set}" = set; then
@@ -4394,7 +4524,7 @@
 fi
 
 echo $ac_n "checking if you want check for redundant name-change""... $ac_c" 1>&6
-echo "configure:4398: checking if you want check for redundant name-change" >&5
+echo "configure:4528: checking if you want check for redundant name-change" >&5
 
 # Check whether --enable-samename or --disable-samename was given.
 if test "${enable_samename+set}" = set; then
@@ -4418,7 +4548,7 @@
 
 
 echo $ac_n "checking if you want support for tek4014""... $ac_c" 1>&6
-echo "configure:4422: checking if you want support for tek4014" >&5
+echo "configure:4552: checking if you want support for tek4014" >&5
 
 # Check whether --enable-tek4014 or --disable-tek4014 was given.
 if test "${enable_tek4014+set}" = set; then
@@ -4448,7 +4578,7 @@
 fi
 
 echo $ac_n "checking if you want VT52 emulation""... $ac_c" 1>&6
-echo "configure:4452: checking if you want VT52 emulation" >&5
+echo "configure:4582: checking if you want VT52 emulation" >&5
 
 # Check whether --enable-vt52 or --disable-vt52 was given.
 if test "${enable_vt52+set}" = set; then
@@ -4472,7 +4602,7 @@
 
 
 echo $ac_n "checking if you want -ziconbeep option""... $ac_c" 1>&6
-echo "configure:4476: checking if you want -ziconbeep option" >&5
+echo "configure:4606: checking if you want -ziconbeep option" >&5
 
 # Check whether --enable-ziconbeep or --disable-ziconbeep was given.
 if test "${enable_ziconbeep+set}" = set; then
@@ -4497,7 +4627,7 @@
 
 # development/testing aids
 echo $ac_n "checking if you want debugging traces""... $ac_c" 1>&6
-echo "configure:4501: checking if you want debugging traces" >&5
+echo "configure:4631: checking if you want debugging traces" >&5
 
 # Check whether --enable-trace or --disable-trace was given.
 if test "${enable_trace+set}" = set; then
@@ -4526,7 +4656,7 @@
 
 
 echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6
-echo "configure:4530: checking if you want to see long compiling messages" >&5
+echo "configure:4660: 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
@@ -4566,7 +4696,7 @@
 
 
 echo $ac_n "checking if you want magic cookie emulation""... $ac_c" 1>&6
-echo "configure:4570: checking if you want magic cookie emulation" >&5
+echo "configure:4700: checking if you want magic cookie emulation" >&5
 
 # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
 if test "${enable_xmc_glitch+set}" = set; then
@@ -4595,7 +4725,7 @@
 
 if test -n "$GCC" ; then
 echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
-echo "configure:4599: checking if you want to turn on gcc warnings" >&5
+echo "configure:4729: 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
@@ -4635,9 +4765,9 @@
 if test -n "$GCC"
 then
        echo "checking for gcc __attribute__ directives" 1>&6
-echo "configure:4639: checking for gcc __attribute__ directives" >&5
+echo "configure:4769: checking for gcc __attribute__ directives" >&5
        cat > conftest.$ac_ext <<EOF
-#line 4641 "configure"
+#line 4771 "configure"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -4675,7 +4805,7 @@
 EOF
                        ;;
                esac
-               if { (eval echo configure:4679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+               if { (eval echo configure:4809: \"$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
 #              else
@@ -4692,11 +4822,11 @@
 if test -n "$GCC"
 then
                cat > conftest.$ac_ext <<EOF
-#line 4696 "configure"
+#line 4826 "configure"
 int main(int argc, char *argv[]) { return argv[argc-1] == 0; }
 EOF
                echo "checking for gcc warning options" 1>&6
-echo "configure:4700: checking for gcc warning options" >&5
+echo "configure:4830: checking for gcc warning options" >&5
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
        cf_warn_CONST=""
@@ -4714,7 +4844,7 @@
                Wstrict-prototypes $cf_warn_CONST
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-               if { (eval echo configure:4718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+               if { (eval echo configure:4848: \"$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"
                        test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
Index: configure.in
--- xterm-92+/configure.in      Sun Jan 24 14:44:33 1999
+++ xterm-93/configure.in       Sat Mar 13 15:21:15 1999
@@ -2,11 +2,11 @@
 dnl $XFree86: xc/programs/xterm/configure.in,v 3.20 1999/01/23 09:56:20 dawes Exp $
 dnl
 dnl ---------------------------------------------------------------------------
-dnl 
-dnl Copyright 1997,1998 by Thomas E. Dickey <dickey@clark.net>
-dnl 
+dnl
+dnl Copyright 1997,1998,1999 by Thomas E. Dickey <dickey@clark.net>
+dnl
 dnl                         All Rights Reserved
-dnl 
+dnl
 dnl Permission to use, copy, modify, and distribute this software and its
 dnl documentation for any purpose and without fee is hereby granted,
 dnl provided that the above copyright notice appear in all copies and that
@@ -15,7 +15,7 @@
 dnl copyright holder(s) not be used in advertising or publicity pertaining
 dnl to distribution of the software without specific, written prior
 dnl permission.
-dnl 
+dnl
 dnl THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
 dnl TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 dnl AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
@@ -23,11 +23,11 @@
 dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-dnl 
+dnl
 dnl ---------------------------------------------------------------------------
 dnl Process this file with autoconf to produce a configure script.
 dnl
-AC_PREREQ(2.12.971230)
+AC_PREREQ(2.13.19990117)
 AC_INIT(charproc.c)
 AC_CONFIG_HEADER(xtermcfg.h:xtermcfg.hin)
 CF_CHECK_CACHE
@@ -44,7 +44,7 @@
 AC_MINIX
 
 ###    checks for header files
-AC_CHECK_HEADERS(stdlib.h unistd.h)
+AC_CHECK_HEADERS(stdlib.h termios.h unistd.h)
 
 ###    checks for typedefs
 CF_SIZE_T
@@ -55,6 +55,7 @@
        bcopy \
        memmove \
        strerror \
+       tcgetattr \
        waitpid \
        )
 CF_FUNC_MEMMOVE
@@ -62,6 +63,7 @@
 
 ###    checks for structures
 CF_TYPE_FD_SET
+CF_POSIX_VDISABLE
 
 ###    checks for external data
 CF_ERRNO
@@ -142,8 +144,14 @@
        [private_TERMINFO=$withval],
        [private_TERMINFO=${TERMINFO-none}])
 AC_MSG_RESULT($private_TERMINFO)
-if test $private_TERMINFO != none ; then
-       AC_DEFINE_UNQUOTED(OWN_TERMINFO_DIR,"$private_TERMINFO")
+if test $private_TERMINFO = yes ; then
+       AC_MSG_WARN(no value given)
+elif test $private_TERMINFO != none ; then
+       if test -d $private_TERMINFO ; then
+               AC_DEFINE_UNQUOTED(OWN_TERMINFO_DIR,"$private_TERMINFO")
+       else
+               AC_MSG_WARN(not a directory)
+       fi
 elif test -d /usr/lib/terminfo ; then
        private_TERMINFO=/usr/lib/terminfo
 else
@@ -266,6 +274,22 @@
                AC_DEFINE(ALLOWLOGFILEEXEC)
        fi
 fi
+
+AC_MSG_CHECKING(if you want support for iconify/maximize translations)
+CF_ARG_DISABLE(maximize,
+       [  --disable-maximize      disable actions for iconify/deiconify/maximize/restore],
+       [enable_maximize=no],
+       [enable_maximize=yes])
+AC_MSG_RESULT($enable_maximize)
+test $enable_maximize = no && AC_DEFINE(OPT_MAXIMIZE,0)
+
+AC_MSG_CHECKING(if you want NumLock to override keyboard tables)
+CF_ARG_DISABLE(num-lock,
+       [  --disable-num-lock      disable NumLock keypad support],
+       [enable_numlock=no],
+       [enable_numlock=yes])
+AC_MSG_RESULT($enable_numlock)
+test $enable_numlock = no && AC_DEFINE(OPT_NUM_LOCK,0)
 
 AC_MSG_CHECKING(if you want support for right-scrollbar)
 CF_ARG_DISABLE(rightbar,
Index: ctlseqs.ms
--- xterm-92+/ctlseqs.ms        Fri Feb  5 06:10:23 1999
+++ xterm-93/ctlseqs.ms Fri Mar 12 13:01:58 1999
@@ -3,6 +3,36 @@
 .\" $XConsortium: ctlseqs.ms,v 1.16 94/12/28 20:45:48 gildea Exp $
 .\" $XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.17 1998/08/29 05:42:53 dawes Exp $
 .\"
+.\"
+.\" Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+.\" 
+.\"                         All Rights Reserved
+.\" 
+.\" 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 ABOVE LISTED COPYRIGHT HOLDER(S) 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 1991, 1994 X Consortium
 .\"
 .\" Permission is hereby granted, free of charge, to any person obtaining
@@ -94,6 +124,7 @@
 .[] AP \v'-1p'\s\nsAPC\s0\v'1p'
 .[] Bs \v'-1p'\s\nsBS\s0\v'1p'
 .[] Cs \v'-1p'\s\nsCSI\s0\v'1p'
+.[] S3 \v'-1p'\s\nsSS3\s0\v'1p'
 .[] Dc \v'-1p'\s\nsDCS\s0\v'1p'
 .[] Os \v'-1p'\s\nsOSC\s0\v'1p'
 .[] PM \v'-1p'\s\nsPM\s0\v'1p'
@@ -191,7 +222,11 @@
 .[] r r
 .[] cs s
 .[] t t
+.[] u u
+.[] v v
+.[] w w
 .[] x x
+.[] y y
 .[] | |
 .[] } }
 .[] ! !
@@ -731,16 +766,18 @@
 Set Scrolling Region [top;bottom] (default = full size of window) (DECSTBM)
 .
 .IP \\*(Cs\\*(Ps\\*s\\*;\\*s\\*(Ps\\*s\\*;\\*(Ps\\*s\\*t
-Window manipulation (from \fIdtterm\fP).
+Window manipulation (from \fIdtterm\fP, as well as extensions).
 Valid values for the first (and any additional parameters) are:
-  \*(Ps = \*1 \(-> Restore (de-iconify) window.
-  \*(Ps = \*2 \(-> Minimize (iconify) window.
+  \*(Ps = \*1 \(-> De-iconify window.
+  \*(Ps = \*2 \(-> Iconify window.
   \*(Ps = \*3 ; \fIx ; y\fP \(-> Move window to [x, y].
   \*(Ps = \*4 ; \fIheight ; width\fP \(-> Resize the \fIxterm\fP window to height and width in pixels.
   \*(Ps = \*5 \(-> Raise the \fIxterm\fP window to the front of the stacking order.
   \*(Ps = \*6 \(-> Lower the \fIxterm\fP window to the bottom of the stacking order.
   \*(Ps = \*7 \(-> Refresh the \fIxterm\fP window.
   \*(Ps = \*8 ; \fIheight ; width\fP \(-> Resize the text area to [height;width] in characters.
+  \*(Ps = \*9 ; \*0 \(-> Restore maximized window.
+  \*(Ps = \*9 ; \*1 \(-> Maximize window (i.e., resize to screen size).
   \*(Ps = \*1\*1 \(-> Report \fIxterm\fP window state.
 If the \fIxterm\fP window is open (non-iconified), it returns \*(Cs\*1\*t.
 If the \fIxterm\fP window is iconified, it returns \*(Cs\*2\*t.
@@ -749,7 +786,9 @@
   \*(Ps = \*1\*4 \(-> Report \fIxterm\fP window in pixels as
 \*(Cs\*s\*4\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
   \*(Ps = \*1\*8 \(-> Report the size of the text area in characters as
-\*(Cs\*s\*8\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*t
+\*(Cs\*s\*8\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
+  \*(Ps = \*1\*9 \(-> Report the size of the screen in characters as
+\*(Cs\*s\*9\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
   \*(Ps = \*2\*0 \(-> Report \fIxterm\fP window's icon label as
 \*(Os\*s\*L\*s\fIlabel\fP\*s\*(ST
   \*(Ps = \*2\*1 \(-> Report \fIxterm\fP window's title as
@@ -802,6 +841,9 @@
   \*(Ps = \*1\*0\*4\*9 \(-> Save cursor as in DECSC
 and use Alternate Screen Buffer, clearing it first (unless
 disabled by the \fBtiteInhibit\fP resource)
+  \*(Ps = \*1\*0\*5\*1 \(-> Set Sun function-key mode.
+  \*(Ps = \*1\*0\*5\*2 \(-> Set HP function-key mode.
+  \*(Ps = \*1\*0\*6\*1 \(-> Set Sun/PC keyboard mode.
 .
 .IP \\*(Cs\\*?\\*(Pm\\*s\\*l
 DEC Private Mode Reset (DECRST)
@@ -844,6 +886,9 @@
   \*(Ps = \*1\*0\*4\*9 \(-> Use Normal Screen Buffer and restore cursor
 as in DECRC (unless
 disabled by the \fBtiteInhibit\fP resource)
+  \*(Ps = \*1\*0\*5\*1 \(-> Reset Sun function-key mode.
+  \*(Ps = \*1\*0\*5\*2 \(-> Reset HP function-key mode.
+  \*(Ps = \*1\*0\*6\*1 \(-> Reset Sun/PC keyboard mode.
 .
 .IP \\*(Cs\\*?\\*(Pm\\*s\\*r
 Restore DEC Private Mode Values.  The value of \*(Ps previously saved is
@@ -880,6 +925,224 @@
 .Ed
 .
 .
+.SH
+PC-Style Function Keys
+.ds RH Function Keys
+.LP
+If \fIxterm\fP does minimal translation of the function keys, it usually does this
+with a PC-style keyboard, so PC-style function keys result.
+Sun keyboards are similar to PC keyboards.
+Both have cursor and scrolling operations printed on the keypad,
+which duplicate the smaller cursor and scrolling keypads.
+.LP
+The cursor keys transmit the following escape sequences depending on the
+mode specified via the \fBDECCKM\fP escape sequence.
+.TS
+center;
+cf3    cf3     cf3
+lf3w(2c)       lf3w(2c)        lf3w(2c) .
+Key    Normal  Application
+_
+Cursor Up      \*(Cs\*A        \*(S3\*A
+Cursor Down    \*(Cs\*(cB      \*(S3\*(cB
+Cursor Right   \*(Cs\*C        \*(S3\*C
+Cursor Left    \*(Cs\*D        \*(S3\*D
+.TE
+.LP
+The application keypad transmits the following escape sequences depending on the
+mode specified via the \fBDECPNM\fP and \fBDECPAM\fP escape sequences.
+Use the NumLock key to override the application mode.
+.LP
+Not all keys are present on the Sun/PC keypad (e.g., PF1, Tab), but are supported by
+the program.
+.TS
+center;
+cf3    cf3     cf3
+lf3w(2c)       lf3w(2c)        lf3w(2c) .
+Key    Numeric Application
+_
+Space  \*(Sp   \*(S3\*(Sp
+Tab    \*(Ta   \*(S3\*I
+Enter  \*(Cr   \*(S3\*M
+PF1    \*(S3\*P        \*(S3\*P
+PF2    \*(S3\*Q        \*(S3\*Q
+PF3    \*(S3\*R        \*(S3\*R
+PF4    \*(S3\*S        \*(S3\*S
+* \f1(multiply)\fP     *       \*(S3\*j
++ \f1(add)\fP  +       \*(S3\*k
+, \f1(comma)\fP        ,       \*(S3\*l
+- \f1(minus)\fP        -       \*(S3\*m
+\. \f1(Delete)\fP      \.      \*(S3\*3\*(c~
+/ \f1(divide)\fP       /       \*(S3\*o
+0 \f1(Insert)\fP       0       \*(Cs\*2\*(c~
+1 \f1(End)\fP  1       \*(Cs\*4\*(c~
+2 \f1(DownArrow)\fP    2       \*(Cs\*(cB
+3 \f1(PageDown)\fP     3       \*(Cs\*5\*(c~
+4 \f1(LeftArrow)\fP    4       \*(Cs\*D
+5 \f1(Begin)\fP        5       \*(Cs\*E
+6 \f1(RightArrow)\fP   6       \*(Cs\*C
+7 \f1(Home)\fP 7       \*(Cs\*1\*(c~
+8 \f1(UpArrow)\fP      8       \*(Cs\*A
+9 \f1(PageUp)\fP       9       \*(Cs\*5\*(c~
+= (equal)      \&=     \*(S3\*(XX
+.TE
+They also provide 12 function keys, as well as a few other special-purpose keys.
+.TS
+center;
+cf3    cf3
+lf3w(2c)       lf3w(2c) .
+Key    Escape Sequence
+_
+F1     \*(S3\*P
+F2     \*(S3\*Q
+F3     \*(S3\*R
+F4     \*(S3\*S
+F5     \*(Cs\*1\*5\*(c~
+F6     \*(Cs\*1\*7\*(c~
+F7     \*(Cs\*1\*8\*(c~
+F8     \*(Cs\*1\*9\*(c~
+F9     \*(Cs\*2\*0\*(c~
+F10    \*(Cs\*2\*1\*(c~
+F11    \*(Cs\*2\*3\*(c~
+F12    \*(Cs\*2\*4\*(c~
+.TE
+.LP
+Older versions of \fIxterm\fP implement different escape sequences for F1 through F4.
+These can be activated by setting the \fIoldXtermFKeys\fP resource.
+However, since they do not correspond to any hardware terminal, they have been deprecated.
+(The DEC VT220 reserves F1 through F5 for local functions such as \fBSetup\fP).
+.TS
+center;
+cf3    cf3
+lf3w(2c)       lf3w(2c) .
+Key    Escape Sequence
+_
+F1     \*(Cs\*1\*1\*(c~
+F2     \*(Cs\*1\*2\*(c~
+F3     \*(Cs\*1\*3\*(c~
+F4     \*(Cs\*1\*4\*(c~
+.TE
+.SH
+VT220-Style Function Keys
+.LP
+However, \fIxterm\fP is most useful as a DEC VT102 or VT220 emulator.
+.LP
+The VT102/VT220 application keypad transmits unique escape sequences in
+application mode, which are distinct from the cursor and scrolling keypad:
+.TS
+center;
+cf3    cf3     cf3
+lf3w(2c)       lf3w(2c)        lf3w(2c) .
+Key    Numeric Application
+_
+Space  Space   \*(S3\*(Sp
+Tab    Tab     \*(S3\*I
+Enter  CR      \*(S3\*M
+PF1    \*(S3\*P        \*(S3\*P
+PF2    \*(S3\*Q        \*(S3\*Q
+PF3    \*(S3\*R        \*(S3\*R
+PF4    \*(S3\*S        \*(S3\*S
+* \f1(multiply)\fP     *       \*(S3\*j
++ \f1(add)\fP  +       \*(S3\*k
+, \f1(comma)\fP        ,       \*(S3\*l
+- \f1(minus)\fP        -       \*(S3\*m
+\. \f1(period)\fP      \.      \*(S3\*n
+/ \f1(divide)\fP       /       \*(S3\*o
+0      0       \*(S3\*p
+1      1       \*(S3\*q
+2      2       \*(S3\*r
+3      3       \*(S3\*s
+4      4       \*(S3\*t
+5      5       \*(S3\*u
+6      6       \*(S3\*v
+7      7       \*(S3\*w
+8      8       \*(S3\*x
+9      9       \*(S3\*y
+= (equal)      \&=     \*(S3\*(XX
+.TE
+.LP
+The VT220 provides 8 additional function keys.
+With a Sun/PC keyboard, access these keys by Control/F1 for F13, etc.
+.TS
+center;
+cf3    cf3
+lf3w(2c)       lf3w(2c) .
+Key    Escape Sequence
+_
+F13    \*(Cs\*2\*5\*(c~
+F14    \*(Cs\*2\*6\*(c~
+F15    \*(Cs\*2\*8\*(c~
+F16    \*(Cs\*2\*9\*(c~
+F17    \*(Cs\*3\*1\*(c~
+F18    \*(Cs\*3\*2\*(c~
+F19    \*(Cs\*3\*3\*(c~
+F20    \*(Cs\*3\*4\*(c~
+.TE
+.SH
+VT52-Style Function Keys
+.LP
+A VT52 does not have function keys, but it does have a numeric keypad and cursor keys.
+They differ from the other emulations by the prefix.
+Also, the cursor keys do not change:
+.TS
+center;
+cf3    cf3
+lf3w(2c)       lf3w(2c) .
+Key    Normal/Application
+_
+Cursor Up      \*(Es\*A
+Cursor Down    \*(Es\*(cB
+Cursor Right   \*(Es\*C
+Cursor Left    \*(Es\*D
+.TE
+The keypad is similar:
+.TS
+center;
+cf3    cf3     cf3
+lf3w(2c)       lf3w(2c)        lf3w(2c) .
+Key    Numeric Application
+_
+Space  Space   \*(Es\*?\*(Sp
+Tab    Tab     \*(Es\*?\*I
+Enter  CR      \*(Es\*?\*M
+PF1    \*(Es\*P        \*(Es\*P
+PF2    \*(Es\*Q        \*(Es\*Q
+PF3    \*(Es\*R        \*(Es\*R
+PF4    \*(Es\*S        \*(Es\*S
+* \f1(multiply)\fP     *       \*(Es\*?\*j
++ \f1(add)\fP  +       \*(Es\*?\*k
+, \f1(comma)\fP        ,       \*(Es\*?\*l
+- \f1(minus)\fP        -       \*(Es\*?\*m
+\. \f1(period)\fP      \.      \*(Es\*?\*n
+/ \f1(divide)\fP       /       \*(Es\*?\*o
+0      0       \*(Es\*?\*p
+1      1       \*(Es\*?\*q
+2      2       \*(Es\*?\*r
+3      3       \*(Es\*?\*s
+4      4       \*(Es\*?\*t
+5      5       \*(Es\*?\*u
+6      6       \*(Es\*?\*v
+7      7       \*(Es\*?\*w
+8      8       \*(Es\*?\*x
+9      9       \*(Es\*?\*y
+= (equal)      \&=     \*(Es\*?\*(XX
+.TE
+.SH
+Sun-Style Function Keys
+.LP
+The \fIxterm\fP program provides support for Sun keyboards more directly, by
+a menu toggle that causes it to send Sun-style function key codes rather than VT220.
+Note, however, that the \fIsun\fP and \fIvt100\fP emulations are not really
+compatible.  For example, their wrap-margin behavior differs.
+.LP
+Only function keys are altered; keypad and cursor keys are the same.
+The emulation responds identically.
+See the xterm-sun terminfo entry for details.
+.SH
+HP-Style Function Keys
+.LP
+Similarly, \fIxterm\fP can be compiled to support HP keyboards.
+See the xterm-hp terminfo entry for details.
 .SH
 Mouse Tracking
 .ds RH Mouse Tracking
Index: doublechr.c
--- xterm-92+/doublechr.c       Sun Nov 22 13:07:22 1998
+++ xterm-93/doublechr.c        Fri Mar 12 08:11:54 1999
@@ -174,7 +174,7 @@
        gcv.foreground = screen->foreground;
        gcv.background = term->core.background_pixel;
 
-       screen->double_gc[n] = XCreateGC (screen->display, TextWindow(screen), mask, &gcv);
+       screen->double_gc[n] = XCreateGC (screen->display, VWindow(screen), mask, &gcv);
        XCopyGC(screen->display, old_gc, ~GCFont, screen->double_gc[n]);
        return screen->double_gc[n];
 }
Index: fontutils.c
--- xterm-92+/fontutils.c       Fri Feb  5 05:51:07 1999
+++ xterm-93/fontutils.c        Fri Mar 12 08:12:03 1999
@@ -1,5 +1,5 @@
 /*
- * $XFree86: xc/programs/xterm/fontutils.c,v 1.5 1998/12/20 11:58:33 dawes Exp $
+ * $XFree86: xc/programs/xterm/fontutils.c,v 1.6 1999/02/07 06:18:56 dawes Exp $
  */
 
 /************************************************************
@@ -828,10 +828,10 @@
                return;
 
        values.foreground = values.background;
-       gc2 = XCreateGC(screen->display, TextWindow(screen), GCForeground, &values);
+       gc2 = XCreateGC(screen->display, VWindow(screen), GCForeground, &values);
 
        XFillRectangle(
-               screen->display, TextWindow(screen), gc2, x, y,
+               screen->display, VWindow(screen), gc2, x, y,
                screen->fnt_wide,
                screen->fnt_high);
 
@@ -860,7 +860,7 @@
                                SCALE_X(coord[2]); SCALE_Y(coord[3]);
                                XDrawLine(
                                        screen->display,
-                                       TextWindow(screen), gc2,
+                                       VWindow(screen), gc2,
                                        x + coord[0], y + coord[1],
                                        x + coord[2], y + coord[3]);
                                n = 0;
@@ -870,7 +870,7 @@
 #if 0  /* bounding rectangle, for debugging */
        else {
                XDrawRectangle(
-                       screen->display, TextWindow(screen), gc, x, y,
+                       screen->display, VWindow(screen), gc, x, y,
                        screen->fnt_wide-1,
                        screen->fnt_high-1);
        }
Index: fontutils.h
--- xterm-92+/fontutils.h       Thu Feb  4 05:07:22 1999
+++ xterm-93/fontutils.h        Sun Feb  7 12:54:50 1999
@@ -1,5 +1,5 @@
 /*
- * $XFree86: xc/programs/xterm/fontutils.h,v 1.4 1998/12/20 11:58:33 dawes Exp $
+ * $XFree86: xc/programs/xterm/fontutils.h,v 1.5 1999/02/07 06:18:57 dawes Exp $
  */
 
 /************************************************************
Index: input.c
--- xterm-92+/input.c   Wed Feb  3 20:18:19 1999
+++ xterm-93/input.c    Fri Mar 12 11:30:33 1999
@@ -1,9 +1,38 @@
 /*
  *     $XConsortium: input.c /main/21 1996/04/17 15:54:23 kaleb $
- *     $XFree86: xc/programs/xterm/input.c,v 3.26 1999/01/23 09:56:21 dawes Exp $
+ *     $XFree86: xc/programs/xterm/input.c,v 3.27 1999/02/07 06:18:58 dawes Exp $
  */
 
 /*
+ * Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+ * 
+ *                         All Rights Reserved
+ * 
+ * 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 ABOVE LISTED COPYRIGHT HOLDER(S) 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 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  *
  *                         All Rights Reserved
@@ -40,9 +69,13 @@
 #include <data.h>
 #include <fontutils.h>
 
-static char *kypd_num = " XXXXXXXX\tXXX\rXXXxxxxXXXXXXXXXXXXXXXXXXXXX*+,-./0123456789XXX=";
-static char *kypd_apl = " ABCDEFGHIJKLMNOPQRSTUVWXYZ??????abcdefghijklmnopqrstuvwxyzXXX";
-static char *cur = "HDACB  FE";
+/*                       0123456789 abc def0123456789abdef0123456789abcdef0123456789abcd */
+static char *kypd_num = " XXXXXXXX\tXXX\rXXXxxxxXXXXXXXXXXXXXXXXXXXXX*+,-./0123456789XX=";
+
+/*                       0123456789abcdef0123456789abdef0123456789abcdef0123456789abcd */
+static char *kypd_apl = " ABCDEFGHIJKLMNOPQRSTUVWXYZ??????abcdefghijklmnopqrstuvwxyzXX";
+
+static char *curfinal = "HDACB  FE";
 
 static int decfuncvalue (KeySym keycode);
 static int sunfuncvalue (KeySym keycode);
@@ -50,6 +83,31 @@
 static int hpfuncvalue (KeySym keycode);
 #endif
 
+#if OPT_TRACE
+static char *
+ModifierName(unsigned modifier)
+{
+    char *s = "";
+    if (modifier & ShiftMask)
+       s = " Shift";
+    else if (modifier & LockMask)
+       s = " Lock";
+    else if (modifier & ControlMask)
+       s = " Control";
+    else if (modifier & Mod1Mask)
+       s = " Mod1";
+    else if (modifier & Mod2Mask)
+       s = " Mod2";
+    else if (modifier & Mod3Mask)
+       s = " Mod3";
+    else if (modifier & Mod4Mask)
+       s = " Mod4";
+    else if (modifier & Mod5Mask)
+       s = " Mod5";
+    return s;
+}
+#endif
+
 static void
 AdjustAfterInput (register TScreen *screen)
 {
@@ -94,6 +152,49 @@
        }
 }
 
+#if OPT_SUNPC_KBD
+/*
+ * If we have told xterm that our keyboard is really a Sun/PC keyboard, this is
+ * enough to make a reasonable approximation to DEC vt220 numeric and editing
+ * keypads.
+ */
+static KeySym
+TranslateFromSUNPC(KeySym keysym)
+{
+       static struct {
+               KeySym before, after;
+       } table[] = {
+#ifdef DXK_Remove
+               { XK_Delete,       DXK_Remove },
+#endif
+               { XK_Home,         XK_Find },
+               { XK_End,          XK_Select },
+#ifdef XK_KP_Home
+               { XK_KP_Delete,    XK_KP_Decimal },
+               { XK_KP_Insert,    XK_KP_0 },
+               { XK_KP_End,       XK_KP_1 },
+               { XK_KP_Down,      XK_KP_2 },
+               { XK_KP_Next,      XK_KP_3 },
+               { XK_KP_Left,      XK_KP_4 },
+               { XK_KP_Begin,     XK_KP_5 },
+               { XK_KP_Right,     XK_KP_6 },
+               { XK_KP_Home,      XK_KP_7 },
+               { XK_KP_Up,        XK_KP_8 },
+               { XK_KP_Prior,     XK_KP_9 },
+#endif
+       };
+       unsigned n;
+
+       for (n = 0; n < sizeof(table)/sizeof(table[0]); n++) {
+               if (table[n].before == keysym) {
+                       keysym = table[n].after;
+                       TRACE(("...Input keypad changed to %#04lx\n", keysym))
+                       break;
+               }
+       }
+       return keysym;
+}
+#endif
 /*
  * Modifiers other than shift, control and numlock should be reserved for the
  * user.  We use the first two explicitly to support VT220 keyboard, and the
@@ -103,6 +204,17 @@
     (event->state & \
        (Mod1Mask | Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask ))
 
+#define VT52_KEYPAD \
+       if_OPT_VT52_MODE(screen,{ \
+               reply.a_type = ESC; \
+               reply.a_pintro = '?'; \
+               })
+
+#define VT52_CURSOR_KEYS \
+       if_OPT_VT52_MODE(screen,{ \
+               reply.a_type = ESC; \
+               })
+
 void
 Input (
        register TKeyboard *keyboard,
@@ -146,6 +258,50 @@
        reply.a_nparam = 0;
        reply.a_inters = 0;
 
+       TRACE(("Input keysym %#04lx, %d:'%.*s'%s%s%s%s%s%s%s%s\n",
+               keysym,
+               nbytes,
+               nbytes > 0 ? nbytes : 1,
+               nbytes > 0 ? strbuf : "",
+               ModifierName(event->state & ShiftMask),
+               ModifierName(event->state & LockMask),
+               ModifierName(event->state & ControlMask),
+               ModifierName(event->state & Mod1Mask),
+               ModifierName(event->state & Mod2Mask),
+               ModifierName(event->state & Mod3Mask),
+               ModifierName(event->state & Mod4Mask),
+               ModifierName(event->state & Mod5Mask)))
+
+#if OPT_SUNPC_KBD
+       /*
+        * DEC keyboards don't have keypad(+), but do have keypad(,) instead. 
+        * Other (Sun, PC) keyboards commonly have keypad(+), but no keypad(,)
+        * - it's a pain for users to work around.
+        */
+       if (!sunFunctionKeys
+        && sunKeyboard
+        && keysym == XK_KP_Add)
+               keysym = XK_KP_Separator;
+#endif
+
+       /*
+        * The keyboard tables may give us different keypad codes according to
+        * whether NumLock is pressed.  Use this check to simplify the process
+        * of determining whether we generate an escape sequence for a keypad
+        * key, or use the string returned by the keyboard tables.  There is no
+        * fixed modifier for this feature, so we assume that it is the one
+        * assigned to the NumLock key.
+        */
+#if OPT_NUM_LOCK
+       if (nbytes == 1
+        && IsKeypadKey(keysym)
+        && term->misc.real_NumLock
+        && (term->misc.num_lock & event->state) != 0) {
+               keysym = *string;
+               TRACE(("...Input num_lock, change keysym to %#04lx\n", keysym))
+       }
+#endif
+
 #if OPT_SHIFT_KEYS
        if (term->misc.shift_keys
         && (event->state & ShiftMask) != 0) {
@@ -166,54 +322,49 @@
        if ((nbytes == 1)
         && (term->flags & NATIONAL)) {
                keysym = xtermCharSetIn(keysym, screen->keyboard_dialect[0]);
-               if (keysym < 128)
+               if (keysym < 128) {
                        strbuf[0] = keysym;
+                       TRACE(("...input NRC changed to %d\n", *strbuf))
+               }
+       }
+
+       /*
+        * VT220 & up:  users expect that the Delete key on the editing keypad
+        * should be mapped to \E[3~.  However, we won't get there unless it is
+        * treated as a keypad key, which XK_Delete is not.  This presumes that
+        * we have a backarrow key to supply a DEL character, which is still
+        * needed in a number of applications.
+        */
+#ifdef XK_KP_Delete
+       if (keysym == XK_Delete) {
+               keysym = XK_KP_Delete;
+               TRACE(("...Input delete changed to %#04lx\n", keysym))
        }
+#endif
 
        /* VT300 & up: backarrow toggle */
        if ((nbytes == 1)
-        && !isModified(event)
         && (((term->keyboard.flags & MODE_DECBKM) == 0)
           ^ ((event->state & ControlMask) != 0))
         && (keysym == XK_BackSpace)) {
                strbuf[0] = '\177';
+               TRACE(("...Input backarrow changed to %d\n", *strbuf))
        }
 
-#ifdef XK_KP_Home
-       if (keysym >= XK_KP_Home && keysym <= XK_KP_Begin) {
-           keysym += XK_Home - XK_KP_Home;
-       }
-#endif
-
-#define VT52_KEYPAD \
-       if_OPT_VT52_MODE(screen,{ \
-               reply.a_type = ESC; \
-               reply.a_pintro = '?'; \
-               })
-
-#define VT52_CURSOR_KEYS \
-       if_OPT_VT52_MODE(screen,{ \
-               reply.a_type = ESC; \
-               })
-
 #if OPT_SUNPC_KBD
        /* make an DEC editing-keypad from a Sun or PC editing-keypad */
-       if (sunKeyboard && !isModified(event)) {
-               switch (keysym) {
-               case XK_Delete:
-#ifdef DXK_Remove
-                       keysym = DXK_Remove;
+       if (sunKeyboard)
+               keysym = TranslateFromSUNPC(keysym);
+       else
 #endif
-                       break;
-               case XK_Home:
-                       keysym = XK_Find;
-                       break;
-               case XK_End:
-                       keysym = XK_Select;
-                       break;
-               }
+       {
+#ifdef XK_KP_Home
+       if (keysym >= XK_KP_Home && keysym <= XK_KP_Begin) {
+               keysym += XK_Home - XK_KP_Home;
+               TRACE(("...Input keypad changed to %#04lx\n", keysym))
        }
 #endif
+       }
 
 #if OPT_HP_FUNC_KEYS
        if (hpFunctionKeys
@@ -239,13 +390,13 @@
                keysym != XK_Prior && keysym != XK_Next) {
                if (keyboard->flags & MODE_DECCKM) {
                        reply.a_type = SS3;
-                       reply.a_final = cur[keysym-XK_Home];
+                       reply.a_final = curfinal[keysym-XK_Home];
                        VT52_CURSOR_KEYS
                        unparseseq(&reply, pty);
                } else {
                        reply.a_type = CSI;
                        if_OPT_VT52_MODE(screen,{ reply.a_type = ESC; })
-                       reply.a_final = cur[keysym-XK_Home];
+                       reply.a_final = curfinal[keysym-XK_Home];
                        unparseseq(&reply, pty);
                }
                key = TRUE;
@@ -294,25 +445,14 @@
                }
                key = TRUE;
        } else if (IsKeypadKey(keysym)) {
-#if OPT_SUNPC_KBD
-               /*
-                * DEC keyboards don't have keypad(+), but do have keypad(,)
-                * instead.  Other (Sun, PC) keyboards commonly have keypad(+),
-                * but no keypad(,) - it's a pain for users to work around.
-                */
-               if (!sunFunctionKeys
-                && !isModified(event)
-                && sunKeyboard
-                && keysym == XK_KP_Add)
-                       keysym = XK_KP_Separator;
-#endif
                if ((keyboard->flags & MODE_DECKPAM) != 0) {
                        reply.a_type  = SS3;
                        reply.a_final = kypd_apl[keysym-XK_KP_Space];
                        VT52_KEYPAD
                        unparseseq(&reply, pty);
-               } else
+               } else {
                        unparseputc(kypd_num[keysym-XK_KP_Space], pty);
+               }
                key = TRUE;
        } else if (nbytes > 0) {
 #if OPT_TEK4014
@@ -500,3 +640,38 @@
                default:        return(-1);
        }
 }
+
+#if OPT_NUM_LOCK
+/*
+ * Determine which modifier mask (if any) applies to the Num_Lock keysym.
+ */
+void
+VTInitModifiers(void)
+{
+    int i, j, k;
+    Display *dpy = XtDisplay(term);
+    XModifierKeymap *keymap = XGetModifierMapping(dpy);
+
+    if (keymap != 0) {
+
+       TRACE(("VTInitModifiers\n"))
+       for (i = k = 0; i < 8; i++) {
+           for (j = 0; j < keymap->max_keypermod; j++) {
+               KeyCode code = keymap->modifiermap[k];
+               if (code != 0) {
+                   KeySym keysym = XKeycodeToKeysym(dpy,code,0);
+                   if (keysym == XK_Num_Lock) {
+                       term->misc.num_lock = (1<<i);
+                       TRACE(("numlock mask %#lx is%s modifier\n",
+                               term->misc.num_lock,
+                               ModifierName(term->misc.num_lock)))
+                   }
+               }
+               k++;
+           }
+       }
+
+       XFreeModifiermap(keymap);
+    }
+}
+#endif /* OPT_NUM_LOCK */
Index: main.c
--- xterm-92+/main.c    Wed Feb  3 06:27:10 1999
+++ xterm-93/main.c     Sat Mar 13 15:56:09 1999
@@ -64,7 +64,7 @@
 
 ******************************************************************/
 
-/* $XFree86: xc/programs/xterm/main.c,v 3.82 1999/01/23 09:56:21 dawes Exp $ */
+/* $XFree86: xc/programs/xterm/main.c,v 3.83 1999/02/07 06:18:58 dawes Exp $ */
 
 
 /* main.c */
@@ -193,16 +193,11 @@
 #include <termio.h>
 #endif
 
-#ifdef CSRG_BASED
-#define USE_POSIX_TERMIOS
-#endif
-
 #ifdef SCO325
 #define _SVID3
 #endif
 
 #ifdef __GNU__
-#define USE_POSIX_TERMIOS
 #define USE_SYSV_PGRP
 #define WTMP
 #define HAS_BSD_GROUPS
@@ -1647,7 +1642,7 @@
            term->flags |= WRAPAROUND;
            update_autowrap();
        }
-       if (term->misc.re_verse) {
+       if (term->misc.re_verse != term->misc.re_verse0) {
            term->flags |= REVERSE_VIDEO;
            update_reversevideo();
        }
@@ -4166,6 +4161,25 @@
        if (*s == '^') {
            s++;
            c = ((*s == '?') ? 0177 : *s & 31);  /* keep control bits */
+           if (*s == '-') {
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+#  if HAVE_POSIX_VDISABLE
+               c = _POSIX_VDISABLE;
+#  else
+               errno = 0;
+               c = fpathconf(0, _PC_VDISABLE);
+               if (c == -1) {
+                   if (errno != 0)
+                       continue;       /* skip this (error) */
+                   c = 0377;
+               }
+#  endif
+#elif defined(VDISABLE)
+               c = VDISABLE;
+#else
+               continue;               /* ignore */
+#endif
+           }
        } else {
            c = *s;
        }
Index: menu.c
--- xterm-92+/menu.c    Wed Feb  3 19:58:15 1999
+++ xterm-93/menu.c     Sun Feb  7 12:54:50 1999
@@ -1,5 +1,5 @@
 /* $XConsortium: menu.c /main/66 1996/12/01 23:46:59 swick $ */
-/* $XFree86: xc/programs/xterm/menu.c,v 3.20 1998/12/20 11:58:35 dawes Exp $ */
+/* $XFree86: xc/programs/xterm/menu.c,v 3.21 1999/02/07 06:18:59 dawes Exp $ */
 /*
 
 Copyright (c) 1989  X Consortium
Index: menu.h
--- xterm-92+/menu.h    Wed Feb  3 06:17:07 1999
+++ xterm-93/menu.h     Sun Feb  7 12:54:50 1999
@@ -1,5 +1,5 @@
 /* $XConsortium: menu.h /main/27 1996/12/01 23:47:03 swick $ */
-/* $XFree86: xc/programs/xterm/menu.h,v 3.12 1998/12/20 11:58:35 dawes Exp $ */
+/* $XFree86: xc/programs/xterm/menu.h,v 3.13 1999/02/07 06:19:00 dawes Exp $ */
 /*
 
 Copyright (c) 1989  X Consortium
Index: misc.c
--- xterm-92+/misc.c    Wed Feb  3 19:58:34 1999
+++ xterm-93/misc.c     Fri Mar 12 20:15:36 1999
@@ -1,9 +1,39 @@
 /*
  *     $XConsortium: misc.c /main/112 1996/11/29 10:34:07 swick $
- *     $XFree86: xc/programs/xterm/misc.c,v 3.32 1998/10/25 07:12:45 dawes Exp $
+ *     $XFree86: xc/programs/xterm/misc.c,v 3.33 1999/02/07 06:19:00 dawes Exp $
  */
 
 /*
+ *
+ * Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+ *
+ *                        All Rights Reserved
+ *
+ * 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 ABOVE LISTED COPYRIGHT HOLDER(S) 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 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  *
  *                         All Rights Reserved
@@ -236,6 +266,39 @@
     }
 }
 
+/*
+ * Rather than sending characters to the host, put them directly into our
+ * input queue.  That lets a user have access to any of the control sequences
+ * for a key binding.  This is the equivalent of local function key support.
+ *
+ * NOTE:  This code does not support the hexidecimal kludge used in
+ * HandleStringEvent because it prevents us from sending an arbitrary string
+ * (but it appears in a lot of examples - so we are stuck with it).  The
+ * standard string converter does recognize "\" for newline ("\n") and for
+ * octal constants (e.g., "\007" for BEL).  So we assume the user can make do
+ * without a specialized converter.  (Don't try to use \000, though).
+ */
+/* ARGSUSED */
+void HandleInterpret(
+       Widget w GCC_UNUSED,
+       XEvent *event GCC_UNUSED,
+       String *params,
+       Cardinal *param_count)
+{
+    unsigned need;
+    if (*param_count != 1) return;
+    need = strlen(params[0]);
+    if (bcnt < 0)
+       bcnt = 0;
+    if ((unsigned)bcnt + need >= BUF_SIZE) return;
+    if (bcnt != 0
+     && (unsigned)(bptr - VTbuffer) < need)
+       memmove(bptr + need - (bptr - VTbuffer), bptr, bcnt);
+    bcnt += need;
+    bptr -= need;
+    memcpy(bptr, params[0], need);
+}
+
 static void DoSpecialEnterNotify (register XEnterWindowEvent *ev)
 {
     register TScreen *screen = &term->screen;
@@ -477,6 +540,165 @@
     }
 }
 
+
+#if OPT_MAXIMIZE
+/*ARGSUSED*/
+void HandleDeIconify (
+    Widget gw,
+    XEvent *event GCC_UNUSED,
+    String *params GCC_UNUSED,
+    Cardinal *nparams GCC_UNUSED)
+{
+    if (IsXtermWidget(gw)) {
+       register TScreen *screen = &((XtermWidget)gw)->screen;
+       XMapWindow(screen->display, VShellWindow);
+    }
+}
+
+/*ARGSUSED*/
+void HandleIconify (
+    Widget gw,
+    XEvent *event GCC_UNUSED,
+    String *params GCC_UNUSED,
+    Cardinal *nparams GCC_UNUSED)
+{
+    if (IsXtermWidget(gw)) {
+       register TScreen *screen = &((XtermWidget)gw)->screen;
+       XIconifyWindow(screen->display,
+                      VShellWindow,
+                      DefaultScreen(screen->display));
+    }
+}
+
+int QueryMaximize(TScreen *screen, unsigned *width, unsigned *height)
+{
+    XSizeHints hints;
+    long supp = 0;
+    Window root_win;
+    int root_x = -1;           /* saved co-ordinates */
+    int root_y = -1;
+    unsigned root_border;
+    unsigned root_depth;
+
+    if (XGetGeometry(screen->display,
+                   XDefaultRootWindow(screen->display),
+                   &root_win,
+                   &root_x,
+                   &root_y,
+                   width,
+                   height,
+                   &root_border,
+                   &root_depth)) {
+       TRACE(("QueryMaximize: XGetGeometry position %d,%d size %d,%d border %d\n",
+               root_x,
+               root_y,
+               *width,
+               *height,
+               root_border))
+       *width -= (screen->border * 2),
+       *height -= (screen->border * 2);
+
+       if (XGetWMNormalHints(screen->display,
+                           VShellWindow,
+                           &hints,
+                           &supp)) {
+
+           TRACE(("QueryMaximize: WM hints max_w %#x max_h %#x\n",
+                   hints.max_width,
+                   hints.max_height))
+
+           if ((unsigned) hints.max_width < *width)
+               *width = hints.max_width;
+           if ((unsigned) hints.max_height < *height)
+               *height = hints.max_height;
+       }
+       return 1;
+    }
+    return 0;
+}
+
+void RequestMaximize (XtermWidget termw, int maximize)
+{
+    register TScreen   *screen = &termw->screen;
+    XWindowAttributes win_attrs;
+    Position root_x, root_y;
+    unsigned root_width, root_height;
+
+    if (maximize) {
+
+       if (QueryMaximize(screen, &root_width, &root_height)) {
+
+           if (XGetWindowAttributes(screen->display,
+                                    VShellWindow,
+                                    &win_attrs)) {
+               XtTranslateCoords(toplevel, 0, 0, &root_x, &root_y);
+
+               if (screen->restore_data != True
+                || screen->restore_width != root_width
+                || screen->restore_height != root_height) {
+                   screen->restore_data = True;
+                   screen->restore_x = root_x - win_attrs.x;
+                   screen->restore_y = root_y - win_attrs.y;
+                   screen->restore_width = win_attrs.width;
+                   screen->restore_height = win_attrs.height;
+                   TRACE(("HandleMaximize: save window position %d,%d size %d,%d\n",
+                           screen->restore_x,
+                           screen->restore_y,
+                           screen->restore_width,
+                           screen->restore_height))
+               }
+
+               XMoveResizeWindow(screen->display,
+                                 VShellWindow,
+                                 0, /* x */
+                                 0, /* y */
+                                 root_width,
+                                 root_height);
+           }
+       }
+    } else {
+       if (screen->restore_data) {
+           TRACE(("HandleRestoreSize: position %d,%d size %d,%d\n",
+                   screen->restore_x,
+                   screen->restore_y,
+                   screen->restore_width,
+                   screen->restore_height))
+           screen->restore_data = False;
+           XMoveResizeWindow(screen->display,
+                             VShellWindow,
+                             screen->restore_x,
+                             screen->restore_y,
+                             screen->restore_width,
+                             screen->restore_height);
+       }
+    }
+}
+
+/*ARGSUSED*/
+void HandleMaximize (
+    Widget gw,
+    XEvent *event GCC_UNUSED,
+    String *params GCC_UNUSED,
+    Cardinal *nparams GCC_UNUSED)
+{
+    if (IsXtermWidget(gw)) {
+       RequestMaximize((XtermWidget)gw, 1);
+    }
+}
+
+/*ARGSUSED*/
+void HandleRestoreSize (
+    Widget gw,
+    XEvent *event GCC_UNUSED,
+    String *params GCC_UNUSED,
+    Cardinal *nparams GCC_UNUSED)
+{
+    if (IsXtermWidget(gw)) {
+       RequestMaximize((XtermWidget)gw, 0);
+    }
+}
+#endif /* OPT_MAXIMIZE */
+
 void
 Redraw(void)
 {
@@ -880,10 +1102,14 @@
                                if_OPT_ISO_COLORS(screen,{
                                if (term->flags & FG_COLOR)
                                        sprintf(reply+strlen(reply),
-                                               ";3%d", term->cur_foreground);
+                                               ";%d%d",
+                                               term->cur_foreground >= 8 ? 9 : 3,
+                                               term->cur_foreground);
                                if (term->flags & BG_COLOR)
                                        sprintf(reply+strlen(reply),
-                                               ";4%d", term->cur_background);
+                                               ";%d%d",
+                                               term->cur_background >= 8 ? 10 : 4,
+                                               term->cur_background);
                                })
                                strcat(reply, "m");
                        } else
Index: os2main.c
--- xterm-92+/os2main.c Wed Feb  3 06:27:08 1999
+++ xterm-93/os2main.c  Sat Mar 13 11:33:43 1999
@@ -5,7 +5,7 @@
 #ifndef lint
 static char *rid="$XConsortium: main.c,v 1.227.1.2 95/06/29 18:13:15 kaleb Exp $";
 #endif /* lint */
-/* $XFree86: xc/programs/xterm/os2main.c,v 3.22 1999/01/23 09:56:22 dawes Exp $ */
+/* $XFree86: xc/programs/xterm/os2main.c,v 3.23 1999/02/07 06:19:00 dawes Exp $ */
 
 /***********************************************************
 
@@ -1003,7 +1003,7 @@
            term->flags |= WRAPAROUND;
            update_autowrap();
        }
-       if (term->misc.re_verse) {
+       if (term->misc.re_verse != term->misc.re_verse0) {
            term->flags |= REVERSE_VIDEO;
            update_reversevideo();
        }
@@ -1828,6 +1828,15 @@
        if (*s == '^') {
            s++;
            c = ((*s == '?') ? 0177 : *s & 31);  /* keep control bits */
+           if (*s == '-') {
+               errno = 0;
+               c = fpathconf(0, _PC_VDISABLE);
+               if (c == -1) {
+                   if (errno != 0)
+                       continue;       /* skip this (error) */
+                   c = 0377;
+               }
+           }
        } else {
            c = *s;
        }
Index: ptyx.h
--- xterm-92+/ptyx.h    Fri Feb  5 05:36:09 1999
+++ xterm-93/ptyx.h     Sat Mar 13 09:21:07 1999
@@ -1,9 +1,38 @@
 /*
  *     $XConsortium: ptyx.h /main/67 1996/11/29 10:34:19 swick $
- *     $XFree86: xc/programs/xterm/ptyx.h,v 3.47 1999/01/23 09:56:23 dawes Exp $
+ *     $XFree86: xc/programs/xterm/ptyx.h,v 3.48 1999/02/07 06:19:01 dawes Exp $
  */
 
 /*
+ * Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+ * 
+ *                         All Rights Reserved
+ * 
+ * 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 ABOVE LISTED COPYRIGHT HOLDER(S) 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 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  *
  *                         All Rights Reserved
@@ -49,7 +78,7 @@
     :  (XtPointer)malloc((unsigned)(size)))
 
 #define MyStackFree(pointer, stack_cache_array) \
-    if ((pointer) != ((XtPointer)(stack_cache_array))) free(pointer)
+    if ((pointer) != ((char *)(stack_cache_array))) free(pointer)
 
 #ifdef AMOEBA
 /* Avoid name clashes with standard Amoeba types: */
@@ -354,6 +383,14 @@
 #define OPT_HIGHLIGHT_COLOR 1 /* true if xterm supports color highlighting */
 #endif
 
+#ifndef OPT_MAXIMIZE
+#define OPT_MAXIMIZE   1 /* add actions for iconify ... maximize */
+#endif
+
+#ifndef OPT_NUM_LOCK
+#define OPT_NUM_LOCK   1 /* use NumLock key only for numeric-keypad */
+#endif
+
 #ifndef OPT_SAME_NAME
 #define OPT_SAME_NAME   1 /* suppress redundant updates of title, icon, etc. */
 #endif
@@ -784,6 +821,13 @@
        Boolean         always_highlight; /* whether to highlight cursor */
        Boolean         underline;      /* whether to underline text    */
 
+#if OPT_MAXIMIZE
+       Boolean         restore_data;
+       unsigned        restore_x;
+       unsigned        restore_y;
+       unsigned        restore_width;
+       unsigned        restore_height;
+#endif
        /* Testing */
 #if OPT_XMC_GLITCH
        int             xmc_glitch;     /* # of spaces to pad on SGR's  */
@@ -886,6 +930,7 @@
 #endif
     Boolean login_shell;
     Boolean re_verse;
+    Boolean re_verse0; /* initial value of "-rv" */
     XtGravity resizeGravity;
     Boolean reverseWrap;
     Boolean autoWrap;
@@ -920,6 +965,10 @@
 #if OPT_SHIFT_KEYS
     Boolean shift_keys;                /* true if we interpret shifted special-keys */
 #endif
+#if OPT_NUM_LOCK
+    Boolean real_NumLock;      /* true if we treat NumLock key specially */
+    unsigned long num_lock;
+#endif
 } Misc;
 
 typedef struct {int foo;} XtermClassPart, TekClassPart;
@@ -1056,7 +1105,6 @@
 #define IsIcon(screen)         ((screen)->whichVwin == &(screen)->iconVwin)
 #define VWindow(screen)                ((screen)->whichVwin->window)
 #define VShellWindow           term->core.parent->core.window
-#define TextWindow(screen)      ((screen)->whichVwin->window)
 #define TWindow(screen)                ((screen)->whichTwin->window)
 #define TShellWindow           tekWidget->core.parent->core.window
 #define Width(screen)          ((screen)->whichVwin->width)
@@ -1085,7 +1133,6 @@
 #define IsIcon(screen)         (False)
 #define VWindow(screen)                ((screen)->fullVwin.window)
 #define VShellWindow           term->core.parent->core.window
-#define TextWindow(screen)      ((screen)->fullVwin.window)
 #define TWindow(screen)                ((screen)->fullTwin.window)
 #define TShellWindow           tekWidget->core.parent->core.window
 #define Width(screen)          ((screen)->fullVwin.width)
Index: resize.c
--- xterm-92+/resize.c  Wed Feb  3 06:27:23 1999
+++ xterm-93/resize.c   Sun Feb  7 12:54:50 1999
@@ -1,6 +1,6 @@
 /*
  *     $XConsortium: resize.c,v 1.34 95/05/24 22:12:04 gildea Exp $
- *     $XFree86: xc/programs/xterm/resize.c,v 3.29 1998/11/22 10:37:49 dawes Exp $
+ *     $XFree86: xc/programs/xterm/resize.c,v 3.30 1999/02/07 06:19:01 dawes Exp $
  */
 
 /*
Index: screen.c
--- xterm-92+/screen.c  Sun Jan 24 14:44:33 1999
+++ xterm-93/screen.c   Fri Mar 12 08:12:51 1999
@@ -812,7 +812,7 @@
 #elif defined(TIOCSWINSZ)
        struct winsize ws;
 #endif /* sun vs TIOCSWINSZ */
-       Window tw = TextWindow (screen);
+       Window tw = VWindow (screen);
 
        TRACE(("ScreenResize %dx%d\n", height, width))
 
Index: scrollbar.c
--- xterm-92+/scrollbar.c       Wed Feb  3 05:52:36 1999
+++ xterm-93/scrollbar.c        Fri Mar 12 08:12:55 1999
@@ -1,6 +1,6 @@
 /*
  *     $XConsortium: scrollbar.c /main/47 1996/12/01 23:47:08 swick $
- *     $XFree86: xc/programs/xterm/scrollbar.c,v 3.20 1998/10/25 07:12:48 dawes Exp $
+ *     $XFree86: xc/programs/xterm/scrollbar.c,v 3.21 1999/02/07 06:19:02 dawes Exp $
  */
 
 /*
@@ -298,7 +298,7 @@
 
        XClearArea(
            screen->display,
-           TextWindow(screen),
+           VWindow(screen),
            (int) x,
            (int) refreshtop * FontHeight(screen) + screen->border,
            (unsigned) Width(screen),
Index: termcap
--- xterm-92+/termcap   Sun Dec 20 22:50:38 1998
+++ xterm-93/termcap    Sat Mar 13 16:43:05 1999
@@ -31,9 +31,9 @@
        :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
        :k;=\E[21~:F1=\E[23~:F2=\E[24~:\
        :kn#12:\
-       :kH=\E[4~::@7=\E[4~:kh=\E[1~:\
-       :@0=\E[1~:kI=\E[2~:kD=\E[3~:\
-       :*6=\E[4~:kP=\E[5~:kN=\E[6~:\
+       :kH=\EOF::@7=\EOF:kh=\EOH:\
+       :@0=\EOH:kI=\E[2~:kD=\E[3~:\
+       :*6=\EOF:kP=\E[5~:kN=\E[6~:\
        :km:\
        :kb=^H:ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:\
        :li#24:md=\E[1m:me=\E[m^O:mr=\E[7m:ms:nd=\E[C:\
@@ -67,6 +67,8 @@
 vc|xterm-color|generic "ANSI" color xterm:\
        :Co#8:NC@:pa#64:op=\E[m:AB=\E[4%dm:AF=\E[3%dm:tc=xterm-r6:
 vt|xterm-vt220|xterm emulating vt220:\
+       :kH=\E[4~::@7=\E[4~:*6=\E[4~:
+       :kh=\E[1~:\
        :tc=xterm-xfree86:
 #
 # vi may work better with this entry, because vi doesn't use insert mode much.
Index: terminfo
--- xterm-92+/terminfo  Sun Dec 20 22:50:38 1998
+++ xterm-93/terminfo   Sat Mar 13 16:32:33 1999
@@ -66,6 +66,20 @@
 # vt220 does this only when in vt220 mode; when emulating a vt100 the editing
 # keypad is inactive.
 #
+# Alternative keycodes:
+# --------------------
+# Several of the function keys have alternative names, depending on the type of
+# host which your xterm is connected to.  DEC (i.e., the VMS system) uses F15
+# as the HELP key, F16 as the DO key.  Unix applications generally do not do
+# this.  Curses applications in particular, assign a unique keycode to each
+# capability string.  These terminal descriptions do not have conflicting
+# definitions, to ensure that Unix curses applications use a consistent set of
+# keycodes.  To get a VMS-bias, make these substitutions:
+#      1. change khome to kfnd
+#      2. change kend to kslt
+# Some legacy applications using the termcap emulation may expect kll where
+# we have specified kend.
+#
 xterm-xfree86|xterm-new|xterm terminal emulator (XFree86),
        am,
        bce,
@@ -131,7 +145,7 @@
        kcuf1=\EOC,
        kcuu1=\EOA,
        kdch1=\E[3~,
-       kend=\E[4~,
+       kend=\EOF,
        kent=\EOM,
        kf1=\EOP,
        kf10=\E[21~,
@@ -153,14 +167,11 @@
        kf7=\E[18~,
        kf8=\E[19~,
        kf9=\E[20~,
-       kfnd=\E[1~,
-       khome=\E[1~,
+       khome=\EOH,
        kich1=\E[2~,
-       kll=\E[4~,
        kmous=\E[M,
        knp=\E[6~,
        kpp=\E[5~,
-       kslt=\E[4~,
        mc0=\E[i,
        mc4=\E[4i,
        mc5=\E[5i,
@@ -207,15 +218,104 @@
 #      + interprets control-function-key as a second array of keys, so a
 #        12-fkey keyboard can support vt220's 20-fkeys.
 #      + maps numeric keypad "+" to ",".
+#      + uses DEC-style control sequences for the application keypad.
 #        
 xterm-vt220|XFree86 xterm emulating vt220,
        kdch1=\E[3~,
        kend=\E[4~,
-       kfnd=\E[1~,
        khome=\E[1~,
-       kslt=\E[4~,
        use=xterm-xfree86,
 
+xterm-vt52|XFree86 xterm emulating dec vt52,
+       cols#80,
+       it#8,
+       lines#24,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G,
+       clear=\EH\EJ,
+       cr=^M,
+       cub1=\ED,
+       cud1=\EB,
+       cuf1=\EC,
+       cup=\EY%p1%' '%+%c%p2%' '%+%c,
+       cuu1=\EA,
+       ed=\EJ,
+       el=\EK,
+       home=\EH,
+       ht=^I,
+       ind=^J,
+       kbs=^H,
+       kcub1=\ED,
+       kcud1=\EB,
+       kcuf1=\EC,
+       kcuu1=\EA,
+       nel=^M^J,
+       ri=\EI,
+       rmacs=\EG,
+       smacs=\EF,
+
+# kf30-kf45 are keysyms XK_R1 through XK_R15 on the Sun keyboard.
+xterm-sun|XFree86 xterm with sun function keys,
+       kb2=\E[218z,
+       kcpy=\E[197z,
+       kend=\E[220z,
+       kf1=\E[224z,
+       kf10=\E[233z,
+       kf11=\E[192z,
+       kf12=\E[193z,
+       kf13=\E[194z,
+       kf14=\E[195z,
+       kf15=\E[196z,
+       kf17=\E[198z,
+       kf18=\E[199z,
+       kf19=\E[200z,
+       kf2=\E[225z,
+       kf20=\E[201z,
+       kf3=\E[226z,
+       kf31=\E[208z,
+       kf32=\E[209z,
+       kf33=\E[210z,
+       kf34=\E[211z,
+       kf35=\E[212z,
+       kf36=\E[213z,
+       kf38=\E[215z,
+       kf4=\E[227z,
+       kf40=\E[217z,
+       kf42=\E[219z,
+       kf44=\E[221z,
+       kf45=\E[222z,
+       kf5=\E[228z,
+       kf6=\E[229z,
+       kf7=\E[230z,
+       kf8=\E[231z,
+       kf9=\E[232z,
+       khome=\E[214z,
+       kich1=\E[2z,
+       kpp=\E[216z,
+       use=xterm,
+
+xterm-hp|XFree86 xterm with hpterm function keys,
+       kclr=\EJ,
+       kcub1=\ED,
+       kcud1=\EB,
+       kcuf1=\EC,
+       kcuu1=\EA,
+       kdch1=\EP,
+       kend=\EF,
+       kf1=\Ep,
+       kf2=\Eq,
+       kf3=\Er,
+       kf4=\Es,
+       kf5=\Et,
+       kf6=\Eu,
+       kf7=\Ev,
+       kf8=\Ew,
+       khome=\Eh,
+       kich1=\EQ,
+       knp=\ES,
+       kpp=\ET,
+       use=xterm,
+
 # Other variants:
 xterm-24|xterms|vs100|xterm terminal emulator (X Window System),
        lines#24,
@@ -402,13 +502,11 @@
        kf7=\23318~,
        kf8=\23319~,
        kf9=\23320~,
-       kfnd=\2331~,
        khome=\2331~,
        kich1=\2332~,
        kmous=\233M,
        knp=\2336~,
        kpp=\2335~,
-       kslt=\2334~,
        mc0=\233i,
        mc4=\2334i,
        mc5=\2335i,
@@ -519,13 +617,11 @@
        kf7=\E[18~,
        kf8=\E[19~,
        kf9=\E[20~,
-       kfnd=\E[1~,
        khome=\E[1~,
        kich1=\E[2~,
        kmous=\E[M,
        knp=\E[6~,
        kpp=\E[5~,
-       kslt=\E[4~,
        meml=\El,
        memu=\Em,
        rc=\E8,
Index: util.c
--- xterm-92+/util.c    Sun Dec 20 22:50:38 1998
+++ xterm-93/util.c     Fri Mar 12 08:12:33 1999
@@ -918,7 +918,7 @@
     screen->copy_dest_y = dest_y;
 
     XCopyArea(screen->display,
-             TextWindow(screen), TextWindow(screen),
+             VWindow(screen), VWindow(screen),
              NormalGC(screen),
              src_x, src_y, width, height, dest_x, dest_y);
 }
@@ -1144,7 +1144,7 @@
            XSetForeground(screen->display,ReverseGC(screen),bg);
            XSetBackground(screen->display,NormalBoldGC(screen),bg);
            XSetForeground(screen->display,ReverseBoldGC(screen),bg);
-           XSetWindowBackground(screen->display, TextWindow(screen),
+           XSetWindowBackground(screen->display, VWindow(screen),
                                                  tw->core.background_pixel);
        }
 
@@ -1158,7 +1158,7 @@
                screen->mousecolor, screen->mousecolorback);
            recolor_cursor (screen->arrow,
                screen->mousecolor, screen->mousecolorback);
-           XDefineCursor(screen->display, TextWindow(screen),
+           XDefineCursor(screen->display, VWindow(screen),
                                           screen->pointer_cursor);
 
 #if OPT_HIGHLIGHT_COLOR
@@ -1179,7 +1179,7 @@
        }
 #endif
        set_cursor_gcs(screen);
-       XClearWindow(screen->display, TextWindow(screen));
+       XClearWindow(screen->display, VWindow(screen));
        ScrnRefresh (screen, 0, 0, screen->max_row + 1,
         screen->max_col + 1, False);
 #if OPT_TEK4014
@@ -1243,7 +1243,7 @@
 
        termw->misc.re_verse = !termw->misc.re_verse;
 
-       XDefineCursor(screen->display, TextWindow(screen), screen->pointer_cursor);
+       XDefineCursor(screen->display, VWindow(screen), screen->pointer_cursor);
 #if OPT_TEK4014
        if(tek)
                XDefineCursor(screen->display, tek, screen->arrow);
@@ -1252,7 +1252,7 @@
        if(screen->scrollWidget)
                ScrollBarReverseVideo(screen->scrollWidget);
 
-       XSetWindowBackground(screen->display, TextWindow(screen), termw->core.background_pixel);
+       XSetWindowBackground(screen->display, VWindow(screen), termw->core.background_pixel);
 
        /* the shell-window's background will be used in the first repainting
         * on resizing
@@ -1264,7 +1264,7 @@
            TekReverseVideo(screen);
        }
 #endif
-       XClearWindow(screen->display, TextWindow(screen));
+       XClearWindow(screen->display, VWindow(screen));
        ScrnRefresh (screen, 0, 0, screen->max_row + 1,
         screen->max_col + 1, False);
 #if OPT_TEK4014
@@ -1444,7 +1444,7 @@
                GC_PAIRS(NormalGC(screen),      ReverseGC(screen));
                GC_PAIRS(NormalBoldGC(screen),  ReverseBoldGC(screen));
 
-               XFillRectangle (screen->display, TextWindow(screen), fillGC,
+               XFillRectangle (screen->display, VWindow(screen), fillGC,
                        x, y, len * FontWidth(screen), FontHeight(screen));
 
                while (len-- > 0) {
@@ -1463,15 +1463,15 @@
                        screen->cursor_state == OFF ? ' ' : '*',
                        y, x, chrset, len, len, text))
                y += FontAscent(screen);
-               XDrawImageString(screen->display, TextWindow(screen), gc,
+               XDrawImageString(screen->display, VWindow(screen), gc,
                        x, y,  (char *)text, len);
                if ((flags & (BOLD|BLINK)) && screen->enbolden)
-                       XDrawString(screen->display, TextWindow(screen), gc,
+                       XDrawString(screen->display, VWindow(screen), gc,
                                x+1, y,  (char *)text, len);
                if ((flags & UNDERLINE) && screen->underline) {
                        if (FontDescent(screen) > 1)
                                y++;
-                       XDrawLine(screen->display, TextWindow(screen), gc,
+                       XDrawLine(screen->display, VWindow(screen), gc,
                                x, y, x + len * FontWidth(screen) - 1, y);
                }
 #if OPT_BOX_CHARS
@@ -1674,7 +1674,7 @@
        int color = flag ? term->cur_background : -1;
        Pixel   bg = getXtermBackground(term->flags, color);
 
-       XSetWindowBackground(screen->display, TextWindow(screen), bg);
+       XSetWindowBackground(screen->display, VWindow(screen), bg);
 }
 
 /*
@@ -1688,7 +1688,7 @@
        unsigned width)
 {
        useCurBackground(TRUE);
-       XClearArea (screen->display, TextWindow(screen),
+       XClearArea (screen->display, VWindow(screen),
                left, top, width, height, FALSE);
        useCurBackground(FALSE);
 }
Index: version.h
--- xterm-92+/version.h Fri Feb  5 06:41:27 1999
+++ xterm-93/version.h  Sat Mar 13 14:25:15 1999
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/xterm/version.h,v 3.17 1999/01/23 09:56:23 dawes Exp $ */
+/* $XFree86: xc/programs/xterm/version.h,v 3.18 1999/02/07 06:19:02 dawes Exp $ */
 
 /*
  * This is the string that's printed in response to "xterm -version", or
@@ -6,4 +6,4 @@
  * version of xterm has been built.  The number in parentheses is my patch
  * number (T.Dickey).
  */
-#define XTERM_VERSION "XFree86 3.9Nz(92)"
+#define XTERM_VERSION "XFree86 3.9Pd(93)"
Index: xterm.h
--- xterm-92+/xterm.h   Fri Feb  5 06:20:53 1999
+++ xterm-93/xterm.h    Sat Mar 13 15:55:49 1999
@@ -1,4 +1,37 @@
-/* $XFree86: xc/programs/xterm/xterm.h,v 3.33 1999/01/23 09:56:24 dawes Exp $ */
+/* $XFree86: xc/programs/xterm/xterm.h,v 3.34 1999/02/07 06:19:02 dawes Exp $ */
+
+/************************************************************
+
+Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+
+                        All Rights Reserved
+
+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 ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+
+********************************************************/
+
 /*
  * Common/useful definitions for XTERM application.
  *
@@ -42,6 +75,15 @@
 #define time_t long
 #endif
 
+#if defined(CSRG_BASED) || defined(__GNU__)
+#define USE_POSIX_TERMIOS 1
+#endif
+
+#ifdef USE_POSIX_TERMIOS
+#define HAVE_TERMIOS_H 1
+#define HAVE_TCGETATTR 1
+#endif
+
 #define XMU_POINTER XtPointer
 
 #endif /* HAVE_CONFIG_H */
@@ -183,6 +225,7 @@
 /* input.c */
 extern void Input (TKeyboard *keyboard, TScreen *screen, XKeyEvent *event, Bool eightbit);
 extern void StringInput (TScreen *screen, char *string, size_t nbytes);
+extern void VTInitModifiers(void);
 
 /* main.c */
 #ifndef __EMX__
@@ -219,11 +262,12 @@
 extern void Error (int i);
 extern void HandleBellPropertyChange PROTO_XT_EV_HANDLER_ARGS;
 extern void HandleEightBitKeyPressed PROTO_XT_ACTIONS_ARGS;
-extern void HandleEnterWindow PROTO_XT_EV_HANDLER_ARGS;
-extern void HandleFocusChange PROTO_XT_EV_HANDLER_ARGS;
-extern void HandleKeyPressed PROTO_XT_ACTIONS_ARGS;
-extern void HandleLeaveWindow PROTO_XT_EV_HANDLER_ARGS;
-extern void HandleStringEvent PROTO_XT_ACTIONS_ARGS;
+extern void HandleEnterWindow        PROTO_XT_EV_HANDLER_ARGS;
+extern void HandleFocusChange        PROTO_XT_EV_HANDLER_ARGS;
+extern void HandleInterpret          PROTO_XT_ACTIONS_ARGS;
+extern void HandleKeyPressed         PROTO_XT_ACTIONS_ARGS;
+extern void HandleLeaveWindow        PROTO_XT_EV_HANDLER_ARGS;
+extern void HandleStringEvent        PROTO_XT_ACTIONS_ARGS;
 extern void Panic (char *s, int a);
 extern void Redraw (void);
 extern void ReverseOldColors (void);
@@ -245,6 +289,15 @@
 extern void xevents (void);
 extern void xt_error (String message);
 
+#if OPT_MAXIMIZE
+extern int QueryMaximize (TScreen *screen, unsigned *width, unsigned *height);
+extern void HandleDeIconify          PROTO_XT_ACTIONS_ARGS;
+extern void HandleIconify            PROTO_XT_ACTIONS_ARGS;
+extern void HandleMaximize           PROTO_XT_ACTIONS_ARGS;
+extern void HandleRestoreSize        PROTO_XT_ACTIONS_ARGS;
+extern void RequestMaximize (XtermWidget termw, int maximize);
+#endif
+
 #ifdef ALLOWLOGGING
 extern void StartLog (TScreen *screen);
 extern void CloseLog (TScreen *screen);
@@ -333,7 +386,7 @@
 #else /* !OPT_ISO_COLORS */
 
 #define ClearCurBackground(screen, top, left, height, width) \
-       XClearArea (screen->display, TextWindow(screen), \
+       XClearArea (screen->display, VWindow(screen), \
                left, top, width, height, FALSE)
 
 #define extract_fg(color, flags) term->cur_foreground
Index: xterm.log.html
--- xterm-92+/xterm.log.html    Fri Feb  5 06:47:06 1999
+++ xterm-93/xterm.log.html     Sat Mar 13 17:38:29 1999
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!--
  *****************************************************************************
- * Copyright 1997,1998 by Thomas E. Dickey (dickey@clark.net)                *
+ * Copyright 1997,1998,1999 by Thomas E. Dickey (dickey@clark.net)           *
  * All Rights Reserved.                                                      *
  *                                                                           *
  * Permission to use, copy, modify, and distribute this software and its     *
@@ -20,7 +20,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   *
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.            *
  *****************************************************************************
-  $XFree86: xc/programs/xterm/xterm.log.html,v 1.16 1999/01/23 09:56:24 dawes Exp $
+  $XFree86: xc/programs/xterm/xterm.log.html,v 1.17 1999/02/07 06:19:03 dawes Exp $
   -->
 <HTML>
 <HEAD>
@@ -29,7 +29,7 @@
 </HEAD>
 <BODY>
 <HR>
-Copyright 1997,1998 by Thomas E. Dickey
+Copyright 1997,1998,1999 by Thomas E. Dickey
 <HR>
 <H1>Contents</H1>
 This file contains a list of the changes that I have made for XFree86 xterm,
@@ -41,6 +41,7 @@
 xc/programs/Xserver/hw/xfree86).
 
 <UL>
+<LI><A HREF="#xterm_93">Patch #93 - 1999/3/14 - XFree86 3.9Pd</A>
 <LI><A HREF="#xterm_92">Patch #92 - 1999/2/5 - XFree86 3.9Nz</A>
 <LI><A HREF="#xterm_91">Patch #91 - 1999/1/21 - XFree86 3.9Nw</A>
 <LI><A HREF="#xterm_90">Patch #90 - 1998/12/13 - XFree86 3.9Nq</A>
@@ -136,6 +137,67 @@
 <LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
 </UL>
 
+<H1><A NAME="xterm_93">Patch #93 - 1999/3/14 - XFree86 3.9Pd</A></H1>
+Here are several fixes and minor enhancements.  The chief ones
+are the fixes for NumLock mode and reverse video, since we had become
+used to working around the problems.
+<ul>
+       <li>remove kfnd/kll/kslt strings from terminfo, because curses
+         applications do not necessarily return khome/kend pairs
+         (reported by Vikas Agnihotri).
+
+       <li>implement NumLock resource which overrides the keyboard tables for the
+         special case of keypad keys.  This is a problem introduced in xterm
+         by X11R6 changes, i.e., an ambiguity which in effect discarded vt100
+         keypad support.
+
+       <li>modify Sun/PC keyboard mode to extend this (emulation of DEC vt100
+         keypad) to the remainder of the numeric keypad.  Now, the default
+         operating mode of xterm uses the keyboard tables as-is (except if
+         the NumLock mode overrides), but provides good vt100 keypad compatibility
+         if the Sun/PC keyboard menu item is checked.
+
+       <li>separate command-line settings for reverse video from that done
+         under program control.  This is a problem which was introduced by
+         X11R6.  Though <em>correct</em>, most users are confused by allowing
+         the reset command to undo the effect of the command-line <kbd>-rv</kbd>
+         option.
+
+       <li>add description of function keys, keypad and cursor keys to ctlseqs.ms
+
+       <li>add terminfo entries for xterm-vt52, xterm-sun and xterm-hp
+
+       <li>correct typo (missing case value) for DECSET 35, enable/disable
+         shifted keypad action and a few compiler warnings (reported by Zdenek
+         Sekera &lt;zs@sgi.com&gt;).
+
+       <li>correct reporting of color values 8-15 in DECRQSS (reported by
+         Vikas Agnihotri).
+
+       <li>modify parsing of ttyModes resource to recognize "^-" as "undef"
+         (requested by Tomas Vanhala).
+
+       <li>integrate/extend changes to add iconify/maximize actions
+         (from Edward S. Arthur &lt;eda@ultranet.com&gt;).
+
+       <li>add control sequences for maximizing/restoring window, and
+         for reporting maximum screen size.
+
+       <li>add 'interpret' action, to support local function-key interpretation.
+         Used properly, this makes most of the specialized actions of xterm
+         redundant.
+
+       <li>add control sequence private modes 1051, 1052 and 1052, for
+         setting the Sun and HP function key modes, and for setting the
+         Sun/PC keyboard mode.
+
+       <li>add configure option --disable-maximize
+
+       <li>add configure option --disable-num-lcok
+
+       <li>extend descriptions of configure script options in INSTALL.
+</ul>
+
 <H1><A NAME="xterm_92">Patch #92 - 1999/2/5 - XFree86 3.9Nz</A></H1>
 <ul>
        <li>increase buffer size for tgetent (i.e., termcap) to 1500.  This
@@ -145,16 +207,22 @@
          latter is assumed to be no longer than 1023 characters.  The
          <em>screen</em> program's termcap entry is about 1200 characters
          long.
+
        <li>change update_menu_item() to a function, to simplify debugging.
          This also reduces the executable by 4Kb.
+
        <li>add control sequences for DECSET 30, 1010, 1011 like rxvt (enable
          or disable some features that were only settable via resources or
          command line arguments).
+
        <li>add control sequence for DECSET 35, which enables/disables the
          shifted keypad functions.
+
        <li>add support for switching font sizes, by stepping through the
-         font menu using shifted keypad plus and minue.
+         font menu using shifted keypad plus and minus.
+
        <li>correct missing initialization of tekInhibit and tekSmall resources.
+
        <li>correct ifdefs in charproc.c for XtNgeometry and XtCGeometry
          (reported by Bram Moolenaar).
 </ul>
@@ -164,11 +232,15 @@
        <li>Implement logic to translate input characters which are mapped
          when in vt220 National Replacement Character mode (requested by
          Tomas Vanhala).
+
        <li>Resync configure scripts with my patches to autoconf 2.13
+
        <li>Change order of -lXmu and -lXext to accommodate cygwin32
          (reported by Vikas Agnihotri).
+
        <li>Add "-ti" option to set terminal emulation level from command
          line rather than via resource.
+
        <li>Simplify some of the preprocessor logic using #elif.
 </ul>
 
Index: xterm.man
--- xterm-92+/xterm.man Sun Jan 24 14:44:33 1999
+++ xterm-93/xterm.man  Sat Mar 13 13:57:49 1999
@@ -1,4 +1,36 @@
 .\" $XConsortium: xterm.man /main/85 1996/12/09 17:10:53 kaleb $
+.\" $XFree86: xc/programs/xterm/xterm.man,v 3.36 1999/01/23 09:56:25 dawes Exp $
+.\"
+.\"
+.\" Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+.\"
+.\"                         All Rights Reserved
+.\"
+.\" 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 ABOVE LISTED COPYRIGHT HOLDER(S) 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  X Consortium
 .\"
 .\" Permission is hereby granted, free of charge, to any person obtaining
@@ -25,8 +57,6 @@
 .\" other dealings in this Software without prior written authorization
 .\" from the X Consortium.
 .\"
-.\" $XFree86: xc/programs/xterm/xterm.man,v 3.36 1999/01/23 09:56:25 dawes Exp $
-.\"
 .\" updated by Thomas Dickey <dickey@clark.net> for XFree86, July 1996.
 .TH XTERM 1 "Release 6.3" "X Version 11"
 .SH NAME
@@ -43,7 +73,7 @@
 derived from 4.3bsd), \fIxterm\fP will use the facilities to notify programs
 running in the window whenever it is resized.
 .PP
-The VT102 and Tektronix 4014 terminals each have their own window so that you
+The VTxxx and Tektronix 4014 terminals each have their own window so that you
 can edit text in one and look at graphics in the other at the same time.
 To maintain the correct aspect ratio (height/width), Tektronix graphics will
 be restricted to the largest box with a 4014's aspect ratio that will fit in
@@ -53,7 +83,7 @@
 considered the ``active'' window for receiving keyboard input and terminal
 output.  This is the window that contains the text cursor.
 The active window can be chosen through escape sequences,
-the ``VT Options'' menu in the VT102 window, and the ``Tek Options''
+the ``VT Options'' menu in the VTxxx window, and the ``Tek Options''
 menu in the 4014 window.
 .SH EMULATIONS
 The VT102 emulation is fairly complete, but does not support
@@ -278,8 +308,8 @@
 This option specifies the program (and its command line arguments) to be
 run in the \fIxterm\fP window.  It also sets the window title and icon
 name to be the basename of the program being executed if neither \fI\-T\fP
-nor \fI\-n\fP are given on the command line.  \fBThis must be the last
-option on the command line.\fP
+nor \fI\-n\fP are given on the command line.
+\fBThis must be the last option on the command line.\fP
 .TP 8
 .BI \-fb " font"
 This option specifies a font to be used when displaying bold text.
@@ -520,7 +550,7 @@
 Same as zIconBeep resource.
 If percent is non-zero, xterms that produce output while iconified
 will cause an XBell sound at the given volume
-and have "***" prepened to their icon titles.
+and have "***" prepended to their icon titles.
 Most window managers will detect this change immediately, showing you
 which window has the output.
 (A similar feature was in x10 xterm.)
@@ -626,7 +656,6 @@
 .SH RESOURCES
 The program understands all of the core X Toolkit resource names and
 classes as well as:
-.\".in +1in
 .TP 8
 .B "hpFunctionKeys (\fPclass\fB HpFunctionKeys)"
 Specifies whether or not HP Function Key escape codes should be generated for
@@ -656,8 +685,9 @@
 than DEC VT220.
 This causes the keypad `+' to be mapped to `,'.
 and
-CTRL-F1 to F13, CTRL-F2 to F14, etc.
-.\".in -1in
+CTRL-F1 to F13, CTRL-F2 to F14, etc.,
+so \fIxterm\fP emulates a DEC VT220 more accurately.
+Otherwise (the default), \fIxterm\fP uses PC-style bindings for the function keys and keypad.
 .TP 8
 .B "termName (\fPclass\fB TermName)"
 Specifies the terminal type name to be set in the TERM environment variable.
@@ -671,7 +701,9 @@
 to which they may be bound.  Allowable keywords include: intr, quit,
 erase, kill, eof, eol, swtch, start, stop, brk, susp, dsusp, rprnt, flush,
 weras, and lnext.  Control characters may be specified as ^char (e.g. ^c or ^u)
-and ^? may be used to indicate Delete.  This is very useful for overriding
+and ^? may be used to indicate Delete.
+Use ^- to denote undef.
+This is very useful for overriding
 the default terminal settings without having to do an \fIstty\fP every time
 an \fIxterm\fP is started.
 .TP 8
@@ -692,16 +724,14 @@
 Same as \-ziconbeep command line argument.
 If the value of this resource is non-zero, xterms that produce output
 while iconified will cause an XBell sound at the given volume
-and have "***" prepened to their icon titles.
+and have "***" prepended to their icon titles.
 Most window managers will detect this change immediately, showing you
 which window has the output.
 (A similar feature was in x10 xterm.)
-.\".in 11in
 .sp
 .PP
 The following resources are specified as part of the \fIvt100\fP widget (class
 \fIVT100\fP):
-.\".in +1in
 .TP 8
 .B "activeIcon (\fPclass\fB ActiveIcon)"
 Specifies whether or not active icon windows are to be used when the
@@ -751,6 +781,7 @@
 a backspace
 or delete character.
 The default (backspace) is ``true.''
+Pressing the control key toggles this behavior.
 .TP 8
 .B "background (\fPclass\fB Background)"
 Specifies the color to use for the background of the window.  The default is
@@ -1015,6 +1046,11 @@
 Specifies the number of characters from the right margin at which the margin
 bell should be rung, when enabled.
 .TP 8
+.B "numLock (\fPclass\fB NumLock)"
+If true, xterm checks if NumLock is used as a modifier (see \fIxmodmap\fP(1)).
+If so, this modifier is used to simplify the logic when implementing NumLock
+mode for the \fBsunKeyboard\fP resource.
+.TP 8
 .B "oldXtermFKeys (\fPclass\fB OldXtermFKeys)"
 If true, xterm will use old-style control sequences for function keys F1 to F4,
 for compatibility with X Consortium xterm.  Otherwise, it uses the VT100-style
@@ -1734,6 +1770,9 @@
 The parameter values are the menu names:
 \fImainMenu\fP, \fIvtMenu\fP, \fIfontMenu\fP, \fItekMenu\fP, respectively.
 .TP 8
+.B "deiconify()"
+Changes the window state back to normal, if it was iconified.
+.TP 8
 .B "dired-button()"
 Handles a button event (other than press and release)
 by echoing the event's position
@@ -1743,6 +1782,9 @@
 ^X ESC G <line+' '> <col+' '>
 .in -8
 .TP 8
+.B "iconify()"
+Iconifies the window.
+.TP 8
 .B "hard-reset()"
 This action resets the scrolling region, tabs, window size, and cursor keys
 and clears the screen.  It is also invoked from the \fBhardreset\fP
@@ -1771,11 +1813,20 @@
 .B "insert-seven-bit()"
 This action is a synonym for \fBinsert()\fP
 .TP 8
+.B "interpret(\fIcontrol-sequence\fP)"
+Interpret the given control sequence locally, i.e., without passing it to
+the host.  This works by inserting the control sequence at the front
+of the input buffer.  Use "\\" to escape octal digits in the string.
+Xt does not allow you to put a null character (i.e., "\\000") in the string.
+.TP 8
 .B "keymap(\fIname\fP)"
 This action dynamically defines a new translation table whose resource
 name is \fIname\fP with the suffix \fIKeymap\fP (case is significant).
 The name \fINone\fP restores the original translation table.
 .TP 8
+.B "maximize()"
+Resizes the window to fill the screen.
+.TP 8
 .B "popup-menu(\fImenuname\fP)"
 This action displays the specified popup menu.  Valid names (case is
 significant) include:  \fImainMenu\fP, \fIvtMenu\fP, \fIfontMenu\fP,
@@ -1793,6 +1844,9 @@
 This action redraws the window and is also invoked by the
 \fIredraw\fP entry in \fImainMenu\fP.
 .TP 8
+.B "restore()"
+Restores the window to the size before it was last maximized.
+.TP 8
 .B "scroll-back(\fIcount\fP [,\fIunits\fP])"
 This action scrolls the text window backward so that text that had previously
 scrolled off the top of the screen is now visible.  The \fIcount\fP argument
@@ -2114,6 +2168,11 @@
 .DE
 .sp
 .in -4
+.SH "CONTROL SEQUENCES AND KEYBOARD"
+The \fIXterm Control Sequences\fP document lists the control sequences which
+an application can send \fIxterm\fP to make it perform various operations.
+Most of these operations are standardized, from either the DEC or Tektronix
+terminals, or from more widely used standards such as ISO 6429.
 .SH ENVIRONMENT
 .I Xterm
 sets the environment variables ``TERM'' and ``TERMCAP'' properly for the
Index: xtermcfg.hin
--- xterm-92+/xtermcfg.hin      Sun Dec 20 22:50:38 1998
+++ xterm-93/xtermcfg.hin       Sat Mar 13 11:51:39 1999
@@ -39,17 +39,19 @@
 #undef DFT_COLORMODE   /* AC_ARG_WITH(default-color-mode) */
 #undef DFT_DECID       /* AC_ARG_WITH(default-terminal-id) */
 #undef DFT_TERMTYPE    /* AC_ARG_WITH(default-term-type) */
+#undef HAVE_POSIX_VDISABLE /* CF_POSIX_VDISABLE */
 #undef HAVE_STDLIB_H   /* AC_CHECK_HEADERS(stdlib.h) */
 #undef HAVE_STRERROR   /* AC_CHECK_FUNCS(strerror) */
 #undef HAVE_SYS_WAIT_H /* AC_HEADER_SYS_WAIT */
+#undef HAVE_TCGETATTR  /* AC_CHECK_FUNCS(tcgetattr) */
 #undef HAVE_TERMCAP_H  /* AC_CHECK_HEADERS(termcap.h) */
+#undef HAVE_TERMIOS_H  /* AC_CHECK_HEADERS(termios.h) */
 #undef HAVE_UNISTD_H   /* AC_CHECK_HEADERS(unistd.h) */
 #undef HAVE_WAITPID    /* AC_CHECK_FUNCS(waitpid) */
 #undef HAVE_X11_DECKEYSYM_H /* AC_CHECK_HEADERS(X11/DECkeysym.h) */
 #undef HAVE_X11_XPOLL_H        /* AC_CHECK_HEADERS(X11/Xpoll.h) */
 #undef HAVE_XKBSTDBELL /* AC_CHECK_FUNCS(XkbStdBell) */
 #undef NO_ACTIVE_ICON  /* CF_ARG_DISABLE(active-icon) */
-#undef OWN_TERMINFO_DIR        /* AC_ARG_WITH(own-terminfo) */
 #undef OPT_AIX_COLORS  /* CF_ARG_DISABLE(16-color) */
 #undef OPT_BOX_CHARS   /* CF_ARG_DISABLE(boxchars) */
 #undef OPT_DEC_CHRSET  /* CF_ARG_DISABLE(doublechars) */
@@ -58,11 +60,14 @@
 #undef OPT_I18N_SUPPORT        /* CF_ARG_DISABLE(i18n) */
 #undef OPT_INPUT_METHOD        /* CF_ARG_DISABLE(input-method) */
 #undef OPT_ISO_COLORS  /* CF_ARG_DISABLE(ansi-color) */
+#undef OPT_MAXIMIZE    /* CF_ARG_DISABLE(maximize) */
+#undef OPT_NUM_LOCK    /* CF_ARG_DISABLE(num-lock) */
 #undef OPT_PC_COLORS   /* CF_ARG_DISABLE(pc-color) */
 #undef OPT_TEK4014     /* CF_ARG_DISABLE(tek4014) */
 #undef OPT_TRACE       /* CF_ARG_ENABLE(trace) */
 #undef OPT_VT52_MODE   /* CF_ARG_DISABLE(vt52) */
 #undef OPT_XMC_GLITCH  /* CF_ARG_ENABLE(xmc-glitch) */
+#undef OWN_TERMINFO_DIR        /* AC_ARG_WITH(own-terminfo) */
 #undef SCROLLBAR_RIGHT /* CF_ARG_ENABLE(rightbar) */
 #undef USE_MY_MEMMOVE  /* CF_FUNC_MEMMOVE */
 #undef USE_OK_BCOPY    /* CF_FUNC_MEMMOVE */