xterm-113.patch.txt

# ------------------------------------------------------------------------------
#  INSTALL        |    5 
#  Makefile.in    |    2 
#  Tekproc.c      |  104 +++++-----
#  aclocal.m4     |   29 ++
#  button.c       |    6 
#  charproc.c     |  332 ++++++++++-----------------------
#  charsets.c     |    2 
#  configure      |  541 +++++++++++++++++++++++++++++++------------------------
#  configure.in   |   10 +
#  data.c         |    3 
#  data.h         |    4 
#  input.c        |   73 ++++---
#  main.c         |  295 +++++++++++++++++------------
#  menu.c         |  414 +++++++++++++++++++++++++++++++++---------
#  menu.h         |    1 
#  misc.c         |   29 +-
#  os2main.c      |   89 +++------
#  ptyx.h         |  115 +++++++----
#  resize.c       |   23 +-
#  screen.c       |    2 
#  scrollbar.c    |   16 +
#  version.h      |    4 
#  xterm.h        |  187 +++++++++++++++++++
#  xterm.log.html |   46 ++++
#  xtermcfg.hin   |    2 
#  25 files changed, 1456 insertions, 878 deletions
# ------------------------------------------------------------------------------
Index: INSTALL
--- xterm-112+/INSTALL  Sun Jul 18 16:29:08 1999
+++ xterm-113/INSTALL   Sun Aug 15 19:42:03 1999
@@ -201,6 +201,11 @@
        Logging was disabled in X11R5 xterm because of security problems.
        They were addressed in X11R6, but the feature was not reinstated.
 
+  --enable-toolbar        enable pulldown menus on toolbar
+
+       Compile-in code that builds a toolbar with pulldown menus.  The
+       normal popup menus are still available.
+
   --enable-trace          test: set to enable debugging traces
 
        Compile-in code to trace xterm's internal states.
Index: Makefile.in
--- xterm-112+/Makefile.in      Sun Jul 18 16:29:08 1999
+++ xterm-113/Makefile.in       Sun Aug 15 21:18:44 1999
@@ -97,7 +97,7 @@
        @ECHO_LD@$(LINK) $(LDFLAGS) -o $@ $(OBJS2) $(X_LIBS) $(X_EXTRA_LIBS) $(LIBS)
 
 256colres.h : $(srcdir)/256colres.pl
-       $(srcdir)/256colres.pl > 256colres.h
+       perl $(srcdir)/256colres.pl > 256colres.h
 
 charproc.o : @CHARPROC_DEPS@
 
Index: Tekproc.c
--- xterm-112+/Tekproc.c        Mon Jul 12 13:43:45 1999
+++ xterm-113/Tekproc.c Sun Aug 15 15:07:46 1999
@@ -66,6 +66,10 @@
 #include <X11/Shell.h>
 #include <X11/Xmu/CharSet.h>
 
+#if OPT_TOOLBAR
+#include <X11/Xaw/Form.h>
+#endif
+
 #include <stdio.h>
 #include <ctype.h>
 #include <signal.h>
@@ -89,8 +93,6 @@
 #define write(f,b,s) nbio_write(f,b,s)
 #endif
 
-extern jmp_buf Tekend;
-
 #define DefaultGCID XGContextFromGC(DefaultGC(screen->display, DefaultScreen(screen->display)))
 
 /* Tek defines */
@@ -126,7 +128,6 @@
 #define        input()         Tinput()
 #define        unput(c)        *Tpushback++ = c
 
-extern Widget toplevel;
 extern Bool waiting_for_initial_map;
 extern Arg ourTopLevelShellArgs[];
 extern int number_ourTopLevelShellArgs;
@@ -248,6 +249,14 @@
     {"ginTerminator", "GinTerminator", XtRString, sizeof(char *),
        XtOffsetOf(TekWidgetRec, tek.gin_terminator_str),
        XtRString, GIN_TERM_NONE_STR},
+#if OPT_TOOLBAR
+    {XtNmenuBar, XtCMenuBar, XtRWidget, sizeof(Widget),
+       XtOffsetOf(TekWidgetRec, tek.menu_bar),
+       XtRWidget, (XtPointer) 0},
+    {XtNmenuHeight, XtCMenuHeight, XtRInt, sizeof(int),
+       XtOffsetOf(TekWidgetRec, tek.menu_height),
+       XtRString, "25"},
+#endif
 };
 
 static int Tinput (void);
@@ -306,31 +315,34 @@
 
 static Boolean Tfailed = FALSE;
 
-static Widget tekshellwidget;
-
-static TekWidget CreateTekWidget (void)
-{
-    /* this causes the Initialize method to be called */
-    tekshellwidget = XtCreatePopupShell ("tektronix", topLevelShellWidgetClass,
-                                        toplevel, ourTopLevelShellArgs,
-                                        number_ourTopLevelShellArgs);
-
-    /* this causes the Realize method to be called */
-    tekWidget = (TekWidget) XtCreateManagedWidget ("tek4014", tekWidgetClass,
-                                                  tekshellwidget, NULL, 0);
-
-    return (tekWidget);
-}
-
-
 int TekInit (void)
 {
-    if (Tfailed) return (0);
-    if (tekWidget) return (1);
-    if (CreateTekWidget()) {
-       return (1);
+    Widget form_top, menu_top;
+
+    if (!Tfailed
+     && tekWidget == 0) {
+       /* this causes the Initialize method to be called */
+       tekshellwidget = XtCreatePopupShell (
+                       "tektronix", topLevelShellWidgetClass,
+                       toplevel, ourTopLevelShellArgs,
+                       number_ourTopLevelShellArgs);
+
+       SetupMenus(tekshellwidget, &form_top, &menu_top);
+
+       /* this causes the Realize method to be called */
+       tekWidget = (TekWidget) XtVaCreateManagedWidget (
+                       "tek4014", tekWidgetClass, form_top,
+#if OPT_TOOLBAR
+                       XtNmenuBar,     menu_top,
+                       XtNresizable,   True,
+                       XtNfromVert,    menu_top,
+                       XtNleft,        XawChainLeft,
+                       XtNright,       XawChainRight,
+                       XtNbottom,      XawChainBottom,
+#endif
+                       0);
     }
-    return (0);
+    return (!Tfailed);
 }
 
 /*
@@ -657,8 +669,8 @@
                        if (screen->wide_chars
                         && (ch > 255)) {
                                XChar2b sbuf;
-                               sbuf.byte2 = (ch & 0xff);
-                               sbuf.byte1 = ((ch >>8) & 0xff);
+                               sbuf.byte2 = CharOf(ch);
+                               sbuf.byte1 = CharOf(ch >>8);
                                XDrawImageString16(
                                    screen->display,
                                    TWindow(screen),
@@ -1225,7 +1237,7 @@
 
 
 /*
- * The following is called the create the tekWidget
+ * The following is called to create the tekWidget
  */
 
 static void TekInitialize(
@@ -1234,14 +1246,16 @@
     ArgList args GCC_UNUSED,
     Cardinal *num_args GCC_UNUSED)
 {
+    Widget tekparent = SHELL_OF(wnew);
+
     /* look for focus related events on the shell, because we need
      * to care about the shell's border being part of our focus.
      */
-    XtAddEventHandler(XtParent(wnew), EnterWindowMask, FALSE,
+    XtAddEventHandler(tekparent, EnterWindowMask, FALSE,
                      HandleEnterWindow, (caddr_t)NULL);
-    XtAddEventHandler(XtParent(wnew), LeaveWindowMask, FALSE,
+    XtAddEventHandler(tekparent, LeaveWindowMask, FALSE,
                      HandleLeaveWindow, (caddr_t)NULL);
-    XtAddEventHandler(XtParent(wnew), FocusChangeMask, FALSE,
+    XtAddEventHandler(tekparent, FocusChangeMask, FALSE,
                      HandleFocusChange, (caddr_t)NULL);
     XtAddEventHandler((Widget)wnew, PropertyChangeMask, FALSE,
                      HandleBellPropertyChange, (Opaque)NULL);
@@ -1308,10 +1322,10 @@
     pr = XParseGeometry(term->misc.T_geometry, &winX, &winY, (unsigned int *)&width, (unsigned int *)&height);
     if ((pr & XValue) && (pr & XNegative))
       winX += DisplayWidth(screen->display, DefaultScreen(screen->display))
-                       - width - (term->core.parent->core.border_width * 2);
+                       - width - (SHELL_OF(term)->core.border_width * 2);
     if ((pr & YValue) && (pr & YNegative))
       winY += DisplayHeight(screen->display, DefaultScreen(screen->display))
-       - height - (term->core.parent->core.border_width * 2);
+       - height - (SHELL_OF(term)->core.border_width * 2);
 
     /* set up size hints */
     sizehints.min_width = TEKMINWIDTH + border;
@@ -1355,19 +1369,19 @@
      * realized, so that it can do the right thing.
      */
     if (sizehints.flags & USPosition)
-      XMoveWindow (XtDisplay(tw), tw->core.parent->core.window,
+      XMoveWindow (XtDisplay(tw), XtWindow(SHELL_OF(tw)),
                   sizehints.x, sizehints.y);
 
-    XSetWMNormalHints (XtDisplay(tw), tw->core.parent->core.window,
+    XSetWMNormalHints (XtDisplay(tw), XtWindow(SHELL_OF(tw)),
                       &sizehints);
     XFlush (XtDisplay(tw));    /* get it out to window manager */
 
     values->win_gravity = NorthWestGravity;
     values->background_pixel = screen->Tbackground;
 
-    tw->core.window = TWindow(screen) =
+    XtWindow(tw) = TWindow(screen) =
        XCreateWindow (screen->display,
-                      tw->core.parent->core.window,
+                      XtWindow(SHELL_OF(tw)),
                       tw->core.x, tw->core.y,
                       tw->core.width, tw->core.height, tw->core.border_width,
                       (int) tw->core.depth,
@@ -1459,7 +1473,7 @@
 
        args[0].value = (XtArgVal)&icon_name;
        args[1].value = (XtArgVal)&title;
-       XtGetValues (tw->core.parent, args, 2);
+       XtGetValues (SHELL_OF(tw), args, 2);
        tek_icon_name = XtMalloc(strlen(icon_name)+7);
        strcpy(tek_icon_name, icon_name);
        strcat(tek_icon_name, "(Tek)");
@@ -1468,7 +1482,7 @@
        strcat(tek_title, "(Tek)");
        args[0].value = (XtArgVal)tek_icon_name;
        args[1].value = (XtArgVal)tek_title;
-       XtSetValues (tw->core.parent, args, 2);
+       XtSetValues (SHELL_OF(tw), args, 2);
        XtFree( tek_icon_name );
        XtFree( tek_title );
     }
@@ -1537,11 +1551,11 @@
        if (tekWidget) {
            if (tekWidget->core.border_pixel == screen->Tbackground) {
                tekWidget->core.border_pixel = screen->Tforeground;
-               tekWidget->core.parent->core.border_pixel =
+               XtParent(tekWidget)->core.border_pixel =
                  screen->Tforeground;
-               if (tekWidget->core.parent->core.window)
+               if (XtWindow(XtParent(tekWidget)))
                  XSetWindowBorder (screen->display,
-                                   tekWidget->core.parent->core.window,
+                                   XtWindow(XtParent(tekWidget)),
                                    tekWidget->core.border_pixel);
            }
        }
@@ -1579,11 +1593,11 @@
        if (tekWidget) {
            if (tekWidget->core.border_pixel == screen->Tbackground) {
                tekWidget->core.border_pixel = screen->Tforeground;
-               tekWidget->core.parent->core.border_pixel =
+               XtParent(tekWidget)->core.border_pixel =
                  screen->Tforeground;
-               if (tekWidget->core.parent->core.window)
+               if (XtWindow(XtParent(tekWidget)))
                  XSetWindowBorder (screen->display,
-                                   tekWidget->core.parent->core.window,
+                                   XtWindow(XtParent(tekWidget)),
                                    tekWidget->core.border_pixel);
            }
        }
Index: aclocal.m4
--- xterm-112+/aclocal.m4       Sun Jun 27 18:23:43 1999
+++ xterm-113/aclocal.m4        Sun Aug 15 20:23:39 1999
@@ -566,6 +566,35 @@
 AC_SUBST(IMAKE_LOADFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl Check if the X libraries support input-method
+AC_DEFUN([CF_INPUT_METHOD],
+[
+AC_CACHE_CHECK([if X libraries support input-method],cf_cv_input_method,[
+AC_TRY_LINK([
+#include <X11/IntrinsicP.h>
+#include <X11/Xatom.h>
+#include <X11/Xutil.h>
+#include <X11/Xmu/Atoms.h>
+#include <X11/Xmu/Converters.h>
+#include <X11/Xaw/XawImP.h>
+],[
+{
+       XIM xim;
+       XIMStyles *xim_styles;
+       XIMStyle input_style;
+       Widget w;
+
+       XSetLocaleModifiers("@im=none");
+       xim = XOpenIM(XtDisplay(w), NULL, NULL, NULL);
+       XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL);
+       XCloseIM(xim);
+       input_style = (XIMPreeditNothing | XIMStatusNothing);
+}
+],
+[cf_cv_input_method=yes],
+[cf_cv_input_method=no])])
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl Special test to workaround gcc 2.6.2, which cannot parse C-preprocessor
 dnl conditionals.
 dnl
Index: button.c
--- xterm-112+/button.c Sun Jul 18 16:29:08 1999
+++ xterm-113/button.c  Wed Jul 21 06:14:02 1999
@@ -85,12 +85,6 @@
        meta key  -> 2
        control key -> 4 */
 
-#define TEXTMODES 4
-#define NBUTS 3
-#define DIRS 2
-#define UP 1
-#define DOWN 0
-#define SHIFTS 8               /* three keys, so eight combinations */
 #define        Coordinate(r,c)         ((r) * (term->screen.max_col+1) + (c))
 
 
Index: charproc.c
--- xterm-112+/charproc.c       Sun Jul 18 16:29:08 1999
+++ xterm-113/charproc.c        Sun Aug 15 19:55:31 1999
@@ -118,11 +118,14 @@
 #include <fontutils.h>
 #include <xcharmouse.h>
 
-#ifndef NO_ACTIVE_ICON
+#if OPT_ZICONBEEP || OPT_TOOLBAR
+#define HANDLE_STRUCT_NOTIFY 1
+#endif
+
+#if !defined(NO_ACTIVE_ICON) || defined(HANDLE_STRUCT_NOTIFY)
 #include <X11/Shell.h>
 #endif /* NO_ACTIVE_ICON */
 
-extern Widget toplevel;
 extern char *ProgramName;
 
 static int in_put (void);
@@ -153,190 +156,8 @@
 #endif
 
 #define        DEFAULT         -1
-#define        TEXT_BUF_SIZE   256
-#define TRACKTIMESEC   4L
-#define TRACKTIMEUSEC  0L
 #define BELLSUPPRESSMSEC 200
 
-#define XtNallowSendEvents     "allowSendEvents"
-#define XtNalwaysHighlight     "alwaysHighlight"
-#define XtNanswerbackString    "answerbackString"
-#define XtNappcursorDefault    "appcursorDefault"
-#define XtNappkeypadDefault    "appkeypadDefault"
-#define XtNautoWrap            "autoWrap"
-#define XtNawaitInput          "awaitInput"
-#define XtNbackarrowKey                "backarrowKey"
-#define XtNbellSuppressTime    "bellSuppressTime"
-#define XtNboldColors          "boldColors"
-#define XtNboldFont            "boldFont"
-#define XtNboldMode            "boldMode"
-#define XtNc132                        "c132"
-#define XtNcharClass           "charClass"
-#define XtNcolor0              "color0"
-#define XtNcolor1              "color1"
-#define XtNcolor10             "color10"
-#define XtNcolor11             "color11"
-#define XtNcolor12             "color12"
-#define XtNcolor13             "color13"
-#define XtNcolor14             "color14"
-#define XtNcolor15             "color15"
-#define XtNcolor2              "color2"
-#define XtNcolor3              "color3"
-#define XtNcolor4              "color4"
-#define XtNcolor5              "color5"
-#define XtNcolor6              "color6"
-#define XtNcolor7              "color7"
-#define XtNcolor8              "color8"
-#define XtNcolor9              "color9"
-#define XtNcolorAttrMode       "colorAttrMode"
-#define XtNcolorBD             "colorBD"
-#define XtNcolorBDMode         "colorBDMode"
-#define XtNcolorBL             "colorBL"
-#define XtNcolorBLMode         "colorBLMode"
-#define XtNcolorMode           "colorMode"
-#define XtNcolorUL             "colorUL"
-#define XtNcolorULMode         "colorULMode"
-#define XtNcurses              "curses"
-#define XtNcursorBlink         "cursorBlink"
-#define XtNcursorColor         "cursorColor"
-#define XtNcursorOffTime       "cursorOffTime"
-#define XtNcursorOnTime                "cursorOnTime"
-#define XtNcutNewline          "cutNewline"
-#define XtNcutToBeginningOfLine        "cutToBeginningOfLine"
-#define XtNdecTerminalID       "decTerminalID"
-#define XtNdynamicColors       "dynamicColors"
-#define XtNeightBitControl     "eightBitControl"
-#define XtNeightBitInput       "eightBitInput"
-#define XtNeightBitOutput      "eightBitOutput"
-#define XtNfontDoublesize      "fontDoublesize"
-#define XtNhighlightColor      "highlightColor"
-#define XtNhighlightSelection  "highlightSelection"
-#define XtNhpLowerleftBugCompat        "hpLowerleftBugCompat"
-#define XtNinternalBorder      "internalBorder"
-#define XtNjumpScroll          "jumpScroll"
-#define XtNkeyboardDialect     "keyboardDialect"
-#define XtNlogFile             "logFile"
-#define XtNlogInhibit          "logInhibit"
-#define XtNlogging             "logging"
-#define XtNloginShell          "loginShell"
-#define XtNmarginBell          "marginBell"
-#define XtNmultiClickTime      "multiClickTime"
-#define XtNmultiScroll         "multiScroll"
-#define XtNnMarginBell         "nMarginBell"
-#define XtNnumLock             "numLock"
-#define XtNoldXtermFKeys       "oldXtermFKeys"
-#define XtNpointerColor                "pointerColor"
-#define XtNpointerColorBackground      "pointerColorBackground"
-#define XtNpointerShape                "pointerShape"
-#define XtNprintAttributes     "printAttributes"
-#define XtNprinterAutoClose    "printerAutoClose"
-#define XtNprinterCommand      "printerCommand"
-#define XtNprinterControlMode  "printerControlMode"
-#define XtNprinterExtent       "printerExtent"
-#define XtNprinterFormFeed     "printerFormFeed"
-#define XtNresizeGravity       "resizeGravity"
-#define XtNreverseWrap         "reverseWrap"
-#define XtNrightScrollBar      "rightScrollBar"
-#define XtNsaveLines           "saveLines"
-#define XtNscrollBar           "scrollBar"
-#define XtNscrollKey           "scrollKey"
-#define XtNscrollLines         "scrollLines"
-#define XtNscrollPos           "scrollPos"
-#define XtNscrollTtyOutput     "scrollTtyOutput"
-#define XtNshiftKeys           "shiftKeys"
-#define XtNsignalInhibit       "signalInhibit"
-#define XtNtekGeometry         "tekGeometry"
-#define XtNtekInhibit          "tekInhibit"
-#define XtNtekSmall            "tekSmall"
-#define XtNtekStartup          "tekStartup"
-#define XtNtiteInhibit         "titeInhibit"
-#define XtNtrimSelection       "trimSelection"
-#define XtNunderLine           "underLine"
-#define XtNutf8                        "utf8"
-#define XtNutf8controls                "utf8controls"
-#define XtNvisualBell          "visualBell"
-#define XtNwideChars           "wideChars"
-#define XtNxmcAttributes       "xmcAttributes"
-#define XtNxmcGlitch           "xmcGlitch"
-#define XtNxmcInline           "xmcInline"
-#define XtNxmcMoveSGR          "xmcMoveSGR"
-
-#define XtCAllowSendEvents     "AllowSendEvents"
-#define XtCAlwaysHighlight     "AlwaysHighlight"
-#define XtCAnswerbackString    "AnswerbackString"
-#define XtCAppcursorDefault    "AppcursorDefault"
-#define XtCAppkeypadDefault    "AppkeypadDefault"
-#define XtCAutoWrap            "AutoWrap"
-#define XtCAwaitInput          "AwaitInput"
-#define XtCBackarrowKey                "BackarrowKey"
-#define XtCBellSuppressTime    "BellSuppressTime"
-#define XtCBoldFont            "BoldFont"
-#define XtCBoldMode            "BoldMode"
-#define XtCC132                        "C132"
-#define XtCCharClass           "CharClass"
-#define XtCColorMode           "ColorMode"
-#define XtCColumn              "Column"
-#define XtCCurses              "Curses"
-#define XtCCursorBlink         "CursorBlink"
-#define XtCCursorOnTime                "CursorOnTime"
-#define XtCCursorOffTime       "CursorOffTime"
-#define XtCCutNewline          "CutNewline"
-#define XtCCutToBeginningOfLine        "CutToBeginningOfLine"
-#define XtCDecTerminalID       "DecTerminalID"
-#define XtCDynamicColors       "DynamicColors"
-#define XtCEightBitControl     "EightBitControl"
-#define XtCEightBitInput       "EightBitInput"
-#define XtCEightBitOutput      "EightBitOutput"
-#define XtCFontDoublesize      "FontDoublesize"
-#define XtCHighlightSelection  "HighlightSelection"
-#define XtCHpLowerleftBugCompat        "HpLowerleftBugCompat"
-#define XtCJumpScroll          "JumpScroll"
-#define XtCKeyboardDialect     "KeyboardDialect"
-#define XtCLogInhibit          "LogInhibit"
-#define XtCLogfile             "Logfile"
-#define XtCLogging             "Logging"
-#define XtCLoginShell          "LoginShell"
-#define XtCMarginBell          "MarginBell"
-#define XtCMultiClickTime      "MultiClickTime"
-#define XtCMultiScroll         "MultiScroll"
-#define XtCNumLock             "NumLock"
-#define XtCOldXtermFKeys       "OldXtermFKeys"
-#define XtCPrintAttributes     "PrintAttributes"
-#define XtCPrinterAutoClose    "PrinterAutoClose"
-#define XtCPrinterCommand      "PrinterCommand"
-#define XtCPrinterControlMode  "PrinterControlMode"
-#define XtCPrinterExtent       "PrinterExtent"
-#define XtCPrinterFormFeed     "PrinterFormFeed"
-#define XtCResizeGravity       "ResizeGravity"
-#define XtCReverseWrap         "ReverseWrap"
-#define XtCRightScrollBar      "RightScrollBar"
-#define XtCSaveLines           "SaveLines"
-#define XtCScrollBar           "ScrollBar"
-#define XtCScrollCond          "ScrollCond"
-#define XtCScrollLines         "ScrollLines"
-#define XtCScrollPos           "ScrollPos"
-#define XtCShiftKeys           "ShiftKeys"
-#define XtCSignalInhibit       "SignalInhibit"
-#define XtCTekInhibit          "TekInhibit"
-#define XtCTekSmall            "TekSmall"
-#define XtCTekStartup          "TekStartup"
-#define XtCTiteInhibit         "TiteInhibit"
-#define XtCTrimSelection       "TrimSelection"
-#define XtCUnderLine           "UnderLine"
-#define XtCUtf8                        "Utf8"
-#define XtCUtf8controls                "Utf8controls"
-#define XtCVisualBell          "VisualBell"
-#define XtCWideChars           "WideChars"
-#define XtCXmcAttributes       "XmcAttributes"
-#define XtCXmcGlitch           "XmcGlitch"
-#define XtCXmcInline           "XmcInline"
-#define XtCXmcMoveSGR          "XmcMoveSGR"
-
-#ifdef NO_ACTIVE_ICON
-#define XtNgeometry            "geometry"
-#define XtCGeometry            "Geometry"
-#endif
-
 #define        doinput()               (morePtyData(&VTbuffer) ? nextPtyData(&VTbuffer) : in_put())
 
 static int nparam;
@@ -351,12 +172,12 @@
 static jmp_buf vtjmpbuf;
 
 /* event handlers */
-static void HandleBell PROTO_XT_ACTIONS_ARGS;
-static void HandleIgnore PROTO_XT_ACTIONS_ARGS;
-static void HandleKeymapChange PROTO_XT_ACTIONS_ARGS;
-static void HandleVisualBell PROTO_XT_ACTIONS_ARGS;
-#if OPT_ZICONBEEP
-static void HandleMapUnmap PROTO_XT_EV_HANDLER_ARGS;
+static void HandleBell          PROTO_XT_ACTIONS_ARGS;
+static void HandleIgnore        PROTO_XT_ACTIONS_ARGS;
+static void HandleKeymapChange  PROTO_XT_ACTIONS_ARGS;
+static void HandleVisualBell    PROTO_XT_ACTIONS_ARGS;
+#if HANDLE_STRUCT_NOTIFY
+static void HandleStructNotify  PROTO_XT_EV_HANDLER_ARGS;
 #endif
 
 /*
@@ -402,7 +223,7 @@
 /*
  * Warning, the following must be kept under 1024 bytes or else some
  * compilers (particularly AT&T 6386 SVR3.2) will barf).  Workaround is to
- * declare a static buffer and copy in at run time (the the Athena text widget
+ * declare a static buffer and copy in at run time (the Athena text widget
  * does).  Yuck.
  */
 static char defaultTranslations[] =
@@ -665,7 +486,7 @@
 {XtNanswerbackString,XtCAnswerbackString, XtRString, sizeof(String),
        XtOffsetOf(XtermWidgetRec, screen.answer_back),
        XtRString, (XtPointer) ""},
-#ifdef OPT_PRINT_COLORS
+#if OPT_PRINT_COLORS
 {XtNprintAttributes,XtCPrintAttributes, XtRInt, sizeof(int),
        XtOffsetOf(XtermWidgetRec, screen.print_attributes),
        XtRInt, (XtPointer) &defaultONE},
@@ -907,6 +728,14 @@
        XtOffsetOf(XtermWidgetRec, misc.icon_border_pixel),
        XtRString, XtExtdefaultbackground},
 #endif /* NO_ACTIVE_ICON */
+#if OPT_TOOLBAR
+{XtNmenuBar, XtCMenuBar, XtRWidget, sizeof(Widget),
+       XtOffsetOf(XtermWidgetRec, screen.fullVwin.menu_bar),
+       XtRWidget, (XtPointer) 0},
+{XtNmenuHeight, XtCMenuHeight, XtRInt, sizeof(int),
+       XtOffsetOf(XtermWidgetRec, screen.fullVwin.menu_height),
+       XtRString, "25"},
+#endif
 #if OPT_WIDE_CHARS
 {XtNutf8, XtCUtf8, XtRInt, sizeof(int),
        XtOffsetOf(XtermWidgetRec, screen.utf8_mode),
@@ -2768,7 +2597,7 @@
        }
 }
 
-#if OPT_ZICONBEEP
+#if HANDLE_STRUCT_NOTIFY
 /* Flag icon name with "*** "  on window output when iconified.
  * I'd like to do something like reverse video, but I don't
  * know how to tell this to window managers in general.
@@ -2779,8 +2608,7 @@
  * we worry about IsUnmapped when output occurs.  -IAN!
  */
 static int mapstate = -1;
-#include <X11/Shell.h>
-#endif /* OPT_ZICONBEEP */
+#endif /* HANDLE_STRUCT_NOTIFY */
 
 /*
  * write a string str of length len onto the screen at
@@ -2869,10 +2697,10 @@
 #endif /* OPT_ZICONBEEP */
 }
 
-#if OPT_ZICONBEEP
+#if HANDLE_STRUCT_NOTIFY
 /* Flag icon name with "***"  on window output when iconified.
  */
-static void HandleMapUnmap(
+static void HandleStructNotify(
        Widget w GCC_UNUSED,
        XtPointer closure GCC_UNUSED,
        XEvent *event,
@@ -2883,14 +2711,14 @@
            { XtNiconName, (XtArgVal) &icon_name }
     };
 
-    TRACE(("event %d\n", event->type))
-
     switch( event->type ){
     case MapNotify:
+       TRACE(("HandleStructNotify(MapNotify)\n"))
+#if OPT_ZICONBEEP
        if( zIconBeep_flagged ) {
            zIconBeep_flagged = False;
            icon_name = NULL;
-           XtGetValues(toplevel,args,XtNumber(args));
+           XtGetValues(toplevel, args, XtNumber(args));
            if( icon_name != NULL ) {
                char    *buf = (char *)malloc(strlen(icon_name) + 1);
                if (buf == NULL) {
@@ -2902,14 +2730,37 @@
                free(buf);
            }
        }
+#endif /* OPT_ZICONBEEP */
        mapstate = !IsUnmapped;
        break;
     case UnmapNotify:
+       TRACE(("HandleStructNotify(UnmapNotify)\n"))
        mapstate = IsUnmapped;
        break;
+    case ConfigureNotify:
+       TRACE(("HandleStructNotify(ConfigureNotify)\n"))
+#if OPT_TOOLBAR
+       if (term->screen.Vshow) {
+#ifndef NO_ACTIVE_ICON
+           struct _vtwin *Vwin = term->screen.whichVwin;
+#else
+           struct _vtwin *Vwin = &(term->screen.fullVwin);
+#endif
+           if (Vwin->menu_bar) {
+               XtVaGetValues(Vwin->menu_bar,
+                   XtNheight,      &Vwin->menu_height,
+                   NULL);
+               TRACE(("...menu_height %d\n", Vwin->menu_height))
+           }
+       }
+#endif
+       break;
+    default:
+       TRACE(("HandleStructNotify(event %d)\n", event->type))
+       break;
     }
 }
-#endif /* OPT_ZICONBEEP */
+#endif /* HANDLE_STRUCT_NOTIFY */
 
 /*
  * process ANSI modes set, reset
@@ -3144,7 +2995,7 @@
                                screen->event_mask &= ~ButtonMotionMask;
                                screen->event_mask |= PointerMotionMask;
                        }
-                       XSelectInput(XtDisplay(termw), term->core.window, screen->event_mask);
+                       XSelectInput(XtDisplay(termw), XtWindow(term), screen->event_mask);
                        break;
                case 1010:      /* rxvt */
                        screen->scrollttyoutput = (func == bitset) ? ON : OFF;
@@ -3630,7 +3481,7 @@
                }
                inters = ap->a_inters;
                for (i=3; i>=0; --i) {
-                       c = (inters >> (8*i)) & 0xff;
+                       c = CharOf(inters >> (8*i));
                        if (c != 0)
                                unparseputc(c, fd);
                }
@@ -3885,6 +3736,8 @@
        XtGeometryResult status;
        XWindowAttributes attrs;
 
+       TRACE(("RequestResize(rows=%d, cols=%d, text=%d)\n", rows, cols, text))
+
        askedWidth  = cols;
        askedHeight = rows;
 
@@ -3947,7 +3800,7 @@
 int VTInit (void)
 {
     register TScreen *screen = &term->screen;
-    Widget vtparent = term->core.parent;
+    Widget vtparent = SHELL_OF(term);
 
     XtRealizeWidget (vtparent);
     XtOverrideTranslations(vtparent, XtParseTranslationTable(xterm_trans));
@@ -3991,6 +3844,7 @@
 {
    XtermWidget request = (XtermWidget) wrequest;
    XtermWidget wnew    = (XtermWidget) new_arg;
+   Widget my_parent = SHELL_OF(wnew);
    int i;
 #if OPT_ISO_COLORS
    Boolean color_ok;
@@ -4091,7 +3945,9 @@
    wnew->screen.visualbell = request->screen.visualbell;
 #if OPT_NUM_LOCK
    wnew->misc.real_NumLock = request->misc.real_NumLock;
-   wnew->misc.num_lock = request->misc.num_lock;
+   wnew->misc.num_lock = 0;
+   wnew->misc.alt_left = 0;
+   wnew->misc.alt_right = 0;
 #endif
 #if OPT_SHIFT_KEYS
    wnew->misc.shift_keys = request->misc.shift_keys;
@@ -4120,7 +3976,7 @@
    wnew->screen.printer_extent = request->screen.printer_extent;
    wnew->screen.printer_formfeed = request->screen.printer_formfeed;
    wnew->screen.printer_controlmode = request->screen.printer_controlmode;
-#ifdef OPT_PRINT_COLORS
+#if OPT_PRINT_COLORS
    wnew->screen.print_attributes = request->screen.print_attributes;
 #endif
 
@@ -4219,25 +4075,30 @@
    /* look for focus related events on the shell, because we need
     * to care about the shell's border being part of our focus.
     */
-   XtAddEventHandler(XtParent(wnew), EnterWindowMask, FALSE,
+   XtAddEventHandler(my_parent, EnterWindowMask, FALSE,
                HandleEnterWindow, (Opaque)NULL);
-   XtAddEventHandler(XtParent(wnew), LeaveWindowMask, FALSE,
+   XtAddEventHandler(my_parent, LeaveWindowMask, FALSE,
                HandleLeaveWindow, (Opaque)NULL);
-   XtAddEventHandler(XtParent(wnew), FocusChangeMask, FALSE,
+   XtAddEventHandler(my_parent, FocusChangeMask, FALSE,
                HandleFocusChange, (Opaque)NULL);
    XtAddEventHandler((Widget)wnew, 0L, TRUE,
                VTNonMaskableEvent, (Opaque)NULL);
    XtAddEventHandler((Widget)wnew, PropertyChangeMask, FALSE,
                     HandleBellPropertyChange, (Opaque)NULL);
 
-#if OPT_ZICONBEEP
+#if HANDLE_STRUCT_NOTIFY
+#if OPT_TOOLBAR
+   wnew->screen.fullVwin.menu_bar = request->screen.fullVwin.menu_bar;
+   wnew->screen.fullVwin.menu_height = request->screen.fullVwin.menu_height;
+#else
    /* Flag icon name with "***"  on window output when iconified.
     * Put in a handler that will tell us when we get Map/Unmap events.
     */
    if ( zIconBeep )
-       XtAddEventHandler(XtParent(wnew), StructureNotifyMask, FALSE,
-                        HandleMapUnmap, (Opaque)NULL);
-#endif /* OPT_ZICONBEEP */
+#endif
+       XtAddEventHandler(my_parent, StructureNotifyMask, FALSE,
+                        HandleStructNotify, (XtPointer)0);
+#endif /* HANDLE_STRUCT_NOTIFY */
 
    wnew->screen.bellInProgress = FALSE;
 
@@ -4264,6 +4125,27 @@
 #endif
 #endif /* NO_ACTIVE_ICON */
 
+    if (wnew->screen.savelines < 0)
+       wnew->screen.savelines = 0;
+
+    wnew->flags = 0;
+    if (!wnew->screen.jumpscroll)
+       wnew->flags |= SMOOTHSCROLL;
+    if (wnew->misc.reverseWrap)
+       wnew->flags |= REVERSEWRAP;
+    if (wnew->misc.autoWrap)
+       wnew->flags |= WRAPAROUND;
+    if (wnew->misc.re_verse != wnew->misc.re_verse0)
+       wnew->flags |= REVERSE_VIDEO;
+
+    wnew->initflags = wnew->flags;
+
+    if (wnew->misc.appcursorDefault)
+       wnew->keyboard.flags |= MODE_DECCKM;
+
+    if (wnew->misc.appkeypadDefault)
+       wnew->keyboard.flags |= MODE_DECKPAM;
+
    return;
 }
 
@@ -4332,10 +4214,10 @@
 
        if ((pr & XValue) && (XNegative&pr))
          xpos += DisplayWidth(screen->display, DefaultScreen(screen->display))
-                       - width - (term->core.parent->core.border_width * 2);
+                       - width - (XtParent(term)->core.border_width * 2);
        if ((pr & YValue) && (YNegative&pr))
          ypos += DisplayHeight(screen->display,DefaultScreen(screen->display))
-                       - height - (term->core.parent->core.border_width * 2);
+                       - height - (XtParent(term)->core.border_width * 2);
 
        /* set up size hints for window manager; min 1 char by 1 char */
        sizehints.base_width = 2 * screen->border + scrollbar_width;
@@ -4383,10 +4265,10 @@
         * realized, so that it can do the right thing.
         */
        if (sizehints.flags & USPosition)
-           XMoveWindow (XtDisplay(term), term->core.parent->core.window,
+           XMoveWindow (XtDisplay(term), XtWindow(XtParent(term)),
                         sizehints.x, sizehints.y);
 
-       XSetWMNormalHints (XtDisplay(term), term->core.parent->core.window,
+       XSetWMNormalHints (XtDisplay(term), XtWindow(XtParent(term)),
                           &sizehints);
        XFlush (XtDisplay(term));       /* get it out to window manager */
 
@@ -4394,8 +4276,8 @@
           the Expose events for ConfigureNotifys is too hard */
        values->bit_gravity = term->misc.resizeGravity == NorthWestGravity ?
            NorthWestGravity : ForgetGravity;
-       term->screen.fullVwin.window = term->core.window =
-         XCreateWindow(XtDisplay(term), XtWindow(term->core.parent),
+       term->screen.fullVwin.window = XtWindow(term) =
+         XCreateWindow(XtDisplay(term), XtWindow(XtParent(term)),
                term->core.x, term->core.y,
                term->core.width, term->core.height, term->core.border_width,
                (int) term->core.depth,
@@ -4406,7 +4288,7 @@
 #ifndef NO_ACTIVE_ICON
        if (term->misc.active_icon && screen->fnt_icon) {
            int iconX=0, iconY=0;
-           Widget shell = term->core.parent;
+           Widget shell = XtParent(term);
            unsigned long mask;
            XGCValues xgcv;
 
@@ -4621,8 +4503,8 @@
     }
 
     term->screen.xic = XCreateIC(xim, XNInputStyle, input_style,
-                                     XNClientWindow, term->core.window,
-                                     XNFocusWindow, term->core.window,
+                                     XNClientWindow, XtWindow(term),
+                                     XNFocusWindow, XtWindow(term),
                                      NULL);
 
     if (!term->screen.xic) {
@@ -4808,18 +4690,18 @@
                    }
                }
                if (screen->cursorcolor == term->dft_foreground) {
-                       XSetForeground(screen->display, currentGC, bg_pix);
                        XSetBackground(screen->display, currentGC, fg_pix);
                }
+               XSetForeground(screen->display, currentGC, bg_pix);
        } else { /* not selected */
                if (( (flags & INVERSE) && !in_selection) ||
                    (!(flags & INVERSE) &&  in_selection)) {
                    /* text is reverse video */
                        currentGC = ReverseGC(screen);
+                       XSetForeground(screen->display, currentGC, bg_pix);
+                       XSetBackground(screen->display, currentGC, fg_pix);
                } else { /* normal video */
                        currentGC = NormalGC(screen);
-               }
-               if (screen->cursorcolor == term->dft_foreground) {
                        XSetForeground(screen->display, currentGC, fg_pix);
                        XSetBackground(screen->display, currentGC, bg_pix);
                }
Index: charsets.c
--- xterm-112+/charsets.c       Mon Jul 12 13:43:45 1999
+++ xterm-113/charsets.c        Mon Jul 19 06:20:43 1999
@@ -254,7 +254,7 @@
                visibleIChar(buf, ptr-buf)))
 
        for (s = buf; s < ptr; ++s) {
-               int eight = E2A(*s) & 0xff;
+               int eight = CharOf(E2A(*s));
                int seven = eight & 0x7f;
                int cs = (eight >= 128) ? rightset : leftset;
                int chr = eight;
Index: configure
--- xterm-112+/configure        Sun Jul 18 16:29:08 1999
+++ xterm-113/configure Sun Aug 15 20:23:42 1999
@@ -215,6 +215,7 @@
   --disable-rightbar      disable right-scrollbar support
   --disable-samename      disable check for redundant name-change
   --disable-tek4014       disable tek4014 emulation
+  --enable-toolbar        compile-in toolbar for pulldown menus
   --disable-vt52          disable VT52 emulation
   --enable-wide-chars     enable wide-character support
   --disable-ziconbeep     disable -ziconbeep option
@@ -589,7 +590,7 @@
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:593: checking host system type" >&5
+echo "configure:594: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -640,7 +641,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:644: checking for $ac_word" >&5
+echo "configure:645: 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
@@ -670,7 +671,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:674: checking for $ac_word" >&5
+echo "configure:675: 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
@@ -721,7 +722,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:725: checking for $ac_word" >&5
+echo "configure:726: 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
@@ -753,7 +754,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:757: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:758: 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.
@@ -764,12 +765,12 @@
 
 cat > conftest.$ac_ext << EOF
 
-#line 768 "configure"
+#line 769 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:774: \"$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
@@ -795,12 +796,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:799: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:800: 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:804: checking whether we are using GNU C" >&5
+echo "configure:805: 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
@@ -809,7 +810,7 @@
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:813: \"$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:814: \"$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
@@ -828,7 +829,7 @@
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:832: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:833: 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
@@ -860,7 +861,7 @@
 fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:864: checking how to run the C preprocessor" >&5
+echo "configure:865: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -875,13 +876,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 879 "configure"
+#line 880 "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:885: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:886: \"$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
   :
@@ -892,13 +893,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 896 "configure"
+#line 897 "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:902: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:903: \"$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
   :
@@ -909,13 +910,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 913 "configure"
+#line 914 "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:919: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:920: \"$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
   :
@@ -941,13 +942,13 @@
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:945: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:946: 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 951 "configure"
+#line 952 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -965,7 +966,7 @@
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 969 "configure"
+#line 970 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -998,7 +999,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:1002: checking for a BSD compatible install" >&5
+echo "configure:1003: 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
@@ -1053,9 +1054,9 @@
 
 ###    checks for UNIX variants that set C preprocessor variables
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1057: checking for AIX" >&5
+echo "configure:1058: checking for AIX" >&5
 cat > conftest.$ac_ext <<EOF
-#line 1059 "configure"
+#line 1060 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -1077,7 +1078,7 @@
 
 
 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1081: checking for POSIXized ISC" >&5
+echo "configure:1082: 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
@@ -1099,17 +1100,17 @@
 
 ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1103: checking for minix/config.h" >&5
+echo "configure:1104: 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 1108 "configure"
+#line 1109 "configure"
 #include "confdefs.h"
 #include <minix/config.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1113: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1114: \"$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*
@@ -1152,17 +1153,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1156: checking for $ac_hdr" >&5
+echo "configure:1157: 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 1161 "configure"
+#line 1162 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1167: \"$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*
@@ -1192,13 +1193,13 @@
 ###    checks for typedefs
 
 echo $ac_n "checking for size_t in <sys/types.h> or <stdio.h>""... $ac_c" 1>&6
-echo "configure:1196: checking for size_t in <sys/types.h> or <stdio.h>" >&5
+echo "configure:1197: 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 1202 "configure"
+#line 1203 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1211,7 +1212,7 @@
 size_t x
 ; return 0; }
 EOF
-if { (eval echo configure:1215: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_type_size_t=yes
 else
@@ -1231,12 +1232,12 @@
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1235: checking for ANSI C header files" >&5
+echo "configure:1236: 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 1240 "configure"
+#line 1241 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1244,7 +1245,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1248: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1249: \"$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*
@@ -1261,7 +1262,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 1265 "configure"
+#line 1266 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1279,7 +1280,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 1283 "configure"
+#line 1284 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1300,7 +1301,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1304 "configure"
+#line 1305 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1311,7 +1312,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:1315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1335,12 +1336,12 @@
 fi
 
 echo $ac_n "checking for time_t""... $ac_c" 1>&6
-echo "configure:1339: checking for time_t" >&5
+echo "configure:1340: 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 1344 "configure"
+#line 1345 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1378,12 +1379,12 @@
        
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1382: checking for $ac_func" >&5
+echo "configure:1383: 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 1387 "configure"
+#line 1388 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1406,7 +1407,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1411: \"$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
@@ -1432,12 +1433,12 @@
 
 
 echo $ac_n "checking for memmove""... $ac_c" 1>&6
-echo "configure:1436: checking for memmove" >&5
+echo "configure:1437: 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 1441 "configure"
+#line 1442 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char memmove(); below.  */
@@ -1460,7 +1461,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1465: \"$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
@@ -1479,12 +1480,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for bcopy""... $ac_c" 1>&6
-echo "configure:1483: checking for bcopy" >&5
+echo "configure:1484: 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 1488 "configure"
+#line 1489 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char bcopy(); below.  */
@@ -1507,7 +1508,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1512: \"$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
@@ -1523,7 +1524,7 @@
   echo "$ac_t""yes" 1>&6
   
        echo $ac_n "checking if bcopy does overlapping moves""... $ac_c" 1>&6
-echo "configure:1527: checking if bcopy does overlapping moves" >&5
+echo "configure:1528: 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
@@ -1532,7 +1533,7 @@
   cf_cv_good_bcopy=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 1536 "configure"
+#line 1537 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1545,7 +1546,7 @@
 }
                
 EOF
-if { (eval echo configure:1549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1550: \"$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
@@ -1583,7 +1584,7 @@
 
 
 echo $ac_n "checking for full tgetent function""... $ac_c" 1>&6
-echo "configure:1587: checking for full tgetent function" >&5
+echo "configure:1588: 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
@@ -1598,7 +1599,7 @@
   echo "cross-compiling, cannot verify if a termcap/tgetent is present in $cf_termlib" 1>&5
 else
   cat > conftest.$ac_ext <<EOF
-#line 1602 "configure"
+#line 1603 "configure"
 #include "confdefs.h"
 
 /* terminfo implementations ignore the buffer argument, making it useless for
@@ -1612,7 +1613,7 @@
        tgetent(buffer, "vt100");
        exit(buffer[0] == 0); }
 EOF
-if { (eval echo configure:1616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1617: \"$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
@@ -1647,17 +1648,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1651: checking for $ac_hdr" >&5
+echo "configure:1652: 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 1656 "configure"
+#line 1657 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1661: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1662: \"$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*
@@ -1690,7 +1691,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:1694: checking for partial tgetent function" >&5
+echo "configure:1695: 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
@@ -1699,14 +1700,14 @@
        for cf_termlib in $cf_TERMLIB ; do
                LIBS="$cf_save_LIBS -l$cf_termlib"
                cat > conftest.$ac_ext <<EOF
-#line 1703 "configure"
+#line 1704 "configure"
 #include "confdefs.h"
 
 int main() {
 tgetent(0, 0)
 ; return 0; }
 EOF
-if { (eval echo configure:1710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1711: \"$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"
@@ -1729,17 +1730,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1733: checking for $ac_hdr" >&5
+echo "configure:1734: 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 1738 "configure"
+#line 1739 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1744: \"$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*
@@ -1779,13 +1780,13 @@
 ###    checks for structures
 
 echo $ac_n "checking for declaration of fd_set""... $ac_c" 1>&6
-echo "configure:1783: checking for declaration of fd_set" >&5
+echo "configure:1784: 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 1789 "configure"
+#line 1790 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1793,7 +1794,7 @@
 fd_set x
 ; return 0; }
 EOF
-if { (eval echo configure:1797: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1798: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_type_fd_set=sys/types.h
 else
@@ -1801,7 +1802,7 @@
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 1805 "configure"
+#line 1806 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1810,7 +1811,7 @@
 fd_set x
 ; return 0; }
 EOF
-if { (eval echo configure:1814: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1815: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_type_fd_set=sys/select.h
 else
@@ -1834,14 +1835,14 @@
 
 
 echo $ac_n "checking if POSIX VDISABLE symbol should be used""... $ac_c" 1>&6
-echo "configure:1838: checking if POSIX VDISABLE symbol should be used" >&5
+echo "configure:1839: 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 1845 "configure"
+#line 1846 "configure"
 #include "confdefs.h"
 
 #if HAVE_TERMIOS_H && HAVE_TCGETATTR
@@ -1859,7 +1860,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_posix_vdisable=yes
 else
@@ -1871,7 +1872,7 @@
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 1875 "configure"
+#line 1876 "configure"
 #include "confdefs.h"
 
 #if HAVE_TERMIOS_H && HAVE_TCGETATTR
@@ -1884,7 +1885,7 @@
 int main() { exit(_POSIX_VDISABLE == -1); }
 #endif
 EOF
-if { (eval echo configure:1888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1889: \"$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
@@ -1910,13 +1911,13 @@
 
 
 echo $ac_n "checking if external errno is declared""... $ac_c" 1>&6
-echo "configure:1914: checking if external errno is declared" >&5
+echo "configure:1915: checking if external errno is declared" >&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 1920 "configure"
+#line 1921 "configure"
 #include "confdefs.h"
 
 #if HAVE_STDLIB_H
@@ -1929,7 +1930,7 @@
 long x = (long) errno
 ; return 0; }
 EOF
-if { (eval echo configure:1933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval 'cf_cv_dcl_'errno'=yes'
 else
@@ -1960,13 +1961,13 @@
 # It's possible (for near-UNIX clones) that the data doesn't exist
 
 echo $ac_n "checking if external errno exists""... $ac_c" 1>&6
-echo "configure:1964: checking if external errno exists" >&5
+echo "configure:1965: checking if external errno exists" >&5
 if eval "test \"`echo '$''{'cf_cv_have_errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 1970 "configure"
+#line 1971 "configure"
 #include "confdefs.h"
 
 #undef errno
@@ -1976,7 +1977,7 @@
 errno = 2
 ; return 0; }
 EOF
-if { (eval echo configure:1980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1981: \"$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
@@ -2009,12 +2010,12 @@
 
 ###    checks for compiler characteristics
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2013: checking for working const" >&5
+echo "configure:2014: 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 2018 "configure"
+#line 2019 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2063,7 +2064,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2067: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2068: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -2085,7 +2086,7 @@
 
 
 echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:2089: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:2090: 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
@@ -2109,7 +2110,7 @@
 do
        CFLAGS="$cf_save_CFLAGS $cf_arg"
        cat > conftest.$ac_ext <<EOF
-#line 2113 "configure"
+#line 2114 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -2125,7 +2126,7 @@
        struct s2 {int (*f) (double a);};
 ; return 0; }
 EOF
-if { (eval echo configure:2129: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ansi_cc="$cf_arg"; break
 else
@@ -2155,12 +2156,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:2159: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:2160: 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 2164 "configure"
+#line 2165 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -2176,7 +2177,7 @@
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:2180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2181: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -2202,7 +2203,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:2206: checking for X" >&5
+echo "configure:2207: checking for X" >&5
 
 
 # Check whether --with-x or --without-x was given.
@@ -2265,12 +2266,12 @@
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 2269 "configure"
+#line 2270 "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:2274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2275: \"$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*
@@ -2339,14 +2340,14 @@
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2343 "configure"
+#line 2344 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:2350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2351: \"$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.
@@ -2446,7 +2447,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:2450: checking for open in -lc_s" >&5
+echo "configure:2451: 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
@@ -2454,7 +2455,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lc_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2458 "configure"
+#line 2459 "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
@@ -2465,7 +2466,7 @@
 open()
 ; return 0; }
 EOF
-if { (eval echo configure:2469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2470: \"$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
@@ -2482,7 +2483,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:2486: checking for gethostname in -lbsd" >&5
+echo "configure:2487: 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
@@ -2490,7 +2491,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lbsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2494 "configure"
+#line 2495 "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
@@ -2501,7 +2502,7 @@
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:2505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2506: \"$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
@@ -2518,7 +2519,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:2522: checking for gethostname in -lnsl_s" >&5
+echo "configure:2523: 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
@@ -2526,7 +2527,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2530 "configure"
+#line 2531 "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
@@ -2537,7 +2538,7 @@
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:2541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2542: \"$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
@@ -2554,7 +2555,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:2558: checking for XOpenDisplay in -lX11_s" >&5
+echo "configure:2559: 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
@@ -2562,7 +2563,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2566 "configure"
+#line 2567 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2573,7 +2574,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:2577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2578: \"$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
@@ -2590,7 +2591,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:2594: checking for XtAppInitialize in -lXt_s" >&5
+echo "configure:2595: 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
@@ -2598,7 +2599,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXt_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2602 "configure"
+#line 2603 "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
@@ -2609,7 +2610,7 @@
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:2613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2614: \"$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
@@ -2650,7 +2651,7 @@
        ;;
 *)
        echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:2654: checking for socket in -lsocket" >&5
+echo "configure:2655: 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
@@ -2658,7 +2659,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2662 "configure"
+#line 2663 "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
@@ -2669,7 +2670,7 @@
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:2673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2674: \"$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
@@ -2697,7 +2698,7 @@
 fi
 
        echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6
-echo "configure:2701: checking for gethostname in -lnsl" >&5
+echo "configure:2702: 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
@@ -2705,7 +2706,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2709 "configure"
+#line 2710 "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
@@ -2716,7 +2717,7 @@
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:2720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2721: \"$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
@@ -2767,17 +2768,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:2771: checking whether -R must be followed by a space" >&5
+echo "configure:2772: 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 2774 "configure"
+#line 2775 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -2793,14 +2794,14 @@
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 2797 "configure"
+#line 2798 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -2832,7 +2833,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:2836: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:2837: 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
@@ -2840,7 +2841,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2844 "configure"
+#line 2845 "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
@@ -2851,7 +2852,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2856: \"$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
@@ -2873,7 +2874,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:2877: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:2878: 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
@@ -2881,7 +2882,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2885 "configure"
+#line 2886 "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
@@ -2892,7 +2893,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2897: \"$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
@@ -2921,12 +2922,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:2925: checking for gethostbyname" >&5
+echo "configure:2926: 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 2930 "configure"
+#line 2931 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -2949,7 +2950,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2954: \"$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
@@ -2970,7 +2971,7 @@
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:2974: checking for gethostbyname in -lnsl" >&5
+echo "configure:2975: 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
@@ -2978,7 +2979,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2982 "configure"
+#line 2983 "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
@@ -2989,7 +2990,7 @@
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:2993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2994: \"$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
@@ -3019,12 +3020,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:3023: checking for connect" >&5
+echo "configure:3024: 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 3028 "configure"
+#line 3029 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -3047,7 +3048,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3052: \"$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
@@ -3068,7 +3069,7 @@
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:3072: checking for connect in -lsocket" >&5
+echo "configure:3073: 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
@@ -3076,7 +3077,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3080 "configure"
+#line 3081 "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
@@ -3087,7 +3088,7 @@
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:3091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3092: \"$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
@@ -3111,12 +3112,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:3115: checking for remove" >&5
+echo "configure:3116: 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 3120 "configure"
+#line 3121 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -3139,7 +3140,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3144: \"$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
@@ -3160,7 +3161,7 @@
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:3164: checking for remove in -lposix" >&5
+echo "configure:3165: 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
@@ -3168,7 +3169,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3172 "configure"
+#line 3173 "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
@@ -3179,7 +3180,7 @@
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:3183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3184: \"$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
@@ -3203,12 +3204,12 @@
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:3207: checking for shmat" >&5
+echo "configure:3208: 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 3212 "configure"
+#line 3213 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -3231,7 +3232,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3236: \"$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
@@ -3252,7 +3253,7 @@
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:3256: checking for shmat in -lipc" >&5
+echo "configure:3257: 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
@@ -3260,7 +3261,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3264 "configure"
+#line 3265 "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
@@ -3271,7 +3272,7 @@
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:3275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3276: \"$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
@@ -3304,7 +3305,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:3308: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:3309: 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
@@ -3312,7 +3313,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3316 "configure"
+#line 3317 "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
@@ -3323,7 +3324,7 @@
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:3327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3328: \"$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
@@ -3350,7 +3351,7 @@
        LDFLAGS="$LDFLAGS $X_LIBS"
        CFLAGS="$CFLAGS $X_CFLAGS"
        echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:3354: checking for XOpenDisplay in -lX11" >&5
+echo "configure:3355: 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
@@ -3358,7 +3359,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3362 "configure"
+#line 3363 "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
@@ -3369,7 +3370,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:3373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3374: \"$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
@@ -3390,7 +3391,7 @@
 fi
 
        echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
-echo "configure:3394: checking for XtAppInitialize in -lXt" >&5
+echo "configure:3395: 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
@@ -3398,7 +3399,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3402 "configure"
+#line 3403 "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
@@ -3409,7 +3410,7 @@
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:3413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3414: \"$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
@@ -3465,17 +3466,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3469: checking for $ac_hdr" >&5
+echo "configure:3470: 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 3474 "configure"
+#line 3475 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3479: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3480: \"$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*
@@ -3525,17 +3526,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3529: checking for $ac_hdr" >&5
+echo "configure:3530: 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 3534 "configure"
+#line 3535 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3540: \"$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*
@@ -3563,7 +3564,7 @@
 
 
 echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
-echo "configure:3567: checking for XextCreateExtension in -lXext" >&5
+echo "configure:3568: 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
@@ -3571,7 +3572,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXext  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3575 "configure"
+#line 3576 "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 +3583,7 @@
 XextCreateExtension()
 ; 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:3587: \"$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
@@ -3604,7 +3605,7 @@
 
 
 echo $ac_n "checking for XmuClientWindow in -lXmu""... $ac_c" 1>&6
-echo "configure:3608: checking for XmuClientWindow in -lXmu" >&5
+echo "configure:3609: 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
@@ -3612,7 +3613,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXmu  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3616 "configure"
+#line 3617 "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
@@ -3623,7 +3624,7 @@
 XmuClientWindow()
 ; return 0; }
 EOF
-if { (eval echo configure:3627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3628: \"$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
@@ -3650,7 +3651,7 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for XmuClientWindow in -lXmu_s""... $ac_c" 1>&6
-echo "configure:3654: checking for XmuClientWindow in -lXmu_s" >&5
+echo "configure:3655: 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
@@ -3658,7 +3659,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXmu_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3662 "configure"
+#line 3663 "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
@@ -3669,7 +3670,7 @@
 XmuClientWindow()
 ; return 0; }
 EOF
-if { (eval echo configure:3673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3674: \"$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
@@ -3700,7 +3701,7 @@
 
 
 echo $ac_n "checking for XawSimpleMenuAddGlobalActions in -l$cf_x_athena""... $ac_c" 1>&6
-echo "configure:3704: checking for XawSimpleMenuAddGlobalActions in -l$cf_x_athena" >&5
+echo "configure:3705: 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
@@ -3708,7 +3709,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_x_athena  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3712 "configure"
+#line 3713 "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
@@ -3719,7 +3720,7 @@
 XawSimpleMenuAddGlobalActions()
 ; return 0; }
 EOF
-if { (eval echo configure:3723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3724: \"$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
@@ -3739,7 +3740,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:3743: checking for XawSimpleMenuAddGlobalActions in -l${cf_x_athena}_s" >&5
+echo "configure:3744: 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
@@ -3747,7 +3748,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 3751 "configure"
+#line 3752 "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
@@ -3758,7 +3759,7 @@
 XawSimpleMenuAddGlobalActions()
 ; return 0; }
 EOF
-if { (eval echo configure:3762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3763: \"$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
@@ -3799,12 +3800,12 @@
 for ac_func in grantpt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3803: checking for $ac_func" >&5
+echo "configure:3804: 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 3808 "configure"
+#line 3809 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3827,7 +3828,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3832: \"$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
@@ -3849,7 +3850,7 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6
-echo "configure:3853: checking for openpty in -lutil" >&5
+echo "configure:3854: checking for openpty in -lutil" >&5
 ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3857,7 +3858,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lutil  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3861 "configure"
+#line 3862 "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
@@ -3868,7 +3869,7 @@
 openpty()
 ; return 0; }
 EOF
-if { (eval echo configure:3872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3873: \"$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
@@ -3903,7 +3904,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:3907: checking for $ac_word" >&5
+echo "configure:3908: 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
@@ -3937,7 +3938,7 @@
 
 XTERM_MODE=755
 echo $ac_n "checking for presumed installation-mode""... $ac_c" 1>&6
-echo "configure:3941: checking for presumed installation-mode" >&5
+echo "configure:3942: checking for presumed installation-mode" >&5
 if test -f "$XTERM_PATH" ; then
        ls -Ll $XTERM_PATH >conftest.out
        read cf_mode cf_rest <conftest.out
@@ -3956,12 +3957,12 @@
        
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3960: checking for $ac_func" >&5
+echo "configure:3961: 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 3965 "configure"
+#line 3966 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3984,7 +3985,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3989: \"$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
@@ -4010,7 +4011,7 @@
 
 
 echo $ac_n "checking if we should use imake to help""... $ac_c" 1>&6
-echo "configure:4014: checking if we should use imake to help" >&5
+echo "configure:4015: 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
@@ -4035,7 +4036,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:4039: checking for $ac_word" >&5
+echo "configure:4040: 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
@@ -4174,7 +4175,7 @@
 
 
 echo $ac_n "checking for default terminal-id""... $ac_c" 1>&6
-echo "configure:4178: checking for default terminal-id" >&5
+echo "configure:4179: 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
@@ -4195,7 +4196,7 @@
 
 
 echo $ac_n "checking for default terminal-type""... $ac_c" 1>&6
-echo "configure:4199: checking for default terminal-type" >&5
+echo "configure:4200: 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
@@ -4212,7 +4213,7 @@
 
 
 echo $ac_n "checking for private terminfo-directory""... $ac_c" 1>&6
-echo "configure:4216: checking for private terminfo-directory" >&5
+echo "configure:4217: 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
@@ -4249,7 +4250,7 @@
 
 ###    checks for optional features
 echo $ac_n "checking if you want active-icons""... $ac_c" 1>&6
-echo "configure:4253: checking if you want active-icons" >&5
+echo "configure:4254: 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
@@ -4275,7 +4276,7 @@
 fi
 
 echo $ac_n "checking if you want ANSI color""... $ac_c" 1>&6
-echo "configure:4279: checking if you want ANSI color" >&5
+echo "configure:4280: 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
@@ -4301,7 +4302,7 @@
 if test $enable_ansi_color = yes ; then
 
        echo $ac_n "checking if you want 16 colors like aixterm""... $ac_c" 1>&6
-echo "configure:4305: checking if you want 16 colors like aixterm" >&5
+echo "configure:4306: 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
@@ -4325,7 +4326,7 @@
 
 
        echo $ac_n "checking if you want 256 colors""... $ac_c" 1>&6
-echo "configure:4329: checking if you want 256 colors" >&5
+echo "configure:4330: checking if you want 256 colors" >&5
        
 # Check whether --enable-256-color or --disable-256-color was given.
 if test "${enable_256_color+set}" = set; then
@@ -4355,7 +4356,7 @@
 fi
 
 echo $ac_n "checking if you want blinking cursor""... $ac_c" 1>&6
-echo "configure:4359: checking if you want blinking cursor" >&5
+echo "configure:4360: checking if you want blinking cursor" >&5
 
 # Check whether --enable-blink-cursor or --disable-blink-cursor was given.
 if test "${enable_blink_cursor+set}" = set; then
@@ -4381,7 +4382,7 @@
 if test $enable_ansi_color = yes ; then
 
        echo $ac_n "checking if you want bold colors mapped like IBM PC""... $ac_c" 1>&6
-echo "configure:4385: checking if you want bold colors mapped like IBM PC" >&5
+echo "configure:4386: 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
@@ -4405,7 +4406,7 @@
 
 
        echo $ac_n "checking if you want color-mode enabled by default""... $ac_c" 1>&6
-echo "configure:4409: checking if you want color-mode enabled by default" >&5
+echo "configure:4410: 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
@@ -4431,7 +4432,7 @@
 fi
 
 echo $ac_n "checking if you want support for color highlighting""... $ac_c" 1>&6
-echo "configure:4435: checking if you want support for color highlighting" >&5
+echo "configure:4436: 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
@@ -4455,7 +4456,7 @@
 
 
 echo $ac_n "checking if you want support for doublesize characters""... $ac_c" 1>&6
-echo "configure:4459: checking if you want support for doublesize characters" >&5
+echo "configure:4460: 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
@@ -4479,7 +4480,7 @@
 
 
 echo $ac_n "checking if you want fallback-support for box characters""... $ac_c" 1>&6
-echo "configure:4483: checking if you want fallback-support for box characters" >&5
+echo "configure:4484: 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
@@ -4503,7 +4504,7 @@
 
 
 echo $ac_n "checking if you want support for HP-style function keys""... $ac_c" 1>&6
-echo "configure:4507: checking if you want support for HP-style function keys" >&5
+echo "configure:4508: 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
@@ -4529,7 +4530,7 @@
 fi
 
 echo $ac_n "checking if you want support for internationalization""... $ac_c" 1>&6
-echo "configure:4533: checking if you want support for internationalization" >&5
+echo "configure:4534: checking if you want support for internationalization" >&5
 
 # Check whether --enable-i18n or --disable-i18n was given.
 if test "${enable_i18n+set}" = set; then
@@ -4555,7 +4556,7 @@
 fi
 
 echo $ac_n "checking if you want support for initial-erase setup""... $ac_c" 1>&6
-echo "configure:4559: checking if you want support for initial-erase setup" >&5
+echo "configure:4560: checking if you want support for initial-erase setup" >&5
 
 # Check whether --enable-initial-erase or --disable-initial-erase was given.
 if test "${enable_initial_erase+set}" = set; then
@@ -4581,7 +4582,7 @@
 fi
 
 echo $ac_n "checking if you want support for input-method""... $ac_c" 1>&6
-echo "configure:4585: checking if you want support for input-method" >&5
+echo "configure:4586: 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
@@ -4599,6 +4600,56 @@
 fi
 
 echo "$ac_t""$enable_ximp" 1>&6
+
+echo $ac_n "checking if X libraries support input-method""... $ac_c" 1>&6
+echo "configure:4606: checking if X libraries support input-method" >&5
+if eval "test \"`echo '$''{'cf_cv_input_method'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cat > conftest.$ac_ext <<EOF
+#line 4612 "configure"
+#include "confdefs.h"
+
+#include <X11/IntrinsicP.h>
+#include <X11/Xatom.h>
+#include <X11/Xutil.h>
+#include <X11/Xmu/Atoms.h>
+#include <X11/Xmu/Converters.h>
+#include <X11/Xaw/XawImP.h>
+
+int main() {
+
+{
+       XIM xim;
+       XIMStyles *xim_styles;
+       XIMStyle input_style;
+       Widget w;
+
+       XSetLocaleModifiers("@im=none");
+       xim = XOpenIM(XtDisplay(w), NULL, NULL, NULL);
+       XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL);
+       XCloseIM(xim);
+       input_style = (XIMPreeditNothing | XIMStatusNothing);
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:4639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  cf_cv_input_method=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_input_method=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$cf_cv_input_method" 1>&6
+
+test "$cf_cv_input_method" = no && enable_ximp=no
 if test $enable_ximp = no ; then
        cat >> confdefs.h <<\EOF
 #define OPT_INPUT_METHOD 0
@@ -4607,7 +4658,7 @@
 fi
 
 echo $ac_n "checking if you want support for logging""... $ac_c" 1>&6
-echo "configure:4611: checking if you want support for logging" >&5
+echo "configure:4662: checking if you want support for logging" >&5
 
 # Check whether --enable-logging or --disable-logging was given.
 if test "${enable_logging+set}" = set; then
@@ -4631,7 +4682,7 @@
 EOF
 
        echo $ac_n "checking if you want to allow logging via a pipe""... $ac_c" 1>&6
-echo "configure:4635: checking if you want to allow logging via a pipe" >&5
+echo "configure:4686: 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
@@ -4658,7 +4709,7 @@
 fi
 
 echo $ac_n "checking if you want support for iconify/maximize translations""... $ac_c" 1>&6
-echo "configure:4662: checking if you want support for iconify/maximize translations" >&5
+echo "configure:4713: 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
@@ -4682,7 +4733,7 @@
 
 
 echo $ac_n "checking if you want NumLock to override keyboard tables""... $ac_c" 1>&6
-echo "configure:4686: checking if you want NumLock to override keyboard tables" >&5
+echo "configure:4737: 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
@@ -4706,7 +4757,7 @@
 
 
 echo $ac_n "checking if you want support for right-scrollbar""... $ac_c" 1>&6
-echo "configure:4710: checking if you want support for right-scrollbar" >&5
+echo "configure:4761: 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
@@ -4732,7 +4783,7 @@
 fi
 
 echo $ac_n "checking if you want check for redundant name-change""... $ac_c" 1>&6
-echo "configure:4736: checking if you want check for redundant name-change" >&5
+echo "configure:4787: 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
@@ -4756,7 +4807,7 @@
 
 
 echo $ac_n "checking if you want support for tek4014""... $ac_c" 1>&6
-echo "configure:4760: checking if you want support for tek4014" >&5
+echo "configure:4811: checking if you want support for tek4014" >&5
 
 # Check whether --enable-tek4014 or --disable-tek4014 was given.
 if test "${enable_tek4014+set}" = set; then
@@ -4785,8 +4836,32 @@
        EXTRAOBJS="$EXTRAOBJS TekPrsTbl.o Tekproc.o"
 fi
 
+echo $ac_n "checking if you want pulldown menus with a toolbar""... $ac_c" 1>&6
+echo "configure:4841: checking if you want pulldown menus with a toolbar" >&5
+
+# Check whether --enable-toolbar or --disable-toolbar was given.
+if test "${enable_toolbar+set}" = set; then
+  enableval="$enable_toolbar"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    enable_toolbar=yes 
+  else
+    enable_toolbar=no
+  fi
+else
+  enableval=no 
+  enable_toolbar=no
+  
+fi
+
+echo "$ac_t""$enable_toolbar" 1>&6
+test $enable_toolbar = yes && cat >> confdefs.h <<\EOF
+#define OPT_TOOLBAR 1
+EOF
+
+
 echo $ac_n "checking if you want VT52 emulation""... $ac_c" 1>&6
-echo "configure:4790: checking if you want VT52 emulation" >&5
+echo "configure:4865: checking if you want VT52 emulation" >&5
 
 # Check whether --enable-vt52 or --disable-vt52 was given.
 if test "${enable_vt52+set}" = set; then
@@ -4810,7 +4885,7 @@
 
 
 echo $ac_n "checking if you want wide-character support""... $ac_c" 1>&6
-echo "configure:4814: checking if you want wide-character support" >&5
+echo "configure:4889: checking if you want wide-character support" >&5
 
 # Check whether --enable-wide-chars or --disable-wide-chars was given.
 if test "${enable_wide_chars+set}" = set; then
@@ -4839,7 +4914,7 @@
 fi
 
 echo $ac_n "checking if you want -ziconbeep option""... $ac_c" 1>&6
-echo "configure:4843: checking if you want -ziconbeep option" >&5
+echo "configure:4918: checking if you want -ziconbeep option" >&5
 
 # Check whether --enable-ziconbeep or --disable-ziconbeep was given.
 if test "${enable_ziconbeep+set}" = set; then
@@ -4864,7 +4939,7 @@
 
 # development/testing aids
 echo $ac_n "checking if you want debugging traces""... $ac_c" 1>&6
-echo "configure:4868: checking if you want debugging traces" >&5
+echo "configure:4943: checking if you want debugging traces" >&5
 
 # Check whether --enable-trace or --disable-trace was given.
 if test "${enable_trace+set}" = set; then
@@ -4893,7 +4968,7 @@
 
 
 echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6
-echo "configure:4897: checking if you want to see long compiling messages" >&5
+echo "configure:4972: 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
@@ -4933,7 +5008,7 @@
 
 
 echo $ac_n "checking if you want magic cookie emulation""... $ac_c" 1>&6
-echo "configure:4937: checking if you want magic cookie emulation" >&5
+echo "configure:5012: 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
@@ -4962,7 +5037,7 @@
 
 if test -n "$GCC" ; then
 echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
-echo "configure:4966: checking if you want to turn on gcc warnings" >&5
+echo "configure:5041: 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
@@ -5002,9 +5077,9 @@
 if test -n "$GCC"
 then
        echo "checking for gcc __attribute__ directives" 1>&6
-echo "configure:5006: checking for gcc __attribute__ directives" >&5
+echo "configure:5081: checking for gcc __attribute__ directives" >&5
        cat > conftest.$ac_ext <<EOF
-#line 5008 "configure"
+#line 5083 "configure"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -5042,7 +5117,7 @@
 EOF
                        ;;
                esac
-               if { (eval echo configure:5046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+               if { (eval echo configure:5121: \"$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
@@ -5059,11 +5134,11 @@
 if test -n "$GCC"
 then
                cat > conftest.$ac_ext <<EOF
-#line 5063 "configure"
+#line 5138 "configure"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
                echo "checking for gcc warning options" 1>&6
-echo "configure:5067: checking for gcc warning options" >&5
+echo "configure:5142: checking for gcc warning options" >&5
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
        cf_warn_CONST=""
@@ -5081,7 +5156,7 @@
                Wstrict-prototypes $cf_warn_CONST
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-               if { (eval echo configure:5085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+               if { (eval echo configure:5160: \"$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-112+/configure.in     Sun Jul 18 16:29:08 1999
+++ xterm-113/configure.in      Sun Aug 15 20:12:34 1999
@@ -300,6 +300,8 @@
        [enable_ximp=no],
        [enable_ximp=yes])
 AC_MSG_RESULT($enable_ximp)
+CF_INPUT_METHOD
+test "$cf_cv_input_method" = no && enable_ximp=no
 if test $enable_ximp = no ; then
        AC_DEFINE(OPT_INPUT_METHOD,0)
 fi
@@ -370,6 +372,14 @@
        EXTRASRCS="$EXTRASRCS TekPrsTbl.c Tekproc.c"
        EXTRAOBJS="$EXTRAOBJS TekPrsTbl.o Tekproc.o"
 fi
+
+AC_MSG_CHECKING(if you want pulldown menus with a toolbar)
+CF_ARG_ENABLE(toolbar,
+       [  --enable-toolbar        compile-in toolbar for pulldown menus],
+       [enable_toolbar=yes],
+       [enable_toolbar=no])
+AC_MSG_RESULT($enable_toolbar)
+test $enable_toolbar = yes && AC_DEFINE(OPT_TOOLBAR,1)
 
 AC_MSG_CHECKING(if you want VT52 emulation)
 CF_ARG_DISABLE(vt52,
Index: data.c
--- xterm-112+/data.c   Mon May  3 21:18:34 1999
+++ xterm-113/data.c    Fri Aug 13 22:07:51 1999
@@ -33,12 +33,15 @@
 #include <ptyx.h>              /* gets Xt stuff, too */
 #include <data.h>
 
+Widget toplevel;               /* top-most widget in xterm */
+
 #if OPT_TEK4014
 PtyData *Tbuffer;
 Char *Tpushb;
 Char *Tpushback;
 TekLink *TekRefresh;
 TekWidget tekWidget;
+Widget tekshellwidget;
 int TEKgcFontMask = GCFont;
 int T_lastx = -1;
 int T_lasty = -1;
Index: data.h
--- xterm-112+/data.h   Sun May 16 15:55:44 1999
+++ xterm-113/data.h    Fri Aug 13 22:07:34 1999
@@ -30,6 +30,8 @@
 
 #include <xterm.h>
 
+extern Widget toplevel;
+
 extern XtAppContext app_con;
 
 #if OPT_TEK4014
@@ -38,6 +40,7 @@
 extern PtyData *Tbuffer;
 extern TekLink *TekRefresh;
 extern TekWidget tekWidget;
+extern Widget tekshellwidget;
 extern int TEKgcFontMask;
 extern int T_lastx;
 extern int T_lasty;
@@ -101,7 +104,6 @@
 #define        XkbBI_MajorError                2
 #define        XkbBI_TerminalBell              9
 #define        XkbBI_MarginBell                10
-#define        XkbBI_CursorStuck               11
 #endif
 
 #endif /* included_data_h */
Index: input.c
--- xterm-112+/input.c  Mon Jul 12 13:43:45 1999
+++ xterm-113/input.c   Sun Aug 15 20:49:36 1999
@@ -5,9 +5,9 @@
 
 /*
  * 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
@@ -15,10 +15,10 @@
  * 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.
@@ -26,13 +26,13 @@
  * 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
@@ -276,7 +276,7 @@
 #define STRBUFSIZE 500
 
        char strbuf[STRBUFSIZE];
-       register char *string;
+       register Char *string;
        register int key = FALSE;
        int     pty     = screen->respond;
        int     nbytes;
@@ -322,7 +322,7 @@
                if (nbytes == 1) {
                /* Take ISO 8859-1 character delivered by XLookupString() */
                        ucs = (unsigned char) strbuf[0];
-               } else if (!nbytes && 
+               } else if (!nbytes &&
                           ((keysym >= 0x100 && keysym <= 0xf000) ||
                            (keysym & 0xff000000U) == 0x01000000))
                        ucs = keysym2ucs(keysym);
@@ -335,13 +335,13 @@
        }
 #endif
 
-       string = &strbuf[0];
+       string = (Char *)&strbuf[0];
        reply.a_pintro = 0;
        reply.a_final = 0;
        reply.a_nparam = 0;
        reply.a_inters = 0;
 
-       TRACE(("Input keysym %#04lx, %d:'%.*s'%s%s%s%s%s%s%s%s %s\n",
+       TRACE(("Input keysym %#04lx, %d:'%.*s'%s%s%s%s%s%s%s%s%s%s%s%s\n",
                keysym,
                nbytes,
                nbytes > 0 ? nbytes : 1,
@@ -354,11 +354,14 @@
                ModifierName(event->state & Mod3Mask),
                ModifierName(event->state & Mod4Mask),
                ModifierName(event->state & Mod5Mask),
-               eightbit ? "8bit" : "7bit"))
+               eightbit ? " 8bit" : " 7bit",
+               IsFunctionKey(keysym)     ? " FKey"     : "",
+               IsMiscFunctionKey(keysym) ? " MiscFKey" : "",
+               IsEditFunctionKey(keysym) ? " EditFkey" : ""))
 
 #if OPT_SUNPC_KBD
        /*
-        * DEC keyboards don't have keypad(+), but do have keypad(,) instead. 
+        * 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.
         */
@@ -387,7 +390,8 @@
        if (nbytes == 1
         && IsKeypadKey(keysym)
         && term->misc.real_NumLock
-        && (term->misc.num_lock & event->state) != 0) {
+        && ((term->misc.num_lock == 0)
+         || (term->misc.num_lock & event->state) != 0)) {
                keypad_mode = 0;
                TRACE(("...Input num_lock, force keypad_mode off\n"))
        }
@@ -442,16 +446,6 @@
        }
 #endif
 
-       /* VT220 & up: National Replacement Characters */
-       if ((nbytes == 1)
-        && (term->flags & NATIONAL)) {
-               keysym = xtermCharSetIn(keysym, screen->keyboard_dialect[0]);
-               if (keysym < 128) {
-                       strbuf[0] = keysym;
-                       TRACE(("...input NRC changed to %d\n", *strbuf))
-               }
-       }
-
        /* VT300 & up: backarrow toggle */
        if ((nbytes == 1)
         && (((term->keyboard.flags & MODE_DECBKM) == 0)
@@ -530,7 +524,7 @@
 #if OPT_SUNPC_KBD
                 && sunKeyboard
 #endif
-                && ((string = udk_lookup(dec_code, &nbytes)) != 0)) {
+                && ((string = (Char *)udk_lookup(dec_code, &nbytes)) != 0)) {
                        while (nbytes-- > 0)
                                unparseputc(*string++, pty);
                }
@@ -583,11 +577,29 @@
                        nbytes--;
                }
 #endif
-               if ((nbytes == 1) && eightbit) {
-                   if (screen->input_eight_bits)
-                     *string |= 0x80;  /* turn on eighth bit */
-                   else
-                     unparseputc (ESC, pty);  /* escape */
+               if (nbytes == 1) {
+                       if (eightbit && screen->input_eight_bits) {
+                               if (CharOf(*string) < 128) {
+                                       TRACE(("...input shift from %d to %d\n",
+                                               CharOf(*string),
+                                               CharOf(*string) | 0x80))
+                                       *string |= 0x80;
+                               }
+                               eightbit = False;
+                       }
+                       /* VT220 & up: National Replacement Characters */
+                       if ((term->flags & NATIONAL) != 0) {
+                               int cmp = xtermCharSetIn(CharOf(*string), screen->keyboard_dialect[0]);
+                               TRACE(("...input NRC %d, %s %d\n",
+                                       CharOf(*string),
+                                       (CharOf(*string) == cmp)
+                                               ? "unchanged"
+                                               : "changed to",
+                                       CharOf(cmp)))
+                               *string = cmp;
+                       } else if (eightbit) {
+                               unparseputc (ESC, pty);  /* escape */
+                       }
                }
                while (nbytes-- > 0)
                        unparseputc(*string++, pty);
@@ -606,6 +618,7 @@
 {
        int     pty     = screen->respond;
 
+       TRACE(("InputString %s\n", visibleChars(PAIRED_CHARS(string,0), nbytes)))
 #if OPT_TEK4014
        if(nbytes && screen->TekGIN) {
                TekEnqMouse(*string++);
Index: main.c
--- xterm-112+/main.c   Sun Jul 18 16:29:08 1999
+++ xterm-113/main.c    Sun Aug 15 19:06:33 1999
@@ -77,9 +77,12 @@
 
 #include <X11/Xos.h>
 #include <X11/cursorfont.h>
-#include <X11/Xaw/SimpleMenu.h>
 #include <X11/Xlocale.h>
 
+#if OPT_TOOLBAR
+#include <X11/Xaw/Form.h>
+#endif
+
 #include <pwd.h>
 #include <ctype.h>
 
@@ -205,6 +208,11 @@
 #define ATT
 #endif
 
+#ifdef __QNX__
+#define USE_POSIX_TERMIOS
+#include <ioctl.h>
+#endif
+
 #ifdef Lynx
 #define USE_SYSV_TERMIO
 #undef  HAS_LTCHARS
@@ -356,6 +364,13 @@
 
 #else /* } !MINIX { */
 
+#ifdef __QNX__
+#undef TIOCSLTC  /* <sgtty.h> conflicts with <termios.h> */
+#undef TIOCLSET
+#define USE_POSIX_WAIT
+#define ttyslot() 1
+#else
+
 #ifndef linux
 #ifndef USE_POSIX_TERMIOS
 #ifndef USE_SYSV_TERMIO
@@ -375,6 +390,8 @@
 #endif
 #endif /* !linux */
 
+#endif /* __QNX__ */
+
 #endif /* } MINIX */
 
 #endif /* } !SYSV */
@@ -532,7 +549,7 @@
 #endif
 
 #ifdef SYSV
-extern char *ptsname();
+extern char *ptsname(int);
 #endif
 
 #ifdef __cplusplus
@@ -569,22 +586,76 @@
 static char **command_to_exec = NULL;
 
 #ifdef USE_SYSV_TERMIO
+#ifndef ICRNL
+#include <sys/termio.h>
+#endif
+#if defined (__sgi) || (defined(__linux__) && defined(__sparc__))
+#undef TIOCLSET /* XXX why is this undef-ed again? */
+#endif
+#endif /* USE_SYSV_TERMIO */
+
+#define VAL_INITIAL_ERASE A2E(127)
+
+/* allow use of system default characters if defined and reasonable */
+#ifndef CBRK
+#define CBRK 0
+#endif
+#ifndef CDSUSP
+#define CDSUSP CONTROL('Y')
+#endif
+#ifndef CEOF
+#define CEOF CONTROL('D')
+#endif
+#ifndef CEOL
+#define CEOL 0
+#endif
+#ifndef CFLUSH
+#define CFLUSH CONTROL('O')
+#endif
+#ifndef CINTR
+#define CINTR 0177
+#endif
+#ifndef CKILL
+#define CKILL '@'
+#endif
+#ifndef CLNEXT
+#define CLNEXT CONTROL('V')
+#endif
+#ifndef CNUL
+#define CNUL 0
+#endif
+#ifndef CQUIT
+#define CQUIT CONTROL('\\')
+#endif
+#ifndef CRPRNT
+#define CRPRNT CONTROL('R')
+#endif
+#ifndef CSTART
+#define CSTART CONTROL('Q')
+#endif
+#ifndef CSTOP
+#define CSTOP CONTROL('S')
+#endif
+#ifndef CSUSP
+#define CSUSP CONTROL('Z')
+#endif
+#ifndef CSWTCH
+#define CSWTCH 0
+#endif
+#ifndef CWERASE
+#define CWERASE CONTROL('W')
+#endif
+
+#ifdef USE_SYSV_TERMIO
 /* The following structures are initialized in main() in order
 ** to eliminate any assumptions about the internal order of their
 ** contents.
 */
-#ifndef ICRNL
-#include <sys/termio.h>
-#endif
 static struct termio d_tio;
 #ifdef HAS_LTCHARS
 static struct ltchars d_ltc;
 #endif /* HAS_LTCHARS */
 
-#if defined (__sgi) || (defined(__linux__) && defined(__sparc__))
-#undef TIOCLSET /* XXX why is this undef-ed again? */
-#endif
-
 #ifdef TIOCLSET
 static unsigned int d_lmode;
 #endif /* TIOCLSET */
@@ -597,7 +668,7 @@
 };
 static struct  tchars d_tc = {
         CINTR, CQUIT, CSTART,
-        CSTOP, CEOF, CBRK,
+        CSTOP, CEOF, CBRK
 };
 static struct  ltchars d_ltc = {
         CSUSP, CDSUSP, CRPRNT,
@@ -613,46 +684,6 @@
 #endif /* sony */
 #endif /* USE_SYSV_TERMIO */
 
-#define VAL_INITIAL_ERASE 127
-
-/* allow use of system default characters if defined and reasonable */
-#ifndef CEOF
-#define CEOF     CONTROL('D')
-#endif
-#ifndef CSUSP
-#define CSUSP    CONTROL('Z')
-#endif
-#ifndef CQUIT
-#define CQUIT    CONTROL('\\')
-#endif
-#ifndef CEOL
-#define CEOL 0
-#endif
-#ifndef CNUL
-#define CNUL 0
-#endif
-#ifndef CSWTCH
-#define CSWTCH 0
-#endif
-#ifndef CLNEXT
-#define CLNEXT   CONTROL('V')
-#endif
-#ifndef CWERASE
-#define CWERASE  CONTROL('W')
-#endif
-#ifndef CRPRNT
-#define CRPRNT   CONTROL('R')
-#endif
-#ifndef CFLUSH
-#define CFLUSH   CONTROL('O')
-#endif
-#ifndef CSTOP
-#define CSTOP    CONTROL('S')
-#endif
-#ifndef CSTART
-#define CSTART   CONTROL('Q')
-#endif
-
 /*
  * SYSV has the termio.c_cc[V] and ltchars; BSD has tchars and ltchars;
  * SVR4 has only termio.c_cc, but it includes everything from ltchars.
@@ -1200,7 +1231,6 @@
 };
 int number_ourTopLevelShellArgs = 2;
 
-Widget toplevel;
 Bool waiting_for_initial_map;
 
 /*
@@ -1253,6 +1283,7 @@
 int
 main (int argc, char *argv[])
 {
+       Widget form_top, menu_top;
        register TScreen *screen;
        int mode;
 
@@ -1321,7 +1352,11 @@
 #ifdef TAB3
        d_tio.c_oflag = OPOST|ONLCR|TAB3;
 #else
+#ifdef ONLCR
        d_tio.c_oflag = OPOST|ONLCR;
+#else
+        d_tio.c_oflag = OPOST;
+#endif
 #endif
 #if defined(macII) || defined(ATT) || defined(CRAY) /* { */
        d_tio.c_cflag = B9600|CS8|CREAD|PARENB|HUPCL;
@@ -1705,37 +1740,23 @@
            break;
        }
 
-       XawSimpleMenuAddGlobalActions (app_con);
-       XtRegisterGrabAction (HandlePopupMenu, True,
-                             (ButtonPressMask|ButtonReleaseMask),
-                             GrabModeAsync, GrabModeAsync);
+       SetupMenus(toplevel, &form_top, &menu_top);
 
-        term = (XtermWidget) XtCreateManagedWidget(
-           "vt100", xtermWidgetClass, toplevel, NULL, 0);
+        term = (XtermWidget) XtVaCreateManagedWidget(
+               "vt100", xtermWidgetClass, form_top,
+#if OPT_TOOLBAR
+               XtNmenuBar,     menu_top,
+               XtNresizable,   True,
+               XtNfromVert,    menu_top,
+               XtNleft,        XawChainLeft,
+               XtNright,       XawChainRight,
+               XtNbottom,      XawChainBottom,
+#endif
+               0);
            /* this causes the initialize method to be called */
 
         screen = &term->screen;
 
-       if (screen->savelines < 0) screen->savelines = 0;
-
-       term->flags = 0;
-       if (!screen->jumpscroll) {
-           term->flags |= SMOOTHSCROLL;
-           update_jumpscroll();
-       }
-       if (term->misc.reverseWrap) {
-           term->flags |= REVERSEWRAP;
-           update_reversewrap();
-       }
-       if (term->misc.autoWrap) {
-           term->flags |= WRAPAROUND;
-           update_autowrap();
-       }
-       if (term->misc.re_verse != term->misc.re_verse0) {
-           term->flags |= REVERSE_VIDEO;
-           update_reversevideo();
-       }
-
        inhibit = 0;
 #ifdef ALLOWLOGGING
        if (term->misc.logInhibit)              inhibit |= I_LOG;
@@ -1745,18 +1766,6 @@
        if (term->misc.tekInhibit)              inhibit |= I_TEK;
 #endif
 
-       term->initflags = term->flags;
-
-       if (term->misc.appcursorDefault) {
-           term->keyboard.flags |= MODE_DECCKM;
-           update_appcursor();
-       }
-
-       if (term->misc.appkeypadDefault) {
-           term->keyboard.flags |= MODE_DECKPAM;
-           update_appkeypad();
-       }
-
 /*
  * Set title and icon name if not specified
  */
@@ -1946,8 +1955,8 @@
 get_pty (int *pty)
 {
 #if defined(__osf__) || (defined(__GLIBC__) && !defined(USE_USG_PTYS))
-    int tty;
-    return (openpty(pty, &tty, ttydev, NULL, NULL));
+       int tty;
+       return (openpty(pty, &tty, ttydev, NULL, NULL));
 #elif defined(SYSV) && defined(i386) && !defined(SVR4)
         /*
          The order of this code is *important*.  On SYSV/386 we want to open
@@ -1974,6 +1983,7 @@
          */
        if (pty_search(pty) == 0)
            return 0;
+       return 1;
 #elif defined(USE_USG_PTYS) || defined(__CYGWIN32__)
 #ifdef __GLIBC__ /* if __GLIBC__ and USE_USG_PTYS, we know glibc >= 2.1 */
        /* GNU libc 2 allows us to abstract away from having to know the
@@ -2003,29 +2013,25 @@
        strcpy(ttydev, ttyname(*pty));
        return 0;
 #elif defined(__sgi) && (OSMAJORVERSION >= 4)
-       {
-           char    *tty_name;
+       char    *tty_name;
 
-           tty_name = _getpty (pty, O_RDWR, 0622, 0);
-           if (tty_name == 0)
-               return 1;
-           strcpy (ttydev, tty_name);
-           return 0;
-       }
+       tty_name = _getpty (pty, O_RDWR, 0622, 0);
+       if (tty_name == 0)
+           return 1;
+       strcpy (ttydev, tty_name);
+       return 0;
 #elif defined(__convex__)
-       {
-           char *pty_name, *getpty();
+       char *pty_name, *getpty();
 
-           while ((pty_name = getpty()) != NULL) {
-               if ((*pty = open (pty_name, O_RDWR)) >= 0) {
-                   strcpy(ptydev, pty_name);
-                   strcpy(ttydev, pty_name);
-                   ttydev[5] = 't';
-                   return 0;
-               }
+       while ((pty_name = getpty()) != NULL) {
+           if ((*pty = open (pty_name, O_RDWR)) >= 0) {
+               strcpy(ptydev, pty_name);
+               strcpy(ttydev, pty_name);
+               ttydev[5] = 't';
+               return 0;
            }
-           return 1;
        }
+       return 1;
 #elif defined(USE_GET_PSEUDOTTY)
        return ((*pty = getpseudotty (&ttydev, &ptydev)) >= 0 ? 0 : 1);
 #elif (defined(__sgi) && (OSMAJORVERSION < 4)) || (defined(umips) && defined (SYSTYPE_SYSV))
@@ -2592,7 +2598,7 @@
                        } else {
                                initial_erase = *s;
                        }
-                       initial_erase &= 0xff;
+                       initial_erase = CharOf(initial_erase);
                }
        }
 #endif
@@ -2637,7 +2643,7 @@
                 * now in child process
                 */
                TRACE_CHILD
-#if defined(_POSIX_SOURCE) || defined(SVR4) || defined(__convex__) || defined(SCO325)
+#if defined(_POSIX_SOURCE) || defined(SVR4) || defined(__convex__) || defined(SCO325) || defined(__QNX__)
                int pgrp = setsid();
 #else
                int pgrp = getpid();
@@ -2737,6 +2743,10 @@
                (void) setpgrp();
 #endif
 #endif /* USE_SYSV_PGRP */
+
+#if defined(__QNX__)
+               qsetlogin( getlogin(), ttydev );
+#endif
                while (1) {
 #if defined(TIOCNOTTY) && !((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
                        if (!no_dev_tty && (tty = open ("/dev/tty", O_RDWR)) >= 0) {
@@ -2868,7 +2878,9 @@
                    tio.c_oflag &=
                     ~(OCRNL|ONLRET|NLDLY|CRDLY|TABDLY|BSDLY|VTDLY|FFDLY);
 #endif /* USE_POSIX_TERMIOS */
+#ifdef ONLCR
                    tio.c_oflag |= ONLCR;
+#endif /* ONLCR */
 #ifdef OPOST
                    tio.c_oflag |= OPOST;
 #endif /* OPOST */
@@ -3223,18 +3235,22 @@
 #endif
 #endif /* !USE_SYSV_PGRP */
 
+#if defined(__QNX__)
+               tcsetpgrp( 0, pgrp /*setsid()*/ );
+#endif
+
 #endif /* AMOEBA */
 
 #ifdef Lynx
-       {
-       struct termio   t;
-       if (ioctl(0, TCGETA, &t) >= 0)
-       {
-               /* this gets lost somewhere on our way... */
-               t.c_oflag |= OPOST;
-               ioctl(0, TCSETA, &t);
-       }
-       }
+               {
+               struct termio   t;
+               if (ioctl(0, TCGETA, &t) >= 0)
+               {
+                       /* this gets lost somewhere on our way... */
+                       t.c_oflag |= OPOST;
+                       ioctl(0, TCSETA, &t);
+               }
+               }
 #endif
 
 #ifdef UTMP
@@ -4502,6 +4518,43 @@
                 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   /* e8 - ef */
                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   /* f0 - f7 */
                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};  /* f8 - ff */
-    return ebcdic_control_chars[c & 0xff];
+    return ebcdic_control_chars[CharOf(c)];
+}
+#endif
+
+#if defined(__QNX__)
+#include <sys/types.h>
+#include <sys/proc_msg.h>
+#include <sys/kernel.h>
+#include <string.h>
+#include <errno.h>
+
+struct _proc_session ps;
+struct _proc_session_reply rps;
+
+int qsetlogin( char *login, char *ttyname )
+{
+       int v = getsid( getpid() );
+
+       memset( &ps, 0, sizeof(ps) );
+       memset( &rps, 0, sizeof(rps) );
+
+       ps.type = _PROC_SESSION;
+       ps.subtype = _PROC_SUB_ACTION1;
+       ps.sid = v;
+       strcpy( ps.name, login );
+
+       Send( 1, &ps, &rps, sizeof(ps), sizeof(rps) );
+
+       if ( rps.status < 0 )
+               return( rps.status );
+
+       ps.type = _PROC_SESSION;
+       ps.subtype = _PROC_SUB_ACTION2;
+       ps.sid = v;
+       sprintf( ps.name, "//%d%s", getnid(), ttyname );
+       Send( 1, &ps, &rps, sizeof(ps), sizeof(rps) );
+
+       return( rps.status );
 }
 #endif
Index: menu.c
--- xterm-112+/menu.c   Sun Jun 13 17:55:49 1999
+++ xterm-113/menu.c    Sun Aug 15 19:49:36 1999
@@ -57,9 +57,17 @@
 #include <X11/StringDefs.h>
 #include <X11/Shell.h>
 #include <X11/Xmu/CharSet.h>
+
 #include <X11/Xaw/SimpleMenu.h>
+#include <X11/Xaw/Box.h>
 #include <X11/Xaw/SmeBSB.h>
 #include <X11/Xaw/SmeLine.h>
+
+#if OPT_TOOLBAR
+#include <X11/Xaw/MenuButton.h>
+#include <X11/Xaw/Form.h>
+#endif
+
 #include <stdio.h>
 #include <signal.h>
 
@@ -263,28 +271,155 @@
     { "tekhide",       do_tekhide,     NULL }};
 #endif
 
-static Widget create_menu (
-               XtermWidget xtw,
-               Widget toplevelw,
-               char *name,
-               struct _MenuEntry *entries,
-               int nentries);
+typedef struct {
+    char *internal_name;
+    MenuEntry *entry_list;
+    Cardinal entry_len;
+} MenuHeader;
+
+    /* This table is ordered to correspond with MenuIndex */
+static MenuHeader menu_names[] = {
+    { "mainMenu", mainMenuEntries, XtNumber(mainMenuEntries) },
+    { "vtMenu",   vtMenuEntries,   XtNumber(vtMenuEntries)   },
+    { "fontMenu", fontMenuEntries, XtNumber(fontMenuEntries) },
+#if OPT_TEK4014
+    { "tekMenu",  tekMenuEntries,  XtNumber(tekMenuEntries)  },
+#endif
+    { 0,          0,               0 },
+};
+
+/*
+ * FIXME:  These are global data rather than in the xterm widget because they
+ * are initialized before the widget is created.
+ */
+typedef struct {
+    Widget w;
+    Cardinal entries;
+} MenuList;
+
+static MenuList vt_shell[NUM_POPUP_MENUS];
 
-static void handle_send_signal (Widget gw, int sig);
+#if OPT_TEK4014 && OPT_TOOLBAR
+static MenuList tek_shell[NUM_POPUP_MENUS];
+#endif
+
+/*
+ * Returns a pointer to the MenuList entry that matches the popup menu.
+ */
+static MenuList *
+select_menu (Widget w GCC_UNUSED, MenuIndex num)
+{
+#if OPT_TEK4014 && OPT_TOOLBAR
+    while (w != 0) {
+       if (w == tekshellwidget) {
+           return &tek_shell[num];
+       }
+       w = XtParent(w);
+    }
+#endif
+    return &vt_shell[num];
+}
 
-extern Widget toplevel;
+/*
+ * Returns a pointer to the given popup menu shell
+ */
+static Widget
+obtain_menu (Widget w, MenuIndex num)
+{
+    return select_menu(w, num)->w;
+}
 
+/*
+ * Returns the number of entries in the given popup menu shell
+ */
+static Cardinal
+sizeof_menu (Widget w, MenuIndex num)
+{
+    return select_menu(w, num)->entries;
+}
 
 /*
- * we really want to do these dynamically
+ * create_menu - create a popup shell and stuff the menu into it.
  */
+
+static Widget
+create_menu (Widget w, XtermWidget xtw, MenuIndex num)
+{
+    static XtCallbackRec cb[2] = { { NULL, NULL }, { NULL, NULL }};
+    static Arg arg = { XtNcallback, (XtArgVal) cb };
+
+    Widget m;
+    TScreen *screen = &xtw->screen;
+    MenuHeader *data = &menu_names[num]; 
+    MenuList *list = select_menu(w, num);
+    struct _MenuEntry *entries = data->entry_list;
+    int nentries = data->entry_len;
+
+    if (screen->menu_item_bitmap == None) {
+       /*
+        * we really want to do these dynamically
+        */
 #define check_width 9
 #define check_height 8
-static unsigned char check_bits[] = {
-   0x00, 0x01, 0x80, 0x01, 0xc0, 0x00, 0x60, 0x00,
-   0x31, 0x00, 0x1b, 0x00, 0x0e, 0x00, 0x04, 0x00
-};
+       static unsigned char check_bits[] = {
+          0x00, 0x01, 0x80, 0x01, 0xc0, 0x00, 0x60, 0x00,
+          0x31, 0x00, 0x1b, 0x00, 0x0e, 0x00, 0x04, 0x00
+       };
 
+       screen->menu_item_bitmap =
+       XCreateBitmapFromData (XtDisplay(xtw),
+                               RootWindowOfScreen(XtScreen(xtw)),
+                               (char *)check_bits, check_width, check_height);
+    }
+
+#if OPT_TOOLBAR
+    m = list->w;
+    if (m == 0) {
+       return m;
+    }
+#else
+    m = XtCreatePopupShell (data->internal_name, simpleMenuWidgetClass, toplevel, NULL, 0);
+    list->w = m;
+#endif
+    list->entries = nentries;
+
+    for (; nentries > 0; nentries--, entries++) {
+       cb[0].callback = (XtCallbackProc) entries->function;
+       cb[0].closure = (caddr_t) entries->name;
+       entries->widget = XtCreateManagedWidget (entries->name,
+                                                (entries->function ?
+                                                 smeBSBObjectClass :
+                                                 smeLineObjectClass), m,
+                                                &arg, (Cardinal) 1);
+    }
+
+    /* do not realize at this point */
+    return m;
+}
+
+static int indexOfMenu(String menuName)
+{
+    int me;
+    switch (*menuName) {
+    case 'm':
+       me = mainMenu;
+       break;
+    case 'v':
+       me = vtMenu;
+       break;
+    case 'f':
+       me = fontMenu;
+       break;
+#if OPT_TEK4014
+    case 't':
+       me = tekMenu;
+       break;
+#endif
+    default:
+       me = -1;
+    }
+    return (me);
+}
 
 /*
  * public interfaces
@@ -298,18 +433,31 @@
        Cardinal *param_count)      /* 0 or 1 */
 {
     TScreen *screen = &term->screen;
+    int me;
+    Boolean created = False;
+    Widget mw;
 
     if (*param_count != 1) {
        Bell(XkbBI_MinorError,0);
        return False;
     }
 
-    switch (params[0][0]) {
-      case 'm':
-       if (!screen->mainMenu) {
-           screen->mainMenu = create_menu (term, toplevel, "mainMenu",
-                                           mainMenuEntries,
-                                           XtNumber(mainMenuEntries));
+    if ((me = indexOfMenu(params[0])) < 0) {
+       Bell(XkbBI_MinorError,0);
+       return False;
+    }
+
+    if ((mw = obtain_menu(w, me)) == 0
+     || sizeof_menu(w, me) == 0) {
+       mw = create_menu (w, term, me);
+       created = (mw != 0);
+    }
+    if (mw == 0)
+       return False;
+
+    switch (me) {
+      case mainMenu:
+       if (created) {
            update_securekbd();
            update_allowsends();
            update_logging();
@@ -318,28 +466,25 @@
            update_num_lock();
            update_sun_kbd();
            if (screen->terminal_id < 200) {
-               set_sensitivity (screen->mainMenu,
+               set_sensitivity (mw,
                                 mainMenuEntries[mainMenu_8bit_ctrl].widget,
                                 FALSE);
            }
            update_sun_fkeys();
            update_hp_fkeys();
 #if !defined(SIGTSTP) || defined(AMOEBA)
-           set_sensitivity (screen->mainMenu,
+           set_sensitivity (mw,
                             mainMenuEntries[mainMenu_suspend].widget, FALSE);
 #endif
 #if !defined(SIGCONT) || defined(AMOEBA)
-           set_sensitivity (screen->mainMenu,
+           set_sensitivity (mw,
                             mainMenuEntries[mainMenu_continue].widget, FALSE);
 #endif
        }
        break;
 
-      case 'v':
-       if (!screen->vtMenu) {
-           screen->vtMenu = create_menu (term, toplevel, "vtMenu",
-                                         vtMenuEntries,
-                                         XtNumber(vtMenuEntries));
+      case vtMenu:
+       if (created) {
            update_scrollbar();
            update_jumpscroll();
            update_reversevideo();
@@ -359,7 +504,7 @@
            update_titeInhibit();
 #ifndef NO_ACTIVE_ICON
            if (!screen->fnt_icon || !screen->iconVwin.window) {
-               set_sensitivity (screen->vtMenu,
+               set_sensitivity (mw,
                                 vtMenuEntries[vtMenu_activeicon].widget,
                                 FALSE);
            }
@@ -369,45 +514,36 @@
        }
        break;
 
-      case 'f':
-       if (!screen->fontMenu) {
-           screen->fontMenu = create_menu (term, toplevel, "fontMenu",
-                                           fontMenuEntries,
-                                           XtNumber(fontMenuEntries));
+      case fontMenu:
+       if (created) {
            set_menu_font (True);
-           set_sensitivity (screen->fontMenu,
+           set_sensitivity (mw,
                             fontMenuEntries[fontMenu_fontescape].widget,
                             (screen->menu_font_names[fontMenu_fontescape]
                              ? TRUE : FALSE));
            update_font_doublesize();
            update_font_loadable();
 #if OPT_DEC_SOFTFONT   /* FIXME: not implemented */
-           set_sensitivity (screen->fontMenu,
+           set_sensitivity (mw,
                             fontMenuEntries[fontMenu_font_loadable].widget,
                             FALSE);
 #endif
        }
        FindFontSelection (NULL, True);
-       set_sensitivity (screen->fontMenu,
+       set_sensitivity (mw,
                         fontMenuEntries[fontMenu_fontsel].widget,
                         (screen->menu_font_names[fontMenu_fontsel]
                          ? TRUE : FALSE));
        break;
 
 #if OPT_TEK4014
-      case 't':
-       if (!screen->tekMenu) {
-           screen->tekMenu = create_menu (term, toplevel, "tekMenu",
-                                          tekMenuEntries,
-                                          XtNumber(tekMenuEntries));
+      case tekMenu:
+       if (created) {
            set_tekfont_menu_item (screen->cur.fontsize, TRUE);
+           update_vtshow();
        }
        break;
 #endif
-
-      default:
-       Bell(XkbBI_MinorError,0);
-       return False;
     }
 
     return True;
@@ -429,6 +565,9 @@
        Cardinal *param_count)      /* 0 or 1 */
 {
     if (domenu (w, event, params, param_count)) {
+#if OPT_TOOLBAR
+       w = select_menu(w, mainMenu)->w;
+#endif
        XtCallActionProc (w, "XawPositionSimpleMenu", event, params, 1);
        XtCallActionProc (w, "MenuPopup", event, params, 1);
     }
@@ -439,46 +578,6 @@
  * private interfaces - keep out!
  */
 
-/*
- * create_menu - create a popup shell and stuff the menu into it.
- */
-
-static Widget
-create_menu (
-       XtermWidget xtw,
-       Widget toplevelw,
-       char *name,
-       struct _MenuEntry *entries,
-       int nentries)
-{
-    Widget m;
-    TScreen *screen = &xtw->screen;
-    static XtCallbackRec cb[2] = { { NULL, NULL }, { NULL, NULL }};
-    static Arg arg = { XtNcallback, (XtArgVal) cb };
-
-    if (screen->menu_item_bitmap == None) {
-       screen->menu_item_bitmap =
-         XCreateBitmapFromData (XtDisplay(xtw),
-                                RootWindowOfScreen(XtScreen(xtw)),
-                                (char *)check_bits, check_width, check_height);
-    }
-
-    m = XtCreatePopupShell (name, simpleMenuWidgetClass, toplevelw, NULL, 0);
-
-    for (; nentries > 0; nentries--, entries++) {
-       cb[0].callback = (XtCallbackProc) entries->function;
-       cb[0].closure = (caddr_t) entries->name;
-       entries->widget = XtCreateManagedWidget (entries->name,
-                                                (entries->function ?
-                                                 smeBSBObjectClass :
-                                                 smeLineObjectClass), m,
-                                                &arg, (Cardinal) 1);
-    }
-
-    /* do not realize at this point */
-    return m;
-}
-
 /* ARGSUSED */
 static void handle_send_signal (Widget gw GCC_UNUSED, int sig)
 {
@@ -495,7 +594,7 @@
 /* ARGSUSED */
 void DoSecureKeyboard (Time tp GCC_UNUSED)
 {
-    do_securekbd (term->screen.mainMenu, (XtPointer)0, (XtPointer)0);
+    do_securekbd (vt_shell[mainMenu].w, (XtPointer)0, (XtPointer)0);
 }
 
 static void do_securekbd (
@@ -511,7 +610,7 @@
        ReverseVideo (term);
        screen->grabbedKbd = FALSE;
     } else {
-       if (XGrabKeyboard (screen->display, term->core.window,
+       if (XGrabKeyboard (screen->display, XtWindow(term),
                           True, GrabModeAsync, GrabModeAsync, now)
            != GrabSuccess) {
            Bell(XkbBI_MinorError, 100);
@@ -955,7 +1054,7 @@
     TScreen *screen = &term->screen;
 
     if (screen->iconVwin.window) {
-       Widget shell = term->core.parent;
+       Widget shell = XtParent(term);
        term->misc.active_icon = !term->misc.active_icon;
        XtVaSetValues(shell, XtNiconWindow,
                      term->misc.active_icon ? screen->iconVwin.window : None,
@@ -1745,4 +1844,143 @@
                menuArgs.value = (XtArgVal) (val);
                XtSetValues (mi, &menuArgs, (Cardinal) 1);
        }
+}
+
+#if OPT_TOOLBAR
+/*
+ * In the normal (non-toolbar) configuration, the xterm widget covers almost
+ * all of the window.  With a toolbar, there's a relatively large area that
+ * the user would expect to enter keystrokes since the program can get the
+ * focus.
+ */
+static char menu_trans[] =
+"\
+                ~Meta <KeyPress>:insert-seven-bit() \n\
+                 Meta <KeyPress>:insert-eight-bit() \n\
+";
+
+XtActionsRec menu_actions[] = {
+    { "insert",                        HandleKeyPressed }, /* alias */
+    { "insert-eight-bit",      HandleEightBitKeyPressed },
+    { "insert-seven-bit",      HandleKeyPressed },
+    { "secure",                HandleSecure },
+    { "string",                        HandleStringEvent },
+};
+
+/*
+ * The normal style of xterm popup menu delays initialization until the menu is
+ * first requested.  When using a toolbar, we can use the same initialization,
+ * though on the first popup there will be a little geometry layout jitter,
+ * since the menu is already managed when this callback is invoked.
+ */
+static void InitPopup (
+       Widget gw,
+       XtPointer closure GCC_UNUSED,
+       XtPointer data GCC_UNUSED)
+{
+       String params[2];
+       Cardinal count = 1;
+
+       params[0] = closure;
+       params[1] = 0;
+       TRACE(("InitPopup(%s)\n", params[0]))
+
+       domenu(gw, (XEvent *)0, params, &count);
+
+       XtRemoveCallback(gw, XtNpopupCallback, InitPopup, closure);
+}
+
+static void SetupShell(Widget *menus, MenuList *shell, Widget *menu_tops, int n, int m)
+{
+       char temp[80];
+       char *external_name = 0;
+
+       shell[n].w = XtVaCreatePopupShell (menu_names[n].internal_name,
+                       simpleMenuWidgetClass,
+                       *menus,
+                       XtNgeometry,            NULL,
+                       NULL);
+
+       XtAddCallback(shell[n].w, XtNpopupCallback, InitPopup, menu_names[n].internal_name);
+       XtVaGetValues(shell[n].w,
+                       XtNlabel,       &external_name,
+                       NULL);
+
+       TRACE(("...SetupShell(%s) -> %s -> %#lx\n",
+               menu_names[n].internal_name,
+               external_name,
+               (long)shell[n].w))
+
+       sprintf(temp, "%sButton", menu_names[n].internal_name);
+       menu_tops[n] = XtVaCreateManagedWidget (temp,
+                       menuButtonWidgetClass,
+                       *menus,
+                       XtNfromHoriz,   (m >= 0) ? menu_tops[m] : 0,
+                       XtNmenuName,    menu_names[n].internal_name,
+                       XtNlabel,       external_name,
+                       NULL);
+}
+
+#endif
+
+void
+SetupMenus(Widget shell, Widget *forms, Widget *menus)
+{
+#if OPT_TOOLBAR
+       int n;
+       Widget menu_tops[NUM_POPUP_MENUS];
+#endif
+
+       TRACE(("SetupMenus(%s)\n", shell == toplevel ? "vt100" : "tek4014"))
+
+       if (shell == toplevel) {
+           XawSimpleMenuAddGlobalActions (app_con);
+           XtRegisterGrabAction (HandlePopupMenu, True,
+                                 (ButtonPressMask|ButtonReleaseMask),
+                                 GrabModeAsync, GrabModeAsync);
+       }
+#if OPT_TOOLBAR
+       *forms = XtVaCreateManagedWidget(
+                               "form",
+                               formWidgetClass,        shell,
+                               NULL);
+
+       XtAppAddActions(app_con, menu_actions, XtNumber(menu_actions));
+       XtAugmentTranslations(*forms, XtParseTranslationTable(menu_trans));
+
+       /*
+        * Set a nominal value for the preferred pane size, which lets the
+        * buttons determine the actual height of the menu bar.  We don't show
+        * the grip, because it's too easy to make the toolbar look bad that
+        * way.
+        */
+       *menus = XtVaCreateManagedWidget(
+                               "menubar",
+                               boxWidgetClass,         *forms,
+                               XtNorientation,         XtorientHorizontal,
+                               XtNtop,                 XawChainTop,
+                               XtNleft,                XawChainLeft,
+                               XtNright,               XawChainRight,
+                               NULL);
+
+       if (shell == toplevel) {        /* vt100 */
+           for (n = mainMenu; n <= fontMenu; n++) {
+               SetupShell(menus, vt_shell, menu_tops, n, n-1);
+           }
+       }
+#if OPT_TEK4014
+       else {                  /* tek4014 */
+           SetupShell(menus, tek_shell, menu_tops, mainMenu, -1);
+           SetupShell(menus, tek_shell, menu_tops, tekMenu, mainMenu);
+       }
+#endif
+
+#else
+       *forms = shell;
+       *menus = shell;
+#endif
+
+       TRACE(("...shell=%#lx\n", (long) shell))
+       TRACE(("...forms=%#lx\n", (long) *forms))
+       TRACE(("...menus=%#lx\n", (long) *menus))
 }
Index: menu.h
--- xterm-112+/menu.h   Sun Jun 13 17:55:49 1999
+++ xterm-113/menu.h    Sat Jul 24 08:55:59 1999
@@ -118,6 +118,7 @@
 extern void HandleVisibility       PROTO_XT_ACTIONS_ARGS;
 
 extern void DoSecureKeyboard (Time tp);
+extern void SetupMenus (Widget shell, Widget *forms, Widget *menus);
 
 /*
  * The following definitions MUST match the order of entries given in
Index: misc.c
--- xterm-112+/misc.c   Sun Jul 18 16:29:08 1999
+++ xterm-113/misc.c    Sun Aug 15 21:27:21 1999
@@ -94,7 +94,6 @@
 #endif
 
 extern char **environ;         /* used in 'Setenv()' */
-extern Widget toplevel;                /* used in 'ChangeGroup()' */
 
 #if OPT_TEK4014
 #define OUR_EVENT(event,Type) \
@@ -304,7 +303,7 @@
            VTbuffer.cnt += (need - used);
            VTbuffer.ptr -= used;
            for (n = 0; n < need; n++)
-               VTbuffer.ptr[n] = (value[n] & 0xff);
+               VTbuffer.ptr[n] = CharOf(value[n]);
        }
     }
 }
@@ -1283,7 +1282,7 @@
                                if (term->flags & INVISIBLE)
                                        strcat(reply, ";8");
                                if_OPT_256_COLORS(screen,{
-                               if (term->flags & FG_COLOR)
+                               if (term->flags & FG_COLOR) {
                                        if (term->cur_foreground >= 16)
                                                sprintf(reply+strlen(reply),
                                                        ";38;5;%d", term->cur_foreground);
@@ -1294,7 +1293,8 @@
                                                        term->cur_foreground >= 8 ?
                                                        term->cur_foreground - 8 :
                                                        term->cur_foreground);
-                               if (term->flags & BG_COLOR)
+                               }
+                               if (term->flags & BG_COLOR) {
                                        if (term->cur_background >= 16)
                                                sprintf(reply+strlen(reply),
                                                        ";48;5;%d", term->cur_foreground);
@@ -1305,6 +1305,7 @@
                                                        term->cur_background >= 8 ?
                                                        term->cur_background - 8 :
                                                        term->cur_background);
+                               }
                                })
                                if_OPT_ISO_TRADITIONAL_COLORS(screen,{
                                if (term->flags & FG_COLOR)
@@ -1461,7 +1462,7 @@
     ChangeGroup( XtNtitle, (XtArgVal)name );
 }
 
-#define ustrlen(s) strlen((char *)(s))
+#define Strlen(s) strlen((char *)(s))
 
 void
 ChangeXprop(register char *buf)
@@ -1482,7 +1483,7 @@
        text_prop.value = pchEndPropName+1;
        text_prop.encoding = XA_STRING;
        text_prop.format = 8;
-       text_prop.nitems = ustrlen(text_prop.value);
+       text_prop.nitems = Strlen(text_prop.value);
        XSetTextProperty(dpy,w,&text_prop,aprop);
     }
 }
@@ -1833,6 +1834,7 @@
 #if OPT_TEK4014
 static void withdraw_window (Display *dpy, Window w, int scr)
 {
+    TRACE(("withdraw_window %#lx\n", (long)w))
     (void) XmuUpdateMapHints (dpy, w, NULL);
     XWithdrawWindow (dpy, w, scr);
     return;
@@ -1844,10 +1846,15 @@
 {
     register TScreen *screen = &term->screen;
 
+    TRACE(("set_vt_visibility(%d)\n", on))
     if (on) {
        if (!screen->Vshow && term) {
            VTInit ();
-           XtMapWidget (term->core.parent);
+           XtMapWidget (XtParent(term));
+#if OPT_TOOLBAR
+           /* we need both of these during initialization */
+           XtMapWidget (SHELL_OF(term));
+#endif
            screen->Vshow = TRUE;
        }
     }
@@ -1855,7 +1862,7 @@
     else {
        if (screen->Vshow && term) {
            withdraw_window (XtDisplay (term),
-                            XtWindow(XtParent(term)),
+                            XtWindow(SHELL_OF(term)),
                             XScreenNumberOfScreen(XtScreen(term)));
            screen->Vshow = FALSE;
        }
@@ -1875,9 +1882,11 @@
 void set_tek_visibility (Boolean on)
 {
     register TScreen *screen = &term->screen;
+
+    TRACE(("set_tek_visibility(%d)\n", on))
     if (on) {
        if (!screen->Tshow && (tekWidget || TekInit())) {
-           Widget tekParent = tekWidget->core.parent;
+           Widget tekParent = SHELL_OF(tekWidget);
            XtRealizeWidget (tekParent);
            XtMapWidget (tekParent);
            XtOverrideTranslations(tekParent,
@@ -1891,7 +1900,7 @@
     } else {
        if (screen->Tshow && tekWidget) {
            withdraw_window (XtDisplay (tekWidget),
-                            XtWindow(XtParent(tekWidget)),
+                            XtWindow(SHELL_OF(tekWidget)),
                             XScreenNumberOfScreen(XtScreen(tekWidget)));
            screen->Tshow = FALSE;
        }
Index: os2main.c
--- xterm-112+/os2main.c        Mon Jul 12 13:43:45 1999
+++ xterm-113/os2main.c Sun Aug 15 15:26:23 1999
@@ -74,11 +74,14 @@
 
 #include <X11/Xos.h>
 #include <X11/cursorfont.h>
-#include <X11/Xaw/SimpleMenu.h>
 #ifdef I18N
 #include <X11/Xlocale.h>
 #endif
 
+#if OPT_TOOLBAR
+#include <X11/Xaw/Form.h>
+#endif
+
 #include <pwd.h>
 #include <ctype.h>
 
@@ -102,11 +105,8 @@
 
 #include <signal.h>
 
-extern char *strindex ();
-
 static SIGNAL_T reapchild (int n);
 static char *base_name (char *name);
-static int pty_search (int *pty);
 static int remove_termcap_entry (char *buf, char *str);
 static int spawn (void);
 static void get_terminal (void);
@@ -652,7 +652,6 @@
 };
 int number_ourTopLevelShellArgs = 2;
 
-Widget toplevel;
 Bool waiting_for_initial_map;
 
 /*
@@ -701,9 +700,6 @@
 };
 
 Atom wm_delete_window;
-extern fd_set Select_mask;
-extern fd_set X_mask;
-extern fd_set pty_mask;
 
 #ifdef __EMX__
 
@@ -825,6 +821,7 @@
 int
 main (int argc, char **argv, char **envp)
 {
+       Widget form_top, menu_top;
        register TScreen *screen;
        int mode;
        extern char **environ;
@@ -997,37 +994,23 @@
            break;
        }
 
-       XawSimpleMenuAddGlobalActions (app_con);
-       XtRegisterGrabAction (HandlePopupMenu, True,
-                             (ButtonPressMask|ButtonReleaseMask),
-                             GrabModeAsync, GrabModeAsync);
+       SetupMenus(toplevel, &form_top, &menu_top);
 
-        term = (XtermWidget) XtCreateManagedWidget(
-           "vt100", xtermWidgetClass, toplevel, NULL, 0);
+        term = (XtermWidget) XtVaCreateManagedWidget(
+               "vt100", xtermWidgetClass, form_top,
+#if OPT_TOOLBAR
+               XtNmenuBar,     menu_top,
+               XtNresizable,   True,
+               XtNfromVert,    menu_top,
+               XtNleft,        XawChainLeft,
+               XtNright,       XawChainRight,
+               XtNbottom,      XawChainBottom,
+#endif
+               0);
            /* this causes the initialize method to be called */
 
         screen = &term->screen;
 
-       if (screen->savelines < 0) screen->savelines = 0;
-
-       term->flags = 0;
-       if (!screen->jumpscroll) {
-           term->flags |= SMOOTHSCROLL;
-           update_jumpscroll();
-       }
-       if (term->misc.reverseWrap) {
-           term->flags |= REVERSEWRAP;
-           update_reversewrap();
-       }
-       if (term->misc.autoWrap) {
-           term->flags |= WRAPAROUND;
-           update_autowrap();
-       }
-       if (term->misc.re_verse != term->misc.re_verse0) {
-           term->flags |= REVERSE_VIDEO;
-           update_reversevideo();
-       }
-
        inhibit = 0;
 #ifdef ALLOWLOGGING
        if (term->misc.logInhibit)              inhibit |= I_LOG;
@@ -1037,18 +1020,6 @@
        if (term->misc.tekInhibit)              inhibit |= I_TEK;
 #endif
 
-       term->initflags = term->flags;
-
-       if (term->misc.appcursorDefault) {
-           term->keyboard.flags |= MODE_DECCKM;
-           update_appcursor();
-       }
-
-       if (term->misc.appkeypadDefault) {
-           term->keyboard.flags |= MODE_DECKPAM;
-           update_appkeypad();
-       }
-
 /*
  * Set title and icon name if not specified
  */
@@ -1166,19 +1137,6 @@
        return(cp ? cp + 1 : name);
 }
 
-/* This function opens up a pty master and stuffs its value into pty.
- * If it finds one, it returns a value of 0.  If it does not find one,
- * it returns a value of !0.  This routine is designed to be re-entrant,
- * so that if a pty master is found and later, we find that the slave
- * has problems, we can re-enter this function and get another one.
- */
-
-static int
-get_pty (int *pty)
-{
-       return pty_search(pty);
-}
-
 /*
  * Called from get_pty to iterate over likely pseudo terminals
  * we might allocate.  Used on those systems that do not have
@@ -1205,6 +1163,19 @@
                }
        }
        return 1;
+}
+
+/* This function opens up a pty master and stuffs its value into pty.
+ * If it finds one, it returns a value of 0.  If it does not find one,
+ * it returns a value of !0.  This routine is designed to be re-entrant,
+ * so that if a pty master is found and later, we find that the slave
+ * has problems, we can re-enter this function and get another one.
+ */
+
+static int
+get_pty (int *pty)
+{
+       return pty_search(pty);
 }
 
 static void
Index: ptyx.h
--- xterm-112+/ptyx.h   Sun Jul 18 16:29:08 1999
+++ xterm-113/ptyx.h    Sun Aug 15 19:55:55 1999
@@ -205,6 +205,8 @@
 typedef unsigned char Char;            /* to support 8 bit chars */
 typedef Char **ScrnBuf;
 
+#define CharOf(n) ((n) & 0xff)
+
 /*
  * ANSI emulation.
  */
@@ -220,7 +222,6 @@
 #define XPOUND 0x1E                    /* internal mapping for '#'     */
 #define US     0x1F
 #define        DEL     0x7F
-#define HTS     ('H'+0x40)
 #define        RI      0x8D
 #define        SS2     0x8E
 #define        SS3     0x8F
@@ -436,6 +437,10 @@
 #define OPT_TEK4014     1 /* true if we're using tek4014 emulation */
 #endif
 
+#ifndef OPT_TOOLBAR
+#define OPT_TOOLBAR    0 /* true if xterm supports toolbar menus */
+#endif
+
 #ifndef OPT_TRACE
 #define OPT_TRACE       0 /* true if we're using debugging traces */
 #endif
@@ -597,6 +602,14 @@
 
 /***====================================================================***/
 
+#if OPT_TOOLBAR
+#define SHELL_OF(widget) XtParent(XtParent(widget))
+#else
+#define SHELL_OF(widget) XtParent(widget)
+#endif
+
+/***====================================================================***/
+
 #if OPT_VT52_MODE
 #define if_OPT_VT52_MODE(screen, code) if(screen->ansi_level == 0) code
 #else
@@ -722,6 +735,16 @@
 #define DoSM(code,value) screen->save_modes[code] = value
 #define DoRM(code,value) value = screen->save_modes[code]
 
+       /* index into vt_shell[] or tek_shell[] */
+typedef enum {
+       mainMenu,
+       vtMenu,
+       fontMenu,
+       tekMenu
+} MenuIndex;
+
+#define NUM_POPUP_MENUS 4
+
 typedef struct {
        Boolean         saved;
        int             row;
@@ -738,19 +761,32 @@
 } SavedCursor;
 
 struct _vtwin {
-       Window  window;                 /* X window id                  */
-       int     width;                  /* width of columns             */
-       int     height;                 /* height of rows               */
-       int     fullwidth;              /* full width of window         */
-       int     fullheight;             /* full height of window        */
-       int     f_width;                /* width of fonts in pixels     */
-       int     f_height;               /* height of fonts in pixels    */
-       int     scrollbar;              /* if > 0, width of scrollbar, and
-                                               scrollbar is showing    */
-       GC      normalGC;               /* normal painting              */
-       GC      reverseGC;              /* reverse painting             */
-       GC      normalboldGC;           /* normal painting, bold font   */
-       GC      reverseboldGC;          /* reverse painting, bold font  */
+       Window          window;         /* X window id                  */
+       int             width;          /* width of columns             */
+       int             height;         /* height of rows               */
+       int             fullwidth;      /* full width of window         */
+       int             fullheight;     /* full height of window        */
+       int             f_width;        /* width of fonts in pixels     */
+       int             f_height;       /* height of fonts in pixels    */
+       int             scrollbar;      /* if > 0, width of scrollbar,  */
+                                       /* and scrollbar is showing     */
+       GC              normalGC;       /* normal painting              */
+       GC              reverseGC;      /* reverse painting             */
+       GC              normalboldGC;   /* normal painting, bold font   */
+       GC              reverseboldGC;  /* reverse painting, bold font  */
+#if OPT_TOOLBAR
+       Widget          menu_bar;       /* toolbar, if initialized      */
+       Dimension       menu_height;    /* ...and its height            */
+#endif
+};
+
+struct _tekwin {
+       Window          window;         /* X window id                  */
+       int             width;          /* width of columns             */
+       int             height;         /* height of rows               */
+       int             fullwidth;      /* full width of window         */
+       int             fullheight;     /* full height of window        */
+       double          tekscale;       /* scale factor Tek -> vs100    */
 };
 
 typedef struct {
@@ -823,12 +859,13 @@
 
 /* VT window parameters */
        Boolean         Vshow;          /* VT window showing            */
-       struct _vtwin fullVwin;
+       struct _vtwin   fullVwin;
 #ifndef NO_ACTIVE_ICON
-       struct _vtwin iconVwin;
-       struct _vtwin *whichVwin;
+       struct _vtwin   iconVwin;
+       struct _vtwin * whichVwin;
 #endif /* NO_ACTIVE_ICON */
-       Cursor pointer_cursor;          /* pointer cursor in window     */
+
+       Cursor  pointer_cursor;         /* pointer cursor in window     */
 
        String  answer_back;            /* response to ENQ              */
        String  printer_command;        /* pipe/shell command string    */
@@ -836,7 +873,7 @@
        Boolean printer_extent;         /* print complete page          */
        Boolean printer_formfeed;       /* print formfeed per function  */
        int     printer_controlmode;    /* 0=off, 1=auto, 2=controller  */
-#ifdef OPT_PRINT_COLORS
+#if OPT_PRINT_COLORS
        int     print_attributes;       /* 0=off, 1=normal, 2=color     */
 #endif
 
@@ -948,21 +985,16 @@
        Pixel           Tforeground;    /* foreground color             */
        Pixel           Tbackground;    /* Background color             */
        Pixel           Tcursorcolor;   /* Cursor color                 */
+
        int             Tcolor;         /* colors used                  */
        Boolean         Tshow;          /* Tek window showing           */
        Boolean         waitrefresh;    /* postpone refresh             */
-       struct _tekwin {
-               Window  window;         /* X window id                  */
-               int     width;          /* width of columns             */
-               int     height;         /* height of rows               */
-               int     fullwidth;      /* full width of window         */
-               int     fullheight;     /* full height of window        */
-               double  tekscale;       /* scale factor Tek -> vs100    */
-       } fullTwin;
+       struct _tekwin  fullTwin;
 #ifndef NO_ACTIVE_ICON
-       struct _tekwin iconTwin;
+       struct _tekwin  iconTwin;
        struct _tekwin *whichTwin;
 #endif /* NO_ACTIVE_ICON */
+
        int             xorplane;       /* z plane for inverts          */
        GC              linepat[TEKNUMLINES]; /* line patterns          */
        Boolean         TekEmu;         /* true if Tektronix emulation  */
@@ -999,7 +1031,6 @@
        Boolean         control_eight_bits; /* send CSI as 8-bits */
        Boolean         backarrow_key;          /* backspace/delete */
        Pixmap          menu_item_bitmap;       /* mask for checking items */
-       Widget          mainMenu, vtMenu, tekMenu, fontMenu;
        String          menu_font_names[NMENUFONTS];
        unsigned long   menu_font_sizes[NMENUFONTS];
        int             menu_font_number;
@@ -1007,10 +1038,14 @@
 } TScreen;
 
 typedef struct _TekPart {
-    XFontStruct *Tfont[TEKNUMFONTS];
-    int                tobaseline[TEKNUMFONTS]; /* top to baseline for each font */
-    char       *initial_font;          /* large, 2, 3, small */
-    char       *gin_terminator_str;    /* ginTerminator resource */
+       XFontStruct *   Tfont[TEKNUMFONTS];
+       int             tobaseline[TEKNUMFONTS]; /* top-baseline, each font */
+       char *          initial_font;           /* large, 2, 3, small */
+       char *          gin_terminator_str;     /* ginTerminator resource */
+#if OPT_TOOLBAR
+       Widget          menu_bar;       /* toolbar, if initialized      */
+       Dimension       menu_height;    /* ...and its height            */
+#endif
 } TekPart;
 
 
@@ -1210,9 +1245,9 @@
 #ifndef NO_ACTIVE_ICON
 #define IsIcon(screen)         ((screen)->whichVwin == &(screen)->iconVwin)
 #define VWindow(screen)                ((screen)->whichVwin->window)
-#define VShellWindow           term->core.parent->core.window
+#define VShellWindow           XtWindow(SHELL_OF(term))
 #define TWindow(screen)                ((screen)->whichTwin->window)
-#define TShellWindow           tekWidget->core.parent->core.window
+#define TShellWindow           XtWindow(SHELL_OF(tekWidget))
 #define Width(screen)          ((screen)->whichVwin->width)
 #define Height(screen)         ((screen)->whichVwin->height)
 #define FullWidth(screen)      ((screen)->whichVwin->fullwidth)
@@ -1238,9 +1273,9 @@
 
 #define IsIcon(screen)         (False)
 #define VWindow(screen)                ((screen)->fullVwin.window)
-#define VShellWindow           term->core.parent->core.window
+#define VShellWindow           XtWindow(SHELL_OF(term))
 #define TWindow(screen)                ((screen)->fullTwin.window)
-#define TShellWindow           tekWidget->core.parent->core.window
+#define TShellWindow           XtWindow(SHELL_OF(tekWidget))
 #define Width(screen)          ((screen)->fullVwin.width)
 #define Height(screen)         ((screen)->fullVwin.height)
 #define FullWidth(screen)      ((screen)->fullVwin.fullwidth)
@@ -1261,12 +1296,6 @@
 #define TekScale(screen)       ((screen)->fullTwin.tekscale)
 
 #endif /* NO_ACTIVE_ICON */
-
-#define        TWINDOWEVENTS   (KeyPressMask | ExposureMask | ButtonPressMask |\
-                        ButtonReleaseMask | StructureNotifyMask |\
-                        EnterWindowMask | LeaveWindowMask | FocusChangeMask)
-
-#define        WINDOWEVENTS    (TWINDOWEVENTS | PointerMotionMask)
 
 #if OPT_TEK4014
 #define TEK_LINK_BLOCK_SIZE 1024
Index: resize.c
--- xterm-112+/resize.c Sun Jun 13 17:55:49 1999
+++ xterm-113/resize.c  Sun Aug 15 20:52:46 1999
@@ -70,7 +70,7 @@
 #undef SYSV                            /* pretend to be bsd */
 #endif /* macII */
 
-#ifdef SCO
+#if defined(SCO) || defined(sco)
 #define USE_TERMCAP
 #endif
 
@@ -79,31 +79,34 @@
 #define USE_SYSV_UTMP
 #endif
 
+#ifdef Lynx
+#define USE_SYSV_TERMIO
+#endif
+
 #ifdef __OpenBSD__
 #define USE_TERMINFO
 #include <term.h>
 #endif
 
-#ifndef USE_TERMINFO
-#if defined(SCO) || defined(linux)
+#ifndef USE_TERMINFO   /* avoid conflict with configure script */
+#if defined(SCO) || defined(sco) || defined(linux)
 #define USE_TERMINFO
 #endif
 #endif
 
-#if defined(SYSV) || defined(Lynx) || defined(__CYGWIN32__)
+#if defined(SYSV) || defined(__CYGWIN32__)
 #define USE_SYSV_TERMIO
-#ifndef Lynx
 #define USE_SYSV_UTMP
+#elif defined(__QNX__)
+#define USE_TERMINFO
+#include <unix.h>
 #else
 #define USE_TERMCAP
-#endif
-#else /* else not SYSV */
-#define USE_TERMCAP
 #endif /* SYSV */
 
 /*
- * some OS's may want to use both, like SCO for example we catch
- * here anyone who hasn't decided what they want.
+ * Some OS's may want to use both, like SCO for example.  We catch here anyone
+ * who hasn't decided what they want.
  */
 #if !defined(USE_TERMCAP) && !defined(USE_TERMINFO)
 #define USE_TERMINFO
Index: screen.c
--- xterm-112+/screen.c Mon Jul 12 13:43:45 1999
+++ xterm-113/screen.c  Sun Aug 15 07:43:46 1999
@@ -995,6 +995,8 @@
                 screen->savelines : 0;
                int delta_rows = rows - (screen->max_row + 1);
 
+               TRACE(("...ScreenResize chars %dx%d\n", rows, cols))
+
                if(screen->cursor_state)
                        HideCursor();
                if ( screen->alternate
Index: scrollbar.c
--- xterm-112+/scrollbar.c      Mon Mar 29 13:36:18 1999
+++ xterm-113/scrollbar.c       Sun Aug 15 17:08:28 1999
@@ -109,6 +109,9 @@
         * to have time to completely rewrite xterm.
         */
 
+       TRACE(("ResizeScreen(min_width=%d, min_height=%d) xw=%#lx\n",
+               min_width, min_height, (long) xw))
+
 #ifndef nothack
        /*
         * NOTE: If you change the way any of the hints are calculated
@@ -146,13 +149,20 @@
                      XtNminHeight, min_height + FontHeight(screen),
                      NULL);
 
-       reqWidth = (screen->max_col + 1) * screen->fullVwin.f_width + min_width;
+       reqWidth = screen->fullVwin.f_width * (screen->max_col + 1) + min_width;
        reqHeight = screen->fullVwin.f_height * (screen->max_row + 1) + min_height;
+
+       TRACE(("...requesting screensize chars %dx%d, pixels %dx%d\n",
+               (screen->max_row + 1),
+               (screen->max_col + 1),
+               reqHeight, reqWidth))
+
        geomreqresult = XtMakeResizeRequest ((Widget)xw, reqWidth, reqHeight,
                                             &repWidth, &repHeight);
 
        if (geomreqresult == XtGeometryAlmost) {
-            geomreqresult = XtMakeResizeRequest ((Widget)xw, repWidth,
+           TRACE(("...almost, retry screensize %dx%d\n", repHeight, repWidth))
+           geomreqresult = XtMakeResizeRequest ((Widget)xw, repWidth,
                                                  repHeight, NULL, NULL);
        }
        XSync(screen->display, FALSE);  /* synchronize */
@@ -248,7 +258,7 @@
                screen->scrollWidget,
 #ifdef SCROLLBAR_RIGHT
                (term->misc.useRight)
-                       ? (screen->fullVwin.fullwidth -
+                       ? (term->core.width -
                           screen->scrollWidget->core.width -
                           screen->scrollWidget->core.border_width)
                        : -1,
Index: version.h
--- xterm-112+/version.h        Sun Jul 18 16:29:08 1999
+++ xterm-113/version.h Sun Aug 15 21:19:04 1999
@@ -6,5 +6,5 @@
  * XFree86 to which this version of xterm has been built.  The number in
  * parentheses is my patch number (T.Dickey).
  */
-#define XTERM_PATCH   112
-#define XFREE86_VERSION "XFree86 3.9.15"
+#define XTERM_PATCH   113
+#define XFREE86_VERSION "XFree86 3.9.15b"
Index: xterm.h
--- xterm-112+/xterm.h  Mon Jul 12 13:43:45 1999
+++ xterm-113/xterm.h   Sat Jul 24 08:28:13 1999
@@ -142,6 +142,193 @@
 
 #include <setjmp.h>
 
+/***====================================================================***/
+
+#define XtNallowSendEvents     "allowSendEvents"
+#define XtNalwaysHighlight     "alwaysHighlight"
+#define XtNanswerbackString    "answerbackString"
+#define XtNappcursorDefault    "appcursorDefault"
+#define XtNappkeypadDefault    "appkeypadDefault"
+#define XtNautoWrap            "autoWrap"
+#define XtNawaitInput          "awaitInput"
+#define XtNbackarrowKey                "backarrowKey"
+#define XtNbellSuppressTime    "bellSuppressTime"
+#define XtNboldColors          "boldColors"
+#define XtNboldFont            "boldFont"
+#define XtNboldMode            "boldMode"
+#define XtNc132                        "c132"
+#define XtNcharClass           "charClass"
+#define XtNcolor0              "color0"
+#define XtNcolor1              "color1"
+#define XtNcolor10             "color10"
+#define XtNcolor11             "color11"
+#define XtNcolor12             "color12"
+#define XtNcolor13             "color13"
+#define XtNcolor14             "color14"
+#define XtNcolor15             "color15"
+#define XtNcolor2              "color2"
+#define XtNcolor3              "color3"
+#define XtNcolor4              "color4"
+#define XtNcolor5              "color5"
+#define XtNcolor6              "color6"
+#define XtNcolor7              "color7"
+#define XtNcolor8              "color8"
+#define XtNcolor9              "color9"
+#define XtNcolorAttrMode       "colorAttrMode"
+#define XtNcolorBD             "colorBD"
+#define XtNcolorBDMode         "colorBDMode"
+#define XtNcolorBL             "colorBL"
+#define XtNcolorBLMode         "colorBLMode"
+#define XtNcolorMode           "colorMode"
+#define XtNcolorUL             "colorUL"
+#define XtNcolorULMode         "colorULMode"
+#define XtNcurses              "curses"
+#define XtNcursorBlink         "cursorBlink"
+#define XtNcursorColor         "cursorColor"
+#define XtNcursorOffTime       "cursorOffTime"
+#define XtNcursorOnTime                "cursorOnTime"
+#define XtNcutNewline          "cutNewline"
+#define XtNcutToBeginningOfLine        "cutToBeginningOfLine"
+#define XtNdecTerminalID       "decTerminalID"
+#define XtNdynamicColors       "dynamicColors"
+#define XtNeightBitControl     "eightBitControl"
+#define XtNeightBitInput       "eightBitInput"
+#define XtNeightBitOutput      "eightBitOutput"
+#define XtNfontDoublesize      "fontDoublesize"
+#define XtNhighlightColor      "highlightColor"
+#define XtNhighlightSelection  "highlightSelection"
+#define XtNhpLowerleftBugCompat        "hpLowerleftBugCompat"
+#define XtNinternalBorder      "internalBorder"
+#define XtNjumpScroll          "jumpScroll"
+#define XtNkeyboardDialect     "keyboardDialect"
+#define XtNlogFile             "logFile"
+#define XtNlogInhibit          "logInhibit"
+#define XtNlogging             "logging"
+#define XtNloginShell          "loginShell"
+#define XtNmenuBar             "menuBar"
+#define XtNmenuHeight          "menuHeight"
+#define XtNmarginBell          "marginBell"
+#define XtNmultiClickTime      "multiClickTime"
+#define XtNmultiScroll         "multiScroll"
+#define XtNnMarginBell         "nMarginBell"
+#define XtNnumLock             "numLock"
+#define XtNoldXtermFKeys       "oldXtermFKeys"
+#define XtNpointerColor                "pointerColor"
+#define XtNpointerColorBackground      "pointerColorBackground"
+#define XtNpointerShape                "pointerShape"
+#define XtNprintAttributes     "printAttributes"
+#define XtNprinterAutoClose    "printerAutoClose"
+#define XtNprinterCommand      "printerCommand"
+#define XtNprinterControlMode  "printerControlMode"
+#define XtNprinterExtent       "printerExtent"
+#define XtNprinterFormFeed     "printerFormFeed"
+#define XtNresizeGravity       "resizeGravity"
+#define XtNreverseWrap         "reverseWrap"
+#define XtNrightScrollBar      "rightScrollBar"
+#define XtNsaveLines           "saveLines"
+#define XtNscrollBar           "scrollBar"
+#define XtNscrollKey           "scrollKey"
+#define XtNscrollLines         "scrollLines"
+#define XtNscrollPos           "scrollPos"
+#define XtNscrollTtyOutput     "scrollTtyOutput"
+#define XtNshiftKeys           "shiftKeys"
+#define XtNsignalInhibit       "signalInhibit"
+#define XtNtekGeometry         "tekGeometry"
+#define XtNtekInhibit          "tekInhibit"
+#define XtNtekSmall            "tekSmall"
+#define XtNtekStartup          "tekStartup"
+#define XtNtiteInhibit         "titeInhibit"
+#define XtNtrimSelection       "trimSelection"
+#define XtNunderLine           "underLine"
+#define XtNutf8                        "utf8"
+#define XtNutf8controls                "utf8controls"
+#define XtNvisualBell          "visualBell"
+#define XtNwideChars           "wideChars"
+#define XtNxmcAttributes       "xmcAttributes"
+#define XtNxmcGlitch           "xmcGlitch"
+#define XtNxmcInline           "xmcInline"
+#define XtNxmcMoveSGR          "xmcMoveSGR"
+
+#define XtCAllowSendEvents     "AllowSendEvents"
+#define XtCAlwaysHighlight     "AlwaysHighlight"
+#define XtCAnswerbackString    "AnswerbackString"
+#define XtCAppcursorDefault    "AppcursorDefault"
+#define XtCAppkeypadDefault    "AppkeypadDefault"
+#define XtCAutoWrap            "AutoWrap"
+#define XtCAwaitInput          "AwaitInput"
+#define XtCBackarrowKey                "BackarrowKey"
+#define XtCBellSuppressTime    "BellSuppressTime"
+#define XtCBoldFont            "BoldFont"
+#define XtCBoldMode            "BoldMode"
+#define XtCC132                        "C132"
+#define XtCCharClass           "CharClass"
+#define XtCColorMode           "ColorMode"
+#define XtCColumn              "Column"
+#define XtCCurses              "Curses"
+#define XtCCursorBlink         "CursorBlink"
+#define XtCCursorOnTime                "CursorOnTime"
+#define XtCCursorOffTime       "CursorOffTime"
+#define XtCCutNewline          "CutNewline"
+#define XtCCutToBeginningOfLine        "CutToBeginningOfLine"
+#define XtCDecTerminalID       "DecTerminalID"
+#define XtCDynamicColors       "DynamicColors"
+#define XtCEightBitControl     "EightBitControl"
+#define XtCEightBitInput       "EightBitInput"
+#define XtCEightBitOutput      "EightBitOutput"
+#define XtCFontDoublesize      "FontDoublesize"
+#define XtCHighlightSelection  "HighlightSelection"
+#define XtCHpLowerleftBugCompat        "HpLowerleftBugCompat"
+#define XtCJumpScroll          "JumpScroll"
+#define XtCKeyboardDialect     "KeyboardDialect"
+#define XtCLogInhibit          "LogInhibit"
+#define XtCLogfile             "Logfile"
+#define XtCLogging             "Logging"
+#define XtCLoginShell          "LoginShell"
+#define XtCMarginBell          "MarginBell"
+#define XtCMenuBar             "MenuBar"
+#define XtCMenuHeight          "MenuHeight"
+#define XtCMultiClickTime      "MultiClickTime"
+#define XtCMultiScroll         "MultiScroll"
+#define XtCNumLock             "NumLock"
+#define XtCOldXtermFKeys       "OldXtermFKeys"
+#define XtCPrintAttributes     "PrintAttributes"
+#define XtCPrinterAutoClose    "PrinterAutoClose"
+#define XtCPrinterCommand      "PrinterCommand"
+#define XtCPrinterControlMode  "PrinterControlMode"
+#define XtCPrinterExtent       "PrinterExtent"
+#define XtCPrinterFormFeed     "PrinterFormFeed"
+#define XtCResizeGravity       "ResizeGravity"
+#define XtCReverseWrap         "ReverseWrap"
+#define XtCRightScrollBar      "RightScrollBar"
+#define XtCSaveLines           "SaveLines"
+#define XtCScrollBar           "ScrollBar"
+#define XtCScrollCond          "ScrollCond"
+#define XtCScrollLines         "ScrollLines"
+#define XtCScrollPos           "ScrollPos"
+#define XtCShiftKeys           "ShiftKeys"
+#define XtCSignalInhibit       "SignalInhibit"
+#define XtCTekInhibit          "TekInhibit"
+#define XtCTekSmall            "TekSmall"
+#define XtCTekStartup          "TekStartup"
+#define XtCTiteInhibit         "TiteInhibit"
+#define XtCTrimSelection       "TrimSelection"
+#define XtCUnderLine           "UnderLine"
+#define XtCUtf8                        "Utf8"
+#define XtCUtf8controls                "Utf8controls"
+#define XtCVisualBell          "VisualBell"
+#define XtCWideChars           "WideChars"
+#define XtCXmcAttributes       "XmcAttributes"
+#define XtCXmcGlitch           "XmcGlitch"
+#define XtCXmcInline           "XmcInline"
+#define XtCXmcMoveSGR          "XmcMoveSGR"
+
+#ifdef NO_ACTIVE_ICON
+#define XtNgeometry            "geometry"
+#define XtCGeometry            "Geometry"
+#endif
+
+/***====================================================================***/
+
 #ifdef __cplusplus
 extern "C" {
 #endif
Index: xterm.log.html
--- xterm-112+/xterm.log.html   Sun Jul 18 16:29:08 1999
+++ xterm-113/xterm.log.html    Sun Aug 15 21:52:29 1999
@@ -41,6 +41,7 @@
 xc/programs/Xserver/hw/xfree86).
 
 <UL>
+<LI><A HREF="#xterm_113">Patch #113 - 1999/8/15 - XFree86 3.9.15b</A>
 <LI><A HREF="#xterm_112">Patch #112 - 1999/7/17 - XFree86 3.9Pw</A>
 <LI><A HREF="#xterm_111">Patch #111 - 1999/7/10 - XFree86 3.9Pw</A>
 <LI><A HREF="#xterm_110">Patch #110 - 1999/6/29 - XFree86 3.9Pu</A>
@@ -155,6 +156,51 @@
 <LI><A HREF="#xterm_02">Patch #2 - 1996/1/7</A>
 <LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
 </UL>
+
+<H1><A NAME="xterm_113">Patch #113 - 1999/8/15 - XFree86 3.9.15b</A></H1>
+Several fixes.  The main one is a first draft of pulldown menus.  It's not
+complete (I have some minor/annoying geometry problems to correct), but is
+usable.  Once it's complete I plan to add a menu to support additional
+selections that won't fit on the current popup menus.  Also, this fits into my
+longterm plan to allow configuring with Motif libraries.
+
+<ul>
+       <li>correct error in input conversion for NRC mode (reported by
+         Stefan Traby &lt;stefan@sime.com&gt;).
+
+       <li>fix initialization of num_lock data in Misc struct (since those
+         fields of the reference widget aren't initialized), and add logic to
+         deal with XVision whose NumLock key does not transmit but does alter
+         keypad state.
+
+       <li>correct a missing return-value in get_pty(), for SCO
+
+       <li>add E2A fix for backspace (Greg Smith), i.e.,<br>
+         #define VAL_INITIAL_ERASE A2E(127)
+
+       <li>correct foreground color within cursor outline when the
+         window is unfocused (reported by Stephane Chazelas).
+
+       <li>corrected position of scrollbar set in ResizeScrollBar(), which
+         left it positioned incorrectly if the right scrollbar were enabled
+         from the popup menu but was not initially enabled.
+
+         <p>
+         I have noticed some additional problems with right-scrollbar on
+         X11R5 which I will correct later.
+
+       <li>integrate changes by Jean-Claude Michot for QNX from XFree86 3.3.4c
+
+       <li>add resources menuBar/MenuBar, menuHeight/MenuHeight for later
+         use in toolbar geometry.
+
+       <li>add configure option --enable-toolbar
+
+       <li>add missing definition to make ziconbeep logic not compile-in when
+         configure script disables it.
+
+       <li>add configure-check for input-method support in X libraries
+</ul>
 
 <H1><A NAME="xterm_112">Patch #112 - 1999/7/17 - XFree86 3.9Pw</A></H1>
 <ul>
Index: xtermcfg.hin
--- xterm-112+/xtermcfg.hin     Mon Jul 12 13:43:45 1999
+++ xterm-113/xtermcfg.hin      Sun Aug 15 19:44:28 1999
@@ -67,10 +67,12 @@
 #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_TOOLBAR             /* CF_ARG_ENABLE(toolbar) */
 #undef OPT_TRACE               /* CF_ARG_ENABLE(trace) */
 #undef OPT_VT52_MODE           /* CF_ARG_DISABLE(vt52) */
 #undef OPT_WIDE_CHARS          /* CF_ARG_ENABLE(wide-chars) */
 #undef OPT_XMC_GLITCH          /* CF_ARG_ENABLE(xmc-glitch) */
+#undef OPT_ZICONBEEP           /* CF_ARG_DISABLE(ziconbeep) */
 #undef OWN_TERMINFO_DIR                /* AC_ARG_WITH(own-terminfo) */
 #undef SCROLLBAR_RIGHT         /* CF_ARG_ENABLE(rightbar) */
 #undef USE_MY_MEMMOVE          /* CF_FUNC_MEMMOVE */