xterm-115.patch.txt

# ------------------------------------------------------------------------------
#  INSTALL                        |    4 
#  Makefile.in                    |    9 
#  button.c                       |   24 +
#  charproc.c                     |   29 +-
#  charsets.c                     |   10 
#  configure                      |  495 ++++++++++++++++++++-------------------
#  configure.in                   |   12 
#  ctlseqs.ms                     |    2 
#  data.c                         |   36 ++
#  data.h                         |    4 
#  doublechr.c                    |  109 ++++++--
#  fontutils.c                    |  111 +++++++-
#  fontutils.h                    |    2 
#  input.c                        |    4 
#  menu.c                         |    9 
#  misc.c                         |    2 
#  print.c                        |    6 
#  ptydata.c                      |   17 -
#  ptyx.h                         |   76 ++++-
#  screen.c                       |   22 -
#  terminfo                       |    7 
#  util.c                         |   43 ++-
#  version.h                      |    4 
#  vttests/doublechars.sh         |    2 
#  xterm-115/88colres.h           |  220 +++++++++++++++++
#  xterm-115/88colres.pl          |   50 +++
#  xterm-115/vttests/88colors.pl  |   13 +
#  xterm-115/vttests/88colors2.pl |   66 +++++
#  xterm.h                        |    8 
#  xterm.log.html                 |   20 +
#  xterm.man                      |    6 
#  xtermcfg.hin                   |    1 
#  32 files changed, 1053 insertions, 370 deletions
# ------------------------------------------------------------------------------
Index: 88colres.h
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-115/88colres.h        Fri Sep 17 06:52:17 1999
@@ -0,0 +1,220 @@
+/*
+ * This header file was generated by ./88colres.pl
+ */
+/* $XFree86$ */
+{"color16", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[16]),
+       XtRString, DFT_COLOR("rgb:00/00/00")},
+{"color17", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[17]),
+       XtRString, DFT_COLOR("rgb:00/00/8b")},
+{"color18", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[18]),
+       XtRString, DFT_COLOR("rgb:00/00/cd")},
+{"color19", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[19]),
+       XtRString, DFT_COLOR("rgb:00/00/ff")},
+{"color20", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[20]),
+       XtRString, DFT_COLOR("rgb:00/8b/00")},
+{"color21", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[21]),
+       XtRString, DFT_COLOR("rgb:00/8b/8b")},
+{"color22", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[22]),
+       XtRString, DFT_COLOR("rgb:00/8b/cd")},
+{"color23", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[23]),
+       XtRString, DFT_COLOR("rgb:00/8b/ff")},
+{"color24", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[24]),
+       XtRString, DFT_COLOR("rgb:00/cd/00")},
+{"color25", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[25]),
+       XtRString, DFT_COLOR("rgb:00/cd/8b")},
+{"color26", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[26]),
+       XtRString, DFT_COLOR("rgb:00/cd/cd")},
+{"color27", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[27]),
+       XtRString, DFT_COLOR("rgb:00/cd/ff")},
+{"color28", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[28]),
+       XtRString, DFT_COLOR("rgb:00/ff/00")},
+{"color29", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[29]),
+       XtRString, DFT_COLOR("rgb:00/ff/8b")},
+{"color30", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[30]),
+       XtRString, DFT_COLOR("rgb:00/ff/cd")},
+{"color31", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[31]),
+       XtRString, DFT_COLOR("rgb:00/ff/ff")},
+{"color32", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[32]),
+       XtRString, DFT_COLOR("rgb:8b/00/00")},
+{"color33", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[33]),
+       XtRString, DFT_COLOR("rgb:8b/00/8b")},
+{"color34", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[34]),
+       XtRString, DFT_COLOR("rgb:8b/00/cd")},
+{"color35", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[35]),
+       XtRString, DFT_COLOR("rgb:8b/00/ff")},
+{"color36", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[36]),
+       XtRString, DFT_COLOR("rgb:8b/8b/00")},
+{"color37", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[37]),
+       XtRString, DFT_COLOR("rgb:8b/8b/8b")},
+{"color38", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[38]),
+       XtRString, DFT_COLOR("rgb:8b/8b/cd")},
+{"color39", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[39]),
+       XtRString, DFT_COLOR("rgb:8b/8b/ff")},
+{"color40", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[40]),
+       XtRString, DFT_COLOR("rgb:8b/cd/00")},
+{"color41", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[41]),
+       XtRString, DFT_COLOR("rgb:8b/cd/8b")},
+{"color42", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[42]),
+       XtRString, DFT_COLOR("rgb:8b/cd/cd")},
+{"color43", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[43]),
+       XtRString, DFT_COLOR("rgb:8b/cd/ff")},
+{"color44", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[44]),
+       XtRString, DFT_COLOR("rgb:8b/ff/00")},
+{"color45", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[45]),
+       XtRString, DFT_COLOR("rgb:8b/ff/8b")},
+{"color46", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[46]),
+       XtRString, DFT_COLOR("rgb:8b/ff/cd")},
+{"color47", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[47]),
+       XtRString, DFT_COLOR("rgb:8b/ff/ff")},
+{"color48", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[48]),
+       XtRString, DFT_COLOR("rgb:cd/00/00")},
+{"color49", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[49]),
+       XtRString, DFT_COLOR("rgb:cd/00/8b")},
+{"color50", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[50]),
+       XtRString, DFT_COLOR("rgb:cd/00/cd")},
+{"color51", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[51]),
+       XtRString, DFT_COLOR("rgb:cd/00/ff")},
+{"color52", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[52]),
+       XtRString, DFT_COLOR("rgb:cd/8b/00")},
+{"color53", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[53]),
+       XtRString, DFT_COLOR("rgb:cd/8b/8b")},
+{"color54", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[54]),
+       XtRString, DFT_COLOR("rgb:cd/8b/cd")},
+{"color55", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[55]),
+       XtRString, DFT_COLOR("rgb:cd/8b/ff")},
+{"color56", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[56]),
+       XtRString, DFT_COLOR("rgb:cd/cd/00")},
+{"color57", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[57]),
+       XtRString, DFT_COLOR("rgb:cd/cd/8b")},
+{"color58", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[58]),
+       XtRString, DFT_COLOR("rgb:cd/cd/cd")},
+{"color59", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[59]),
+       XtRString, DFT_COLOR("rgb:cd/cd/ff")},
+{"color60", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[60]),
+       XtRString, DFT_COLOR("rgb:cd/ff/00")},
+{"color61", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[61]),
+       XtRString, DFT_COLOR("rgb:cd/ff/8b")},
+{"color62", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[62]),
+       XtRString, DFT_COLOR("rgb:cd/ff/cd")},
+{"color63", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[63]),
+       XtRString, DFT_COLOR("rgb:cd/ff/ff")},
+{"color64", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[64]),
+       XtRString, DFT_COLOR("rgb:ff/00/00")},
+{"color65", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[65]),
+       XtRString, DFT_COLOR("rgb:ff/00/8b")},
+{"color66", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[66]),
+       XtRString, DFT_COLOR("rgb:ff/00/cd")},
+{"color67", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[67]),
+       XtRString, DFT_COLOR("rgb:ff/00/ff")},
+{"color68", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[68]),
+       XtRString, DFT_COLOR("rgb:ff/8b/00")},
+{"color69", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[69]),
+       XtRString, DFT_COLOR("rgb:ff/8b/8b")},
+{"color70", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[70]),
+       XtRString, DFT_COLOR("rgb:ff/8b/cd")},
+{"color71", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[71]),
+       XtRString, DFT_COLOR("rgb:ff/8b/ff")},
+{"color72", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[72]),
+       XtRString, DFT_COLOR("rgb:ff/cd/00")},
+{"color73", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[73]),
+       XtRString, DFT_COLOR("rgb:ff/cd/8b")},
+{"color74", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[74]),
+       XtRString, DFT_COLOR("rgb:ff/cd/cd")},
+{"color75", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[75]),
+       XtRString, DFT_COLOR("rgb:ff/cd/ff")},
+{"color76", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[76]),
+       XtRString, DFT_COLOR("rgb:ff/ff/00")},
+{"color77", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[77]),
+       XtRString, DFT_COLOR("rgb:ff/ff/8b")},
+{"color78", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[78]),
+       XtRString, DFT_COLOR("rgb:ff/ff/cd")},
+{"color79", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[79]),
+       XtRString, DFT_COLOR("rgb:ff/ff/ff")},
+{"color80", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[80]),
+       XtRString, DFT_COLOR("rgb:2e/2e/2e")},
+{"color81", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[81]),
+       XtRString, DFT_COLOR("rgb:5c/5c/5c")},
+{"color82", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[82]),
+       XtRString, DFT_COLOR("rgb:73/73/73")},
+{"color83", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[83]),
+       XtRString, DFT_COLOR("rgb:8b/8b/8b")},
+{"color84", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[84]),
+       XtRString, DFT_COLOR("rgb:a2/a2/a2")},
+{"color85", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[85]),
+       XtRString, DFT_COLOR("rgb:b9/b9/b9")},
+{"color86", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[86]),
+       XtRString, DFT_COLOR("rgb:d0/d0/d0")},
+{"color87", XtCForeground, XtRPixel, sizeof(Pixel),
+       XtOffsetOf(XtermWidgetRec, screen.Acolors[87]),
+       XtRString, DFT_COLOR("rgb:e7/e7/e7")},
Index: 88colres.pl
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-115/88colres.pl       Sat Sep 18 14:38:07 1999
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+# Author: Steve Wall <swall@redcom.com>
+# $XFree86: xterm/88colres.pl,v 1.1 1999/09/14 13:03:03 swall Exp $
+# Made from 256colres.pl
+
+# Construct a header file defining default resources for the
+# 88-color model of xterm.
+
+# use the resources for colors 0-15 - usually more-or-less a
+# reproduction of the standard ANSI colors, but possibly more
+# pleasing shades
+
+print <<EOF;
+/*
+ * This header file was generated by $0
+ */
+/* \$XFree86\$ */
+EOF
+
+$line1="{\"color%d\", XtCForeground, XtRPixel, sizeof(Pixel),\n";
+$line2="\tXtOffsetOf(XtermWidgetRec, screen.Acolors[%d]),\n";
+$line3="\tXtRString, DFT_COLOR(\"rgb:%2.2x/%2.2x/%2.2x\")},\n";
+@steps=(0,139,205,255);
+
+# colors 16-79 are a 4x4x4 color cube
+for ($red = 0; $red < 4; $red++) {
+    for ($green = 0; $green < 4; $green++) {
+       for ($blue = 0; $blue < 4; $blue++) {
+           $code = 16 + ($red * 16) + ($green * 4) + $blue;
+           printf($line1, $code);
+           printf($line2, $code);
+           printf($line3,
+                  int (@steps[$red]),
+                  int (@steps[$green]),
+                  int (@steps[$blue]));
+       }
+    }
+}
+
+# colors 80-91 are a grayscale ramp, intentionally leaving out
+# black and white
+for ($gray = 0; $gray < 8; $gray++) {
+    $level = ($gray * 23.18181818) + 46.36363636;
+    if( $gray > 0 ) { $level += 23.18181818; }
+    $code = 80 + $gray;
+    printf($line1, $code);
+    printf($line2, $code);
+    printf($line3,
+          int($level), int($level), int($level));
+}
Index: INSTALL
--- xterm-114+/INSTALL  Sun Aug 22 14:20:13 1999
+++ xterm-115/INSTALL   Fri Sep 17 06:26:32 1999
@@ -186,6 +186,10 @@
 
        Compile-in code that interprets SGR 38 and 48 for 256-colors. 
 
+  --enable-88-color       enable 88-color support
+
+       Compile-in code that interprets SGR 38 and 48 for 88-colors.
+
   --enable-hp-fkeys       enable support for HP-style function keys
 
        Compile-in code to support HP-style function keys.
Index: Makefile.in
--- xterm-114+/Makefile.in      Wed Sep 15 05:40:45 1999
+++ xterm-115/Makefile.in       Sat Sep 18 21:18:25 1999
@@ -97,7 +97,12 @@
        @ECHO_LD@$(LINK) $(LDFLAGS) -o $@ $(OBJS2) $(X_LIBS) $(X_EXTRA_LIBS) $(LIBS)
 
 256colres.h : $(srcdir)/256colres.pl
-       perl $(srcdir)/256colres.pl > 256colres.h
+       -rm -f $@
+       perl $(srcdir)/256colres.pl > $@
+
+88colres.h : $(srcdir)/88colres.pl
+       -rm -f $@
+       perl $(srcdir)/88colres.pl > $@
 
 charproc.o : @CHARPROC_DEPS@
 
@@ -142,7 +147,7 @@
        -$(RM) $(PROGRAMS)
 
 distclean: clean
-       -$(RM) Makefile config.status config.cache config.log xtermcfg.h 256colres.h
+       -$(RM) Makefile config.status config.cache config.log xtermcfg.h
 
 realclean: distclean
        -$(RM) tags TAGS
Index: button.c
--- xterm-114+/button.c Wed Sep 15 21:50:53 1999
+++ xterm-115/button.c  Sat Sep 18 14:09:11 1999
@@ -1843,22 +1843,24 @@
     *eol = !ScrnTstWrapped(screen, row);
     for (i = scol; i < ecol; i++) {
        c = E2A(XTERM_CELL(row, i));
-       if (c == 0) {
-           c = E2A(' ');
-       } else if (c < E2A(' ')) {
-           if (c == XPOUND)
-               c = 0x23;       /* char on screen is pound sterling */
-           else
-               c += 0x5f;      /* char is from DEC drawing set */
-       } else if (c == 0x7f) {
-           c = 0x5f;
-       }
 #if OPT_WIDE_CHARS
        if (screen->utf8_mode)
            lp = convertToUTF8(lp, c);
        else
 #endif
-       *lp++ = A2E(c);
+       {
+           if (c == 0) {
+               c = E2A(' ');
+           } else if (c < E2A(' ')) {
+               if (c == XPOUND)
+                   c = 0x23;   /* char on screen is pound sterling */
+               else
+                   c += 0x5f;  /* char is from DEC drawing set */
+           } else if (c == 0x7f) {
+               c = 0x5f;
+           }
+           *lp++ = A2E(c);
+       }
        if (c != E2A(' '))
            result = lp;
     }
Index: charproc.c
--- xterm-114+/charproc.c       Wed Sep 15 06:18:54 1999
+++ xterm-115/charproc.c        Sat Sep 18 12:40:04 1999
@@ -220,6 +220,10 @@
 static  int    defaultONE = 1;
 #endif
 
+#if OPT_DEC_CHRSET
+static int     default_NUM_CHRSET = NUM_CHRSET;
+#endif
+
 /*
  * Warning, the following must be kept under 1024 bytes or else some
  * compilers (particularly AT&T 6386 SVR3.2) will barf).  Workaround is to
@@ -605,6 +609,9 @@
 {XtNfontDoublesize, XtCFontDoublesize, XtRBoolean, sizeof(Boolean),
        XtOffsetOf(XtermWidgetRec, screen.font_doublesize),
        XtRBoolean, (XtPointer) &defaultTRUE},
+{XtNcacheDoublesize, XtCCacheDoublesize, XtRInt, sizeof(int),
+       XtOffsetOf(XtermWidgetRec, screen.cache_doublesize),
+       XtRInt, (XtPointer) &default_NUM_CHRSET},
 #endif
 #if OPT_INPUT_METHOD
 {XtNinputMethod, XtCInputMethod, XtRString, sizeof(char*),
@@ -667,7 +674,9 @@
        XtOffsetOf(XtermWidgetRec, screen.Acolors[COLOR_15]),
        XtRString, DFT_COLOR("white")},
 #if OPT_256_COLORS
-#include "256colres.h"
+# include "256colres.h"
+#elif OPT_88_COLORS
+# include "88colres.h"
 #endif
 {XtNcolorBD, XtCForeground, XtRPixel, sizeof(Pixel),
        XtOffsetOf(XtermWidgetRec, screen.Acolors[COLOR_BD]),
@@ -861,17 +870,17 @@
 {
        int fg = term->sgr_foreground;
 
+#if NUM_ANSI_COLORS < 256
        if (term->screen.colorAttrMode
         || (fg < 0)) {
                if (term->screen.colorULMode && (term->flags & UNDERLINE))
                        fg = COLOR_UL;
-
                if (term->screen.colorBDMode && (term->flags & BOLD))
                        fg = COLOR_BD;
-
                if (term->screen.colorBLMode && (term->flags & BLINK))
                        fg = COLOR_BL;
        }
+#endif
 
        /* This implements the IBM PC-style convention of 8-colors, with one
         * bit for bold, thus mapping the 0-7 codes to 8-15.  It won't make
@@ -4004,6 +4013,14 @@
 
 #if OPT_DEC_CHRSET
    wnew->screen.font_doublesize = request->screen.font_doublesize;
+   wnew->screen.cache_doublesize = request->screen.cache_doublesize;
+   if (wnew->screen.cache_doublesize > NUM_CHRSET)
+       wnew->screen.cache_doublesize = NUM_CHRSET;
+   if (wnew->screen.cache_doublesize == 0)
+       wnew->screen.font_doublesize = False;
+   TRACE(("Doublesize%s enabled, up to %d fonts\n",
+       wnew->screen.font_doublesize ? "" : " not",
+       wnew->screen.cache_doublesize))
 #endif
 
    wnew->num_ptrs = (OFF_ATTRS+1); /* OFF_FLAGS, OFF_CHARS, OFF_ATTRS */
@@ -4034,7 +4051,7 @@
        TRACE(("All colors are foreground or background: disable colorMode\n"))
    }
 
-#if OPT_256_COLORS
+#if OPT_EXT_COLORS
    wnew->num_ptrs = (OFF_BGRND+1);
 #else
    wnew->num_ptrs = (OFF_COLOR+1);
@@ -4631,7 +4648,7 @@
         * Compare the current cell to the last set of colors used for the
         * cursor and update the GC's if needed.
         */
-       if_OPT_256_COLORS(screen,{
+       if_OPT_EXT_COLORS(screen,{
            fg_bg = (SCRN_BUF_FGRND(screen, screen->cursor_row)[screen->cursor_col] << 8) |
                    (SCRN_BUF_BGRND(screen, screen->cursor_row)[screen->cursor_col]);
        })
@@ -4758,7 +4775,7 @@
        clo   = SCRN_BUF_CHARS(screen, screen->cursor_row)[screen->cursor_col];
        flags = SCRN_BUF_ATTRS(screen, screen->cursor_row)[screen->cursor_col];
 
-       if_OPT_256_COLORS(screen,{
+       if_OPT_EXT_COLORS(screen,{
            fg_bg = (SCRN_BUF_FGRND(screen, screen->cursor_row)[screen->cursor_col] << 8) |
                    (SCRN_BUF_BGRND(screen, screen->cursor_row)[screen->cursor_col]);
        })
Index: charsets.c
--- xterm-114+/charsets.c       Sun Aug 22 14:20:13 1999
+++ xterm-115/charsets.c        Sat Sep 18 14:15:48 1999
@@ -280,8 +280,14 @@
                        break;
 
                case '0':       /* special graphics (line drawing)      */
-                       if (chr >= 0x5f && chr <= 0x7e)
-                               chr = (chr == 0x5f) ? 0x7f : (chr - 0x5f);
+                       if (chr >= 0x5f && chr <= 0x7e) {
+#if OPT_WIDE_CHARS
+                               if (screen->utf8_mode)
+                                   chr = dec2ucs[chr - 0x5f];
+                               else
+#endif
+                                   chr = (chr == 0x5f) ? 0x7f : (chr - 0x5f);
+                       }
                        break;
 
                case '4':       /* Dutch */
Index: configure
--- xterm-114+/configure        Wed Sep 15 22:09:10 1999
+++ xterm-115/configure Fri Sep 17 06:57:26 1999
@@ -194,10 +194,11 @@
   --disable-ansi-color    disable ANSI color
   --disable-16-color      disable 16-color support
   --enable-256-color      enable 256-color support
+  --enable-88-color       enable 88-color support
   --disable-blink-cursor  disable support for blinking cursor
-  --disable-bold-color    disable PC-style mapping of bold colors
 EOF
 cat <<EOF
+  --disable-bold-color    disable PC-style mapping of bold colors
   --disable-color-mode    disable default colorMode resource
   --disable-highlighting  disable support for color highlighting
   --disable-doublechars   disable support for double-size chars
@@ -209,9 +210,9 @@
   --enable-logging        enable logging
   --enable-logfile-exec   enable exec'd logfile filter
   --disable-maximize      disable actions for iconify/deiconify/maximize/restore
-  --disable-num-lock      disable NumLock keypad support
 EOF
 cat <<EOF
+  --disable-num-lock      disable NumLock keypad support
   --disable-rightbar      disable right-scrollbar support
   --disable-samename      disable check for redundant name-change
   --disable-tek4014       disable tek4014 emulation
@@ -224,6 +225,8 @@
   --enable-xmc-glitch     test: enable xmc magic-cookie emulation
   --enable-warnings       test: turn on GCC compiler warnings
 EOF
+cat <<EOF
+EOF
     exit 0 ;;
 
   -host | --host | --hos | --ho)
@@ -590,7 +593,7 @@
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:594: checking host system type" >&5
+echo "configure:597: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -641,7 +644,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:645: checking for $ac_word" >&5
+echo "configure:648: 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
@@ -671,7 +674,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:675: checking for $ac_word" >&5
+echo "configure:678: 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
@@ -722,7 +725,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:726: checking for $ac_word" >&5
+echo "configure:729: 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
@@ -754,7 +757,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:758: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:761: 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.
@@ -765,12 +768,12 @@
 
 cat > conftest.$ac_ext << EOF
 
-#line 769 "configure"
+#line 772 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:777: \"$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
@@ -796,12 +799,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:800: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:803: 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:805: checking whether we are using GNU C" >&5
+echo "configure:808: 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
@@ -810,7 +813,7 @@
   yes;
 #endif
 EOF
-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
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:817: \"$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
@@ -829,7 +832,7 @@
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:833: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:836: 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
@@ -861,7 +864,7 @@
 fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:865: checking how to run the C preprocessor" >&5
+echo "configure:868: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -876,13 +879,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 880 "configure"
+#line 883 "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:886: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:889: \"$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
   :
@@ -893,13 +896,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 897 "configure"
+#line 900 "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:903: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:906: \"$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
   :
@@ -910,13 +913,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 914 "configure"
+#line 917 "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:920: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:923: \"$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
   :
@@ -942,13 +945,13 @@
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:946: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:949: 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 952 "configure"
+#line 955 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -966,7 +969,7 @@
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 970 "configure"
+#line 973 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -999,7 +1002,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:1003: checking for a BSD compatible install" >&5
+echo "configure:1006: 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
@@ -1054,9 +1057,9 @@
 
 ###    checks for UNIX variants that set C preprocessor variables
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1058: checking for AIX" >&5
+echo "configure:1061: checking for AIX" >&5
 cat > conftest.$ac_ext <<EOF
-#line 1060 "configure"
+#line 1063 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -1078,7 +1081,7 @@
 
 
 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1082: checking for POSIXized ISC" >&5
+echo "configure:1085: 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
@@ -1100,17 +1103,17 @@
 
 ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1104: checking for minix/config.h" >&5
+echo "configure:1107: 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 1109 "configure"
+#line 1112 "configure"
 #include "confdefs.h"
 #include <minix/config.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1114: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1117: \"$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*
@@ -1153,17 +1156,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1157: checking for $ac_hdr" >&5
+echo "configure:1160: 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 1162 "configure"
+#line 1165 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1170: \"$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*
@@ -1193,13 +1196,13 @@
 ###    checks for typedefs
 
 echo $ac_n "checking for size_t in <sys/types.h> or <stdio.h>""... $ac_c" 1>&6
-echo "configure:1197: checking for size_t in <sys/types.h> or <stdio.h>" >&5
+echo "configure:1200: 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 1203 "configure"
+#line 1206 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1212,7 +1215,7 @@
 size_t x
 ; return 0; }
 EOF
-if { (eval echo configure:1216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1219: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_type_size_t=yes
 else
@@ -1232,12 +1235,12 @@
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1236: checking for ANSI C header files" >&5
+echo "configure:1239: 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 1241 "configure"
+#line 1244 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1245,7 +1248,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1252: \"$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*
@@ -1262,7 +1265,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 1266 "configure"
+#line 1269 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1280,7 +1283,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 1284 "configure"
+#line 1287 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1301,7 +1304,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1305 "configure"
+#line 1308 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1312,7 +1315,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:1316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1336,12 +1339,12 @@
 fi
 
 echo $ac_n "checking for time_t""... $ac_c" 1>&6
-echo "configure:1340: checking for time_t" >&5
+echo "configure:1343: 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 1345 "configure"
+#line 1348 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1379,12 +1382,12 @@
        
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1383: checking for $ac_func" >&5
+echo "configure:1386: 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 1388 "configure"
+#line 1391 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1407,7 +1410,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1414: \"$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
@@ -1433,12 +1436,12 @@
 
 
 echo $ac_n "checking for memmove""... $ac_c" 1>&6
-echo "configure:1437: checking for memmove" >&5
+echo "configure:1440: 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 1442 "configure"
+#line 1445 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char memmove(); below.  */
@@ -1461,7 +1464,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1468: \"$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
@@ -1480,12 +1483,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for bcopy""... $ac_c" 1>&6
-echo "configure:1484: checking for bcopy" >&5
+echo "configure:1487: 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 1489 "configure"
+#line 1492 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char bcopy(); below.  */
@@ -1508,7 +1511,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1515: \"$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
@@ -1524,7 +1527,7 @@
   echo "$ac_t""yes" 1>&6
   
        echo $ac_n "checking if bcopy does overlapping moves""... $ac_c" 1>&6
-echo "configure:1528: checking if bcopy does overlapping moves" >&5
+echo "configure:1531: 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
@@ -1533,7 +1536,7 @@
   cf_cv_good_bcopy=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 1537 "configure"
+#line 1540 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1546,7 +1549,7 @@
 }
                
 EOF
-if { (eval echo configure:1550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1553: \"$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
@@ -1584,7 +1587,7 @@
 
 
 echo $ac_n "checking for full tgetent function""... $ac_c" 1>&6
-echo "configure:1588: checking for full tgetent function" >&5
+echo "configure:1591: 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
@@ -1599,7 +1602,7 @@
   echo "cross-compiling, cannot verify if a termcap/tgetent is present in $cf_termlib" 1>&5
 else
   cat > conftest.$ac_ext <<EOF
-#line 1603 "configure"
+#line 1606 "configure"
 #include "confdefs.h"
 
 /* terminfo implementations ignore the buffer argument, making it useless for
@@ -1613,7 +1616,7 @@
        tgetent(buffer, "vt100");
        exit(buffer[0] == 0); }
 EOF
-if { (eval echo configure:1617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1620: \"$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
@@ -1648,17 +1651,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1652: checking for $ac_hdr" >&5
+echo "configure:1655: 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 1657 "configure"
+#line 1660 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1665: \"$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*
@@ -1691,7 +1694,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:1695: checking for partial tgetent function" >&5
+echo "configure:1698: 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
@@ -1700,14 +1703,14 @@
        for cf_termlib in $cf_TERMLIB ; do
                LIBS="$cf_save_LIBS -l$cf_termlib"
                cat > conftest.$ac_ext <<EOF
-#line 1704 "configure"
+#line 1707 "configure"
 #include "confdefs.h"
 
 int main() {
 tgetent(0, 0)
 ; return 0; }
 EOF
-if { (eval echo configure:1711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1714: \"$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"
@@ -1730,17 +1733,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1734: checking for $ac_hdr" >&5
+echo "configure:1737: 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 1739 "configure"
+#line 1742 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1744: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1747: \"$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*
@@ -1780,13 +1783,13 @@
 ###    checks for structures
 
 echo $ac_n "checking for declaration of fd_set""... $ac_c" 1>&6
-echo "configure:1784: checking for declaration of fd_set" >&5
+echo "configure:1787: 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 1790 "configure"
+#line 1793 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1794,7 +1797,7 @@
 fd_set x
 ; return 0; }
 EOF
-if { (eval echo configure:1798: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1801: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_type_fd_set=sys/types.h
 else
@@ -1802,7 +1805,7 @@
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 1806 "configure"
+#line 1809 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1811,7 +1814,7 @@
 fd_set x
 ; return 0; }
 EOF
-if { (eval echo configure:1815: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1818: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_type_fd_set=sys/select.h
 else
@@ -1835,14 +1838,14 @@
 
 
 echo $ac_n "checking if POSIX VDISABLE symbol should be used""... $ac_c" 1>&6
-echo "configure:1839: checking if POSIX VDISABLE symbol should be used" >&5
+echo "configure:1842: 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 1846 "configure"
+#line 1849 "configure"
 #include "confdefs.h"
 
 #if HAVE_TERMIOS_H && HAVE_TCGETATTR
@@ -1860,7 +1863,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1867: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_posix_vdisable=yes
 else
@@ -1872,7 +1875,7 @@
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 1876 "configure"
+#line 1879 "configure"
 #include "confdefs.h"
 
 #if HAVE_TERMIOS_H && HAVE_TCGETATTR
@@ -1885,7 +1888,7 @@
 int main() { exit(_POSIX_VDISABLE == -1); }
 #endif
 EOF
-if { (eval echo configure:1889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1892: \"$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
@@ -1911,13 +1914,13 @@
 
 
 echo $ac_n "checking if external errno is declared""... $ac_c" 1>&6
-echo "configure:1915: checking if external errno is declared" >&5
+echo "configure:1918: 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 1921 "configure"
+#line 1924 "configure"
 #include "confdefs.h"
 
 #if HAVE_STDLIB_H
@@ -1930,7 +1933,7 @@
 long x = (long) errno
 ; return 0; }
 EOF
-if { (eval echo configure:1934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval 'cf_cv_dcl_'errno'=yes'
 else
@@ -1961,13 +1964,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:1965: checking if external errno exists" >&5
+echo "configure:1968: 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 1971 "configure"
+#line 1974 "configure"
 #include "confdefs.h"
 
 #undef errno
@@ -1977,7 +1980,7 @@
 errno = 2
 ; return 0; }
 EOF
-if { (eval echo configure:1981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1984: \"$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
@@ -2010,12 +2013,12 @@
 
 ###    checks for compiler characteristics
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2014: checking for working const" >&5
+echo "configure:2017: 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 2019 "configure"
+#line 2022 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2064,7 +2067,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2068: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -2086,7 +2089,7 @@
 
 
 echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:2090: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:2093: 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
@@ -2110,7 +2113,7 @@
 do
        CFLAGS="$cf_save_CFLAGS $cf_arg"
        cat > conftest.$ac_ext <<EOF
-#line 2114 "configure"
+#line 2117 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -2126,7 +2129,7 @@
        struct s2 {int (*f) (double a);};
 ; return 0; }
 EOF
-if { (eval echo configure:2130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2133: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ansi_cc="$cf_arg"; break
 else
@@ -2156,12 +2159,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:2160: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:2163: 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 2165 "configure"
+#line 2168 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -2177,7 +2180,7 @@
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:2181: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -2203,7 +2206,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:2207: checking for X" >&5
+echo "configure:2210: checking for X" >&5
 
 
 # Check whether --with-x or --without-x was given.
@@ -2266,12 +2269,12 @@
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 2270 "configure"
+#line 2273 "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:2275: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2278: \"$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*
@@ -2340,14 +2343,14 @@
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2344 "configure"
+#line 2347 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:2351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2354: \"$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.
@@ -2447,7 +2450,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:2451: checking for open in -lc_s" >&5
+echo "configure:2454: 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
@@ -2455,7 +2458,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lc_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2459 "configure"
+#line 2462 "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
@@ -2466,7 +2469,7 @@
 open()
 ; return 0; }
 EOF
-if { (eval echo configure:2470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2473: \"$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
@@ -2483,7 +2486,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:2487: checking for gethostname in -lbsd" >&5
+echo "configure:2490: 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
@@ -2491,7 +2494,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lbsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2495 "configure"
+#line 2498 "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
@@ -2502,7 +2505,7 @@
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:2506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2509: \"$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
@@ -2519,7 +2522,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:2523: checking for gethostname in -lnsl_s" >&5
+echo "configure:2526: 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
@@ -2527,7 +2530,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2531 "configure"
+#line 2534 "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
@@ -2538,7 +2541,7 @@
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:2542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2545: \"$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
@@ -2555,7 +2558,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:2559: checking for XOpenDisplay in -lX11_s" >&5
+echo "configure:2562: 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
@@ -2563,7 +2566,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2567 "configure"
+#line 2570 "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
@@ -2574,7 +2577,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:2578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2581: \"$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
@@ -2591,7 +2594,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:2595: checking for XtAppInitialize in -lXt_s" >&5
+echo "configure:2598: 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
@@ -2599,7 +2602,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXt_s  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2603 "configure"
+#line 2606 "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
@@ -2610,7 +2613,7 @@
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:2614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2617: \"$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
@@ -2651,7 +2654,7 @@
        ;;
 *)
        echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:2655: checking for socket in -lsocket" >&5
+echo "configure:2658: 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
@@ -2659,7 +2662,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2663 "configure"
+#line 2666 "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
@@ -2670,7 +2673,7 @@
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:2674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2677: \"$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
@@ -2698,7 +2701,7 @@
 fi
 
        echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6
-echo "configure:2702: checking for gethostname in -lnsl" >&5
+echo "configure:2705: 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
@@ -2706,7 +2709,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2710 "configure"
+#line 2713 "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
@@ -2717,7 +2720,7 @@
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:2721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2724: \"$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
@@ -2768,17 +2771,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:2772: checking whether -R must be followed by a space" >&5
+echo "configure:2775: 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 2775 "configure"
+#line 2778 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -2794,14 +2797,14 @@
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 2798 "configure"
+#line 2801 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -2833,7 +2836,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:2837: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:2840: 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
@@ -2841,7 +2844,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2845 "configure"
+#line 2848 "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
@@ -2852,7 +2855,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2859: \"$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
@@ -2874,7 +2877,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:2878: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:2881: 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
@@ -2882,7 +2885,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2886 "configure"
+#line 2889 "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
@@ -2893,7 +2896,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2900: \"$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
@@ -2922,12 +2925,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:2926: checking for gethostbyname" >&5
+echo "configure:2929: 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 2931 "configure"
+#line 2934 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -2950,7 +2953,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2957: \"$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
@@ -2971,7 +2974,7 @@
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:2975: checking for gethostbyname in -lnsl" >&5
+echo "configure:2978: 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
@@ -2979,7 +2982,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2983 "configure"
+#line 2986 "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
@@ -2990,7 +2993,7 @@
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:2994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2997: \"$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
@@ -3020,12 +3023,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:3024: checking for connect" >&5
+echo "configure:3027: 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 3029 "configure"
+#line 3032 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -3048,7 +3051,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3055: \"$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
@@ -3069,7 +3072,7 @@
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:3073: checking for connect in -lsocket" >&5
+echo "configure:3076: 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
@@ -3077,7 +3080,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3081 "configure"
+#line 3084 "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
@@ -3088,7 +3091,7 @@
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:3092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3095: \"$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
@@ -3112,12 +3115,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:3116: checking for remove" >&5
+echo "configure:3119: 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 3121 "configure"
+#line 3124 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -3140,7 +3143,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3147: \"$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
@@ -3161,7 +3164,7 @@
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:3165: checking for remove in -lposix" >&5
+echo "configure:3168: 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
@@ -3169,7 +3172,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3173 "configure"
+#line 3176 "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
@@ -3180,7 +3183,7 @@
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:3184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3187: \"$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
@@ -3204,12 +3207,12 @@
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:3208: checking for shmat" >&5
+echo "configure:3211: 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 3213 "configure"
+#line 3216 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -3232,7 +3235,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3239: \"$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
@@ -3253,7 +3256,7 @@
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:3257: checking for shmat in -lipc" >&5
+echo "configure:3260: 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
@@ -3261,7 +3264,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3265 "configure"
+#line 3268 "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
@@ -3272,7 +3275,7 @@
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:3276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3279: \"$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
@@ -3305,7 +3308,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:3309: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:3312: 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
@@ -3313,7 +3316,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3317 "configure"
+#line 3320 "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
@@ -3324,7 +3327,7 @@
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:3328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3331: \"$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
@@ -3351,7 +3354,7 @@
        LDFLAGS="$LDFLAGS $X_LIBS"
        CFLAGS="$CFLAGS $X_CFLAGS"
        echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:3355: checking for XOpenDisplay in -lX11" >&5
+echo "configure:3358: 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
@@ -3359,7 +3362,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3363 "configure"
+#line 3366 "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
@@ -3370,7 +3373,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:3374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3377: \"$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
@@ -3391,7 +3394,7 @@
 fi
 
        echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
-echo "configure:3395: checking for XtAppInitialize in -lXt" >&5
+echo "configure:3398: 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
@@ -3399,7 +3402,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3403 "configure"
+#line 3406 "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
@@ -3410,7 +3413,7 @@
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:3414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3417: \"$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
@@ -3466,17 +3469,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3470: checking for $ac_hdr" >&5
+echo "configure:3473: 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 3475 "configure"
+#line 3478 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3480: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3483: \"$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*
@@ -3524,7 +3527,7 @@
 
 
 echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
-echo "configure:3528: checking for XextCreateExtension in -lXext" >&5
+echo "configure:3531: 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
@@ -3532,7 +3535,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXext  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3536 "configure"
+#line 3539 "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
@@ -3543,7 +3546,7 @@
 XextCreateExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:3547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3550: \"$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
@@ -3579,13 +3582,13 @@
                if test $cf_path != default ; then
                        CFLAGS="-I$cf_path/include $cf_save"
                        echo $ac_n "checking for $cf_test in $cf_path""... $ac_c" 1>&6
-echo "configure:3583: checking for $cf_test in $cf_path" >&5
+echo "configure:3586: checking for $cf_test in $cf_path" >&5
                else
                        echo $ac_n "checking for $cf_test""... $ac_c" 1>&6
-echo "configure:3586: checking for $cf_test" >&5
+echo "configure:3589: checking for $cf_test" >&5
                fi
                cat > conftest.$ac_ext <<EOF
-#line 3589 "configure"
+#line 3592 "configure"
 #include "confdefs.h"
 
 #include <X11/Intrinsic.h>
@@ -3594,7 +3597,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -3620,21 +3623,21 @@
                        if test $cf_path != default ; then
                                LIBS="-L$cf_path/lib $cf_lib $LIBS"
                                echo $ac_n "checking for $cf_lib in $cf_path""... $ac_c" 1>&6
-echo "configure:3624: checking for $cf_lib in $cf_path" >&5
+echo "configure:3627: checking for $cf_lib in $cf_path" >&5
                        else
                                LIBS="$cf_lib $LIBS"
                                echo $ac_n "checking for $cf_test in $cf_lib""... $ac_c" 1>&6
-echo "configure:3628: checking for $cf_test in $cf_lib" >&5
+echo "configure:3631: checking for $cf_test in $cf_lib" >&5
                        fi
                        cat > conftest.$ac_ext <<EOF
-#line 3631 "configure"
+#line 3634 "configure"
 #include "confdefs.h"
 
 int main() {
 $cf_test()
 ; return 0; }
 EOF
-if { (eval echo configure:3638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -3680,12 +3683,12 @@
 for ac_func in grantpt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3684: checking for $ac_func" >&5
+echo "configure:3687: 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 3689 "configure"
+#line 3692 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3708,7 +3711,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3715: \"$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
@@ -3730,7 +3733,7 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6
-echo "configure:3734: checking for openpty in -lutil" >&5
+echo "configure:3737: 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
@@ -3738,7 +3741,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lutil  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3742 "configure"
+#line 3745 "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
@@ -3749,7 +3752,7 @@
 openpty()
 ; return 0; }
 EOF
-if { (eval echo configure:3753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3756: \"$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
@@ -3784,7 +3787,7 @@
 # Extract the first word of "xterm", so it can be a program name with args.
 set dummy xterm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3788: checking for $ac_word" >&5
+echo "configure:3791: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_XTERM_PATH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3820,7 +3823,7 @@
 XTERM_USR=
 XTERM_GRP=
 echo $ac_n "checking for presumed installation-mode""... $ac_c" 1>&6
-echo "configure:3824: checking for presumed installation-mode" >&5
+echo "configure:3827: checking for presumed installation-mode" >&5
 if test -f "$XTERM_PATH" ; then
        ls -Llg $XTERM_PATH >conftest.out
        read cf_mode cf_links XTERM_USR XTERM_GRP cf_rest <conftest.out
@@ -3848,12 +3851,12 @@
        
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3852: checking for $ac_func" >&5
+echo "configure:3855: 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 3857 "configure"
+#line 3860 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3876,7 +3879,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3883: \"$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
@@ -3902,7 +3905,7 @@
 
 
 echo $ac_n "checking if we should use imake to help""... $ac_c" 1>&6
-echo "configure:3906: checking if we should use imake to help" >&5
+echo "configure:3909: 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
@@ -3927,7 +3930,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:3931: checking for $ac_word" >&5
+echo "configure:3934: 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
@@ -4066,7 +4069,7 @@
 
 
 echo $ac_n "checking for default terminal-id""... $ac_c" 1>&6
-echo "configure:4070: checking for default terminal-id" >&5
+echo "configure:4073: 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
@@ -4087,7 +4090,7 @@
 
 
 echo $ac_n "checking for default terminal-type""... $ac_c" 1>&6
-echo "configure:4091: checking for default terminal-type" >&5
+echo "configure:4094: 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
@@ -4104,7 +4107,7 @@
 
 
 echo $ac_n "checking for private terminfo-directory""... $ac_c" 1>&6
-echo "configure:4108: checking for private terminfo-directory" >&5
+echo "configure:4111: 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
@@ -4141,7 +4144,7 @@
 
 ###    checks for optional features
 echo $ac_n "checking if you want active-icons""... $ac_c" 1>&6
-echo "configure:4145: checking if you want active-icons" >&5
+echo "configure:4148: 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
@@ -4167,7 +4170,7 @@
 fi
 
 echo $ac_n "checking if you want ANSI color""... $ac_c" 1>&6
-echo "configure:4171: checking if you want ANSI color" >&5
+echo "configure:4174: 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
@@ -4193,7 +4196,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:4197: checking if you want 16 colors like aixterm" >&5
+echo "configure:4200: 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
@@ -4217,7 +4220,7 @@
 
 
        echo $ac_n "checking if you want 256 colors""... $ac_c" 1>&6
-echo "configure:4221: checking if you want 256 colors" >&5
+echo "configure:4224: 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
@@ -4242,12 +4245,40 @@
 #define OPT_256_COLORS 1
 EOF
 
+       else
+       echo $ac_n "checking if you want 88 colors""... $ac_c" 1>&6
+echo "configure:4251: checking if you want 88 colors" >&5
+       
+# Check whether --enable-88-color or --disable-88-color was given.
+if test "${enable_88_color+set}" = set; then
+  enableval="$enable_88_color"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    enable_88_color=yes 
+  else
+    enable_88_color=no
+  fi
+else
+  enableval=no 
+  enable_88_color=no
+  
+fi
+
+       echo "$ac_t""$enable_88_color" 1>&6
+       if test $enable_88_color = yes ; then
+               CHARPROC_DEPS="$CHARPROC_DEPS 88colres.h"
+               EXTRAHDRS="$EXTRAHDRS 88colres.h"
+               cat >> confdefs.h <<\EOF
+#define OPT_88_COLORS 1
+EOF
+
+       fi
        fi
 
 fi
 
 echo $ac_n "checking if you want blinking cursor""... $ac_c" 1>&6
-echo "configure:4251: checking if you want blinking cursor" >&5
+echo "configure:4282: 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
@@ -4273,7 +4304,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:4277: checking if you want bold colors mapped like IBM PC" >&5
+echo "configure:4308: 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
@@ -4297,7 +4328,7 @@
 
 
        echo $ac_n "checking if you want color-mode enabled by default""... $ac_c" 1>&6
-echo "configure:4301: checking if you want color-mode enabled by default" >&5
+echo "configure:4332: 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
@@ -4323,7 +4354,7 @@
 fi
 
 echo $ac_n "checking if you want support for color highlighting""... $ac_c" 1>&6
-echo "configure:4327: checking if you want support for color highlighting" >&5
+echo "configure:4358: 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
@@ -4347,7 +4378,7 @@
 
 
 echo $ac_n "checking if you want support for doublesize characters""... $ac_c" 1>&6
-echo "configure:4351: checking if you want support for doublesize characters" >&5
+echo "configure:4382: 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
@@ -4371,7 +4402,7 @@
 
 
 echo $ac_n "checking if you want fallback-support for box characters""... $ac_c" 1>&6
-echo "configure:4375: checking if you want fallback-support for box characters" >&5
+echo "configure:4406: 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
@@ -4395,7 +4426,7 @@
 
 
 echo $ac_n "checking if you want support for HP-style function keys""... $ac_c" 1>&6
-echo "configure:4399: checking if you want support for HP-style function keys" >&5
+echo "configure:4430: 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
@@ -4421,7 +4452,7 @@
 fi
 
 echo $ac_n "checking if you want support for internationalization""... $ac_c" 1>&6
-echo "configure:4425: checking if you want support for internationalization" >&5
+echo "configure:4456: checking if you want support for internationalization" >&5
 
 # Check whether --enable-i18n or --disable-i18n was given.
 if test "${enable_i18n+set}" = set; then
@@ -4447,7 +4478,7 @@
 fi
 
 echo $ac_n "checking if you want support for initial-erase setup""... $ac_c" 1>&6
-echo "configure:4451: checking if you want support for initial-erase setup" >&5
+echo "configure:4482: 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
@@ -4473,7 +4504,7 @@
 fi
 
 echo $ac_n "checking if you want support for input-method""... $ac_c" 1>&6
-echo "configure:4477: checking if you want support for input-method" >&5
+echo "configure:4508: 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
@@ -4493,13 +4524,13 @@
 echo "$ac_t""$enable_ximp" 1>&6
 
 echo $ac_n "checking if X libraries support input-method""... $ac_c" 1>&6
-echo "configure:4497: checking if X libraries support input-method" >&5
+echo "configure:4528: 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 4503 "configure"
+#line 4534 "configure"
 #include "confdefs.h"
 
 #include <X11/IntrinsicP.h>
@@ -4526,7 +4557,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_input_method=yes
 else
@@ -4549,7 +4580,7 @@
 fi
 
 echo $ac_n "checking if you want support for logging""... $ac_c" 1>&6
-echo "configure:4553: checking if you want support for logging" >&5
+echo "configure:4584: checking if you want support for logging" >&5
 
 # Check whether --enable-logging or --disable-logging was given.
 if test "${enable_logging+set}" = set; then
@@ -4573,7 +4604,7 @@
 EOF
 
        echo $ac_n "checking if you want to allow logging via a pipe""... $ac_c" 1>&6
-echo "configure:4577: checking if you want to allow logging via a pipe" >&5
+echo "configure:4608: 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
@@ -4600,7 +4631,7 @@
 fi
 
 echo $ac_n "checking if you want support for iconify/maximize translations""... $ac_c" 1>&6
-echo "configure:4604: checking if you want support for iconify/maximize translations" >&5
+echo "configure:4635: 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
@@ -4624,7 +4655,7 @@
 
 
 echo $ac_n "checking if you want NumLock to override keyboard tables""... $ac_c" 1>&6
-echo "configure:4628: checking if you want NumLock to override keyboard tables" >&5
+echo "configure:4659: 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
@@ -4648,7 +4679,7 @@
 
 
 echo $ac_n "checking if you want support for right-scrollbar""... $ac_c" 1>&6
-echo "configure:4652: checking if you want support for right-scrollbar" >&5
+echo "configure:4683: 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
@@ -4674,7 +4705,7 @@
 fi
 
 echo $ac_n "checking if you want check for redundant name-change""... $ac_c" 1>&6
-echo "configure:4678: checking if you want check for redundant name-change" >&5
+echo "configure:4709: 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
@@ -4698,7 +4729,7 @@
 
 
 echo $ac_n "checking if you want support for tek4014""... $ac_c" 1>&6
-echo "configure:4702: checking if you want support for tek4014" >&5
+echo "configure:4733: checking if you want support for tek4014" >&5
 
 # Check whether --enable-tek4014 or --disable-tek4014 was given.
 if test "${enable_tek4014+set}" = set; then
@@ -4728,7 +4759,7 @@
 fi
 
 echo $ac_n "checking if you want pulldown menus with a toolbar""... $ac_c" 1>&6
-echo "configure:4732: checking if you want pulldown menus with a toolbar" >&5
+echo "configure:4763: 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
@@ -4752,7 +4783,7 @@
 
 
 echo $ac_n "checking if you want VT52 emulation""... $ac_c" 1>&6
-echo "configure:4756: checking if you want VT52 emulation" >&5
+echo "configure:4787: checking if you want VT52 emulation" >&5
 
 # Check whether --enable-vt52 or --disable-vt52 was given.
 if test "${enable_vt52+set}" = set; then
@@ -4776,7 +4807,7 @@
 
 
 echo $ac_n "checking if you want wide-character support""... $ac_c" 1>&6
-echo "configure:4780: checking if you want wide-character support" >&5
+echo "configure:4811: 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
@@ -4805,7 +4836,7 @@
 fi
 
 echo $ac_n "checking if you want -ziconbeep option""... $ac_c" 1>&6
-echo "configure:4809: checking if you want -ziconbeep option" >&5
+echo "configure:4840: checking if you want -ziconbeep option" >&5
 
 # Check whether --enable-ziconbeep or --disable-ziconbeep was given.
 if test "${enable_ziconbeep+set}" = set; then
@@ -4830,7 +4861,7 @@
 
 # development/testing aids
 echo $ac_n "checking if you want debugging traces""... $ac_c" 1>&6
-echo "configure:4834: checking if you want debugging traces" >&5
+echo "configure:4865: checking if you want debugging traces" >&5
 
 # Check whether --enable-trace or --disable-trace was given.
 if test "${enable_trace+set}" = set; then
@@ -4859,7 +4890,7 @@
 
 
 echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6
-echo "configure:4863: checking if you want to see long compiling messages" >&5
+echo "configure:4894: 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
@@ -4899,7 +4930,7 @@
 
 
 echo $ac_n "checking if you want magic cookie emulation""... $ac_c" 1>&6
-echo "configure:4903: checking if you want magic cookie emulation" >&5
+echo "configure:4934: 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
@@ -4928,7 +4959,7 @@
 
 if test -n "$GCC" ; then
 echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
-echo "configure:4932: checking if you want to turn on gcc warnings" >&5
+echo "configure:4963: 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
@@ -4968,9 +4999,9 @@
 if test -n "$GCC"
 then
        echo "checking for gcc __attribute__ directives" 1>&6
-echo "configure:4972: checking for gcc __attribute__ directives" >&5
+echo "configure:5003: checking for gcc __attribute__ directives" >&5
        cat > conftest.$ac_ext <<EOF
-#line 4974 "configure"
+#line 5005 "configure"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -5008,7 +5039,7 @@
 EOF
                        ;;
                esac
-               if { (eval echo configure:5012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+               if { (eval echo configure:5043: \"$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
@@ -5025,11 +5056,11 @@
 if test -n "$GCC"
 then
                cat > conftest.$ac_ext <<EOF
-#line 5029 "configure"
+#line 5060 "configure"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
                echo "checking for gcc warning options" 1>&6
-echo "configure:5033: checking for gcc warning options" >&5
+echo "configure:5064: checking for gcc warning options" >&5
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
        cf_warn_CONST=""
@@ -5047,7 +5078,7 @@
                Wstrict-prototypes $cf_warn_CONST
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-               if { (eval echo configure:5051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+               if { (eval echo configure:5082: \"$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-114+/configure.in     Sun Aug 22 14:20:13 1999
+++ xterm-115/configure.in      Fri Sep 17 06:25:56 1999
@@ -208,6 +208,18 @@
                CHARPROC_DEPS="$CHARPROC_DEPS 256colres.h"
                EXTRAHDRS="$EXTRAHDRS 256colres.h"
                AC_DEFINE(OPT_256_COLORS,1)
+       else
+       AC_MSG_CHECKING(if you want 88 colors)
+       CF_ARG_ENABLE(88-color,
+               [  --enable-88-color       enable 88-color support],
+               [enable_88_color=yes],
+               [enable_88_color=no])
+       AC_MSG_RESULT($enable_88_color)
+       if test $enable_88_color = yes ; then
+               CHARPROC_DEPS="$CHARPROC_DEPS 88colres.h"
+               EXTRAHDRS="$EXTRAHDRS 88colres.h"
+               AC_DEFINE(OPT_88_COLORS,1)
+       fi
        fi
 
 fi
Index: ctlseqs.ms
--- xterm-114+/ctlseqs.ms       Sun Aug 29 07:44:02 1999
+++ xterm-115/ctlseqs.ms        Fri Sep 17 06:04:56 1999
@@ -755,7 +755,7 @@
 the following, from \fIrxvt\fP:
   \*(Ps = \*1\*0\*0 \(-> Set foreground and background color to default
 .sp
-If 256-color support is compiled, the following apply.
+If 88- or 256-color support is compiled, the following apply.
   \*(Ps = \*3\*8 ; \*5 ; \*(Ps \(-> Set background color to \*(Ps
   \*(Ps = \*4\*8 ; \*5 ; \*(Ps \(-> Set foreground color to \*(Ps
 .sp
Index: data.c
--- xterm-114+/data.c   Sun Aug 22 14:20:13 1999
+++ xterm-115/data.c    Sat Sep 18 14:23:33 1999
@@ -95,3 +95,39 @@
 int waitingForTrackInfo = 0;
 EventMode eventMode = NORMAL;
 
+#if OPT_WIDE_CHARS
+const unsigned short dec2ucs[32] = {
+       0x25ae          /* black vertical rectangle                     */,
+       0x25c6          /* black diamond                                */,
+       0x2592          /* medium shade                                 */,
+       0x2409          /* symbol for horizontal tabulation             */,
+       0x240c          /* symbol for form feed                         */,
+       0x240d          /* symbol for carriage return                   */,
+       0x240a          /* symbol for line feed                         */,
+       0x00b0          /* degree sign                                  */,
+       0x00b1          /* plus-minus sign                              */,
+       0x2424          /* symbol for newline                           */,
+       0x240b          /* symbol for vertical tabulation               */,
+       0x2518          /* box drawings light up and left               */,
+       0x2510          /* box drawings light down and left             */,
+       0x250c          /* box drawings light down and right            */,
+       0x2514          /* box drawings light up and right              */,
+       0x253c          /* box drawings light vertical and horizontal   */,
+       UCS_REPL        /* replacement character                        */,
+       UCS_REPL        /* replacement character                        */,
+       0x2500          /* box drawings light horizontal                */,
+       UCS_REPL        /* replacement character                        */,
+       UCS_REPL        /* replacement character                        */,
+       0x251c          /* box drawings light vertical and right        */,
+       0x2524          /* box drawings light vertical and left         */,
+       0x2534          /* box drawings light up and horizontal         */,
+       0x252c          /* box drawings light down and horizontal       */,
+       0x2502          /* box drawings light vertical                  */,
+       0x2264          /* less-than or equal to                        */,
+       0x2265          /* greater-than or equal to                     */,
+       0x03c0          /* greek small letter pi                        */,
+       0x2260          /* not equal to                                 */,
+       0x00a3          /* pound sign                                   */,
+       0x00b7          /* middle dot                                   */
+};
+#endif
Index: data.h
--- xterm-114+/data.h   Sun Aug 22 14:20:13 1999
+++ xterm-115/data.h    Sat Sep 18 14:22:43 1999
@@ -106,4 +106,8 @@
 #define        XkbBI_MarginBell                10
 #endif
 
+#if OPT_WIDE_CHARS
+const unsigned short dec2ucs[32];
+#endif
+
 #endif /* included_data_h */
Index: doublechr.c
--- xterm-114+/doublechr.c      Mon Jul 12 13:43:45 1999
+++ xterm-115/doublechr.c       Sat Sep 18 12:26:51 1999
@@ -132,15 +132,73 @@
 
 
 #if OPT_DEC_CHRSET
+static void
+discard_font(TScreen *screen, XTermFonts *data)
+{
+       TRACE(("discard_font chrset=%d %s\n", data->chrset,
+               (data->fn != 0) ? data->fn : "<no-name>"))
+
+       data->chrset = 0;
+       data->flags = 0;
+       if (data->gc != 0) {
+               XFreeGC(screen->display, data->gc);
+               data->gc = 0;
+       }
+       if (data->fn != 0) {
+               free(data->fn);
+               data->fn = 0;
+       }
+       if (data->fs != 0) {
+               XFreeFont(screen->display, data->fs);
+               data->fs = 0;
+       }
+}
+
 int
 xterm_Double_index(unsigned chrset, unsigned flags)
 {
-       int n = (chrset % 4);
-#if NUM_CHRSET == 8
-       if (flags & BOLD)
-               n |= 4;
-#endif
-       return n;
+       int n;
+       TScreen *screen = &term->screen;
+       XTermFonts *data = screen->double_fonts;
+
+       flags &= BOLD;
+       TRACE(("xterm_Double_index chrset=%#x, flags=%#x\n", chrset, flags))
+
+       for (n = 0; n < screen->fonts_used; n++) {
+               if (data[n].chrset == chrset
+                && data[n].flags == flags) {
+                       if (n != 0) {
+                               XTermFonts save;
+                               TRACE(("...xterm_Double_index -> %d (OLD:%d)\n", n, screen->fonts_used))
+                               save = data[n];
+                               while (n > 0) {
+                                       data[n] = data[n-1];
+                                       n--;
+                               }
+                               data[n] = save;
+                       }
+                       return n;
+               }
+       }
+
+       /* Not, found, push back existing fonts and create a new entry */
+       if (screen->fonts_used >= screen->cache_doublesize) {
+               TRACE(("...xterm_Double_index: discard oldest\n"))
+               discard_font(screen, &(data[screen->fonts_used - 1]));
+       } else {
+               screen->fonts_used += 1;
+       }
+       for (n = screen->fonts_used; n > 0; n--)
+               data[n] = data[n-1];
+
+       TRACE(("...xterm_Double_index -> (NEW:%d)\n", screen->fonts_used))
+
+       data[0].chrset = chrset;
+       data[0].flags = flags;
+       data[0].fn = 0;
+       data[0].fs = 0;
+       data[0].gc = 0;
+       return 0;
 }
 
 /*
@@ -153,40 +211,41 @@
        XGCValues gcv;
        register TScreen *screen = &term->screen;
        unsigned long mask = (GCForeground | GCBackground | GCFont);
-       int n = xterm_Double_index(chrset, flags);
-       char *name = xtermSpecialFont(flags, chrset);
+       int n;
+       char *name;
+       XTermFonts *data;
 
-       if (name == 0)
+       if ((name = xtermSpecialFont(flags, chrset)) == 0)
                return 0;
 
-       if (screen->double_fn[n] != 0) {
-               if (!strcmp(screen->double_fn[n], name)) {
-                       if (screen->double_fs[n] != 0) {
-                               XCopyGC(screen->display, old_gc, ~GCFont, screen->double_gc[n]);
-                               return screen->double_gc[n];
+       n = xterm_Double_index(chrset, flags);
+       data = &(screen->double_fonts[n]);
+       if (data->fn != 0) {
+               if (!strcmp(data->fn, name)) {
+                       if (data->fs != 0) {
+                               XCopyGC(screen->display, old_gc, ~GCFont, data->gc);
+                               return data->gc;
                        }
                }
+               discard_font(screen, data);
+               data->chrset = chrset;
+               data->flags  = flags & BOLD;
        }
-       screen->double_fn[n] = name;
-
-       if (screen->double_fs[n] != 0) {
-               XFreeFont(screen->display, screen->double_fs[n]);
-               screen->double_fs[n] = 0;
-       }
+       data->fn = name;
 
        TRACE(("xterm_DoubleGC %s %d: %s\n", flags&BOLD ? "BOLD" : "NORM", n, name))
 
-       if ((screen->double_fs[n] = XLoadQueryFont (screen->display, name)) == 0)
+       if ((data->fs = XLoadQueryFont (screen->display, name)) == 0)
                return 0;
        TRACE(("-> OK\n"))
 
        gcv.graphics_exposures = TRUE;  /* default */
-       gcv.font       = screen->double_fs[n]->fid;
+       gcv.font       = data->fs->fid;
        gcv.foreground = screen->foreground;
        gcv.background = term->core.background_pixel;
 
-       screen->double_gc[n] = XCreateGC (screen->display, VWindow(screen), mask, &gcv);
-       XCopyGC(screen->display, old_gc, ~GCFont, screen->double_gc[n]);
-       return screen->double_gc[n];
+       data->gc = XCreateGC (screen->display, VWindow(screen), mask, &gcv);
+       XCopyGC(screen->display, old_gc, ~GCFont, data->gc);
+       return data->gc;
 }
 #endif
Index: fontutils.c
--- xterm-114+/fontutils.c      Wed Sep 15 19:52:41 1999
+++ xterm-115/fontutils.c       Sat Sep 18 17:49:32 1999
@@ -48,6 +48,41 @@
 
 #include <stdio.h>
 
+/* from X11/Xlibint.h - not all vendors install this file */
+#define CI_NONEXISTCHAR(cs) (((cs)->width == 0) && \
+                            (((cs)->rbearing|(cs)->lbearing| \
+                              (cs)->ascent|(cs)->descent) == 0))
+
+#define CI_GET_CHAR_INFO_1D(fs,col,def,cs) \
+{ \
+    cs = def; \
+    if (col >= fs->min_char_or_byte2 && col <= fs->max_char_or_byte2) { \
+       if (fs->per_char == NULL) { \
+           cs = &fs->min_bounds; \
+       } else { \
+           cs = &fs->per_char[(col - fs->min_char_or_byte2)]; \
+           if (CI_NONEXISTCHAR(cs)) cs = def; \
+       } \
+    } \
+}
+
+#define CI_GET_CHAR_INFO_2D(fs,row,col,def,cs) \
+{ \
+    cs = def; \
+    if (row >= fs->min_byte1 && row <= fs->max_byte1 && \
+       col >= fs->min_char_or_byte2 && col <= fs->max_char_or_byte2) { \
+       if (fs->per_char == NULL) { \
+           cs = &fs->min_bounds; \
+       } else { \
+           cs = &fs->per_char[((row - fs->min_byte1) * \
+                               (fs->max_char_or_byte2 - \
+                                fs->min_char_or_byte2 + 1)) + \
+                              (col - fs->min_char_or_byte2)]; \
+           if (CI_NONEXISTCHAR(cs)) cs = def; \
+       } \
+    } \
+}
+
 #define MAX_FONTNAME 200
 
 /*
@@ -567,8 +602,16 @@
         * (0) is special, and is not used.
         */
        for (ch = 1; ch < 32; ch++) {
-               if (xtermMissingChar(ch, nfs)
-                || xtermMissingChar(ch, bfs)) {
+               int n = ch;
+#if OPT_WIDE_CHARS
+               if (screen->utf8_mode) {
+                       n = dec2ucs[ch];
+                       if (n == UCS_REPL)
+                               continue;
+               }
+#endif
+               if (xtermMissingChar(n, nfs)
+                || xtermMissingChar(n, bfs)) {
                        screen->fnt_boxes = False;
                        break;
                }
@@ -692,31 +735,35 @@
 }
 
 #if OPT_BOX_CHARS
+
 /*
  * Returns true if the given character is missing from the specified font.
  */
 Bool
-xtermMissingChar(int ch, XFontStruct *font)
+xtermMissingChar(unsigned ch, XFontStruct *font)
 {
-       XCharStruct     *pc = 0;
-
        if (font != 0
        && font->per_char != 0
        && !font->all_chars_exist) {
-               if (ch < (int) font->min_char_or_byte2
-                || ch > (int) font->max_char_or_byte2) {
-                       TRACE(("MissingChar %c\n", ch))
-                       return True;
+               static  XCharStruct dft, *tmp = &dft, *pc = 0;
+
+               if (font->max_byte1 == 0) {
+#if OPT_WIDE_CHARS
+                       if (ch > 255) {
+                               TRACE(("xtermMissingChar %#04x (row)\n", ch))
+                               return True;
+                       }
+#endif
+                       CI_GET_CHAR_INFO_1D (font, ch, tmp, pc);
+               }
+#if OPT_WIDE_CHARS
+               else {
+                       CI_GET_CHAR_INFO_2D (font, (ch >> 8), (ch & 0xff), tmp, pc);
                }
-               if (font->min_byte1 == 0
-                && font->max_byte1 == 0) {
-                       pc = font->per_char + (ch - font->min_char_or_byte2);
-               } /* FIXME: this does not handle doublebyte characters */
-               if (pc != 0
-                && (pc->lbearing + pc->rbearing) == 0
-                && (pc->ascent   + pc->descent) == 0
-                && (pc->width == 0)) {
-                       TRACE(("MissingChar %c\n", ch))
+#endif
+
+               if (CI_NONEXISTCHAR(pc)) {
+                       TRACE(("xtermMissingChar %#04x (!exists)\n", ch))
                        return True;
                }
        }
@@ -887,6 +934,28 @@
        GC gc2;
        const short *p;
 
+#if OPT_WIDE_CHARS
+       /*
+        * Try to show line-drawing characters if we happen to be in UTF-8
+        * mode, but have gotten an old-style font.
+        */
+       if (screen->utf8_mode
+        && (ch > 127)
+        && (ch != UCS_REPL)) {
+               unsigned n;
+               for (n = 1; n < 32; n++) {
+                       if (dec2ucs[n] == ch
+                        && !xtermMissingChar(n, (flags & BOLD)
+                                 ? screen->fnt_bold
+                                 : screen->fnt_norm)) {
+                               TRACE(("...use xterm-style linedrawing\n"))
+                               ch = n;
+                               break;
+                       }
+               }
+       }
+#endif
+
        TRACE(("DRAW_BOX(%d) cell %dx%d at %d,%d%s\n",
                ch, screen->fnt_high, screen->fnt_wide, y, x,
                (ch < 0 || ch >= (int)(sizeof(lines)/sizeof(lines[0]))) ? "-BAD": ""))
@@ -979,7 +1048,7 @@
                        screen->menu_font_sizes[n] = -1;
                        if (fs != 0) {
                                screen->menu_font_sizes[n] = FontSize(fs);
-                               TRACE(("menu_font_sizes[%d] = %ld\n", n, 
+                               TRACE(("menu_font_sizes[%d] = %ld\n", n,
                                        screen->menu_font_sizes[n]))
                                XFreeFont (screen->display, fs);
                        }
@@ -1104,8 +1173,8 @@
     TScreen *screen = &term->screen;
 
     TRACE(("SetVTFont(i=%d, name1=%s, name2=%s)\n", i,
-       name1 ? name1 : "<null>",
-       name2 ? name2 : "<null>"))
+       name1 ? name1 : "<null>",
+       name2 ? name2 : "<null>"))
 
     if (i >= 0 && i < NMENUFONTS) {
        if (i == fontMenu_fontsel) {    /* go get the selection */
Index: fontutils.h
--- xterm-114+/fontutils.h      Sun Feb  7 12:54:50 1999
+++ xterm-115/fontutils.h       Sat Sep 18 17:33:13 1999
@@ -54,7 +54,7 @@
 #endif
 
 #if OPT_BOX_CHARS
-extern Bool xtermMissingChar(int ch, XFontStruct *font);
+extern Bool xtermMissingChar(unsigned ch, XFontStruct *font);
 extern void xtermDrawBoxChar(TScreen *screen, int ch, unsigned flags, GC gc, int x, int y);
 #endif
 
Index: input.c
--- xterm-114+/input.c  Sun Aug 22 14:20:13 1999
+++ xterm-115/input.c   Sat Sep 18 14:28:40 1999
@@ -251,7 +251,7 @@
                strbuf[nbytes++] = 0x80 | ((c >> 12) & 0x3f);
                strbuf[nbytes++] = 0x80 | ((c >>  6) & 0x3f);
                strbuf[nbytes++] = 0x80 | ( c        & 0x3f);
-       } else if (c < 0x80000000U) {
+       } else if (c < UCS_LIMIT) {
                strbuf[nbytes++] = 0xfe |  (c >> 30);
                strbuf[nbytes++] = 0x80 | ((c >> 24) & 0x3f);
                strbuf[nbytes++] = 0x80 | ((c >> 18) & 0x3f);
@@ -259,7 +259,7 @@
                strbuf[nbytes++] = 0x80 | ((c >> 6)  & 0x3f);
                strbuf[nbytes++] = 0x80 | ( c        & 0x3f);
        } else
-               return convertFromUTF8(0xfffd, strbuf);
+               return convertFromUTF8(UCS_REPL, strbuf);
 
        return nbytes;
 }
Index: menu.c
--- xterm-114+/menu.c   Sun Aug 22 14:20:13 1999
+++ xterm-115/menu.c    Sat Sep 18 12:46:02 1999
@@ -528,6 +528,12 @@
                             fontMenuEntries[fontMenu_font_loadable].widget,
                             FALSE);
 #endif
+#if OPT_DEC_CHRSET
+           if (term->screen.cache_doublesize == 0)
+               set_sensitivity (mw,
+                               fontMenuEntries[fontMenu_font_doublesize].widget,
+                               False);
+#endif
        }
        FindFontSelection (NULL, True);
        set_sensitivity (mw,
@@ -1140,7 +1146,8 @@
        XtPointer closure GCC_UNUSED,
        XtPointer data GCC_UNUSED)
 {
-    term->screen.font_doublesize = ! term->screen.font_doublesize;
+    if (term->screen.cache_doublesize != 0)
+        term->screen.font_doublesize = ! term->screen.font_doublesize;
     update_font_doublesize();
     Redraw ();
 }
Index: misc.c
--- xterm-114+/misc.c   Sun Aug 22 14:20:13 1999
+++ xterm-115/misc.c    Fri Sep 17 06:22:45 1999
@@ -1281,7 +1281,7 @@
                                        strcat(reply, ";7");
                                if (term->flags & INVISIBLE)
                                        strcat(reply, ";8");
-                               if_OPT_256_COLORS(screen,{
+                               if_OPT_EXT_COLORS(screen,{
                                if (term->flags & FG_COLOR) {
                                        if (term->cur_foreground >= 16)
                                                sprintf(reply+strlen(reply),
Index: print.c
--- xterm-114+/print.c  Mon Jul 12 13:43:45 1999
+++ xterm-115/print.c   Fri Sep 17 06:42:49 1999
@@ -100,7 +100,7 @@
        int last = screen->max_col;
        int col;
 #if OPT_ISO_COLORS && OPT_PRINT_COLORS
-#if OPT_256_COLORS
+#if OPT_EXT_COLORS
        register Char *fbf = 0;
        register Char *fbb = 0;
 #else
@@ -113,7 +113,7 @@
 
        TRACE(("printLine(row=%d, chr=%d)\n", row, chr));
 
-       if_OPT_256_COLORS(screen,{
+       if_OPT_EXT_COLORS(screen,{
                fbf = SCRN_BUF_FGRND(screen, row);
                fbb = SCRN_BUF_BGRND(screen, row);
        })
@@ -134,7 +134,7 @@
                for (col = 0; col < last; col++) {
                        Char ch = c[col];
 #if OPT_PRINT_COLORS
-                       if_OPT_256_COLORS(screen,{
+                       if_OPT_EXT_COLORS(screen,{
                                if (screen->print_attributes > 1) {
                                        fg = (a[col] & FG_COLOR)
                                                ? extract_fg((fbf[col]<<8)|(fbb[col]), a[col])
Index: ptydata.c
--- xterm-114+/ptydata.c        Sun Jul  4 15:08:14 1999
+++ xterm-115/ptydata.c Sat Sep 18 14:29:17 1999
@@ -51,8 +51,7 @@
 #endif
 #endif
 
-#define UTF8_FLAG       0x80000000U
-#define UTF8_CODE(code) ((code) | (screen->utf8_controls ? 0 : UTF8_FLAG))
+#define UTF8_CODE(code) ((code) | (screen->utf8_controls ? 0 : UCS_LIMIT))
 
 int getPtyData(TScreen *screen, fd_set *select_mask, PtyData *data)
 {
@@ -107,16 +106,16 @@
                    /* Combine UTF-8 into Unicode */
                    if (c < 0x80) {
                        if (screen->utf_count > 0)
-                           data->buf2[j++] = 0xfffd;
+                           data->buf2[j++] = UCS_REPL;
                        data->buf2[j++] = c;
                        screen->utf_count = 0;
                    } else if (c < 0xc0) {
                        if (screen->utf_count < 1) {
-                           data->buf2[j++] = 0xfffd;
+                           data->buf2[j++] = UCS_REPL;
                        } else {
                            if (screen->utf_char > 0x03ff) {
                                /* value would be >0xffff */
-                               screen->utf_char = 0xfffd;
+                               screen->utf_char = UCS_REPL;
                            } else {
                              screen->utf_char <<= 6;
                              screen->utf_char |= (c & 0x3f);
@@ -127,7 +126,7 @@
                        }
                    } else {
                        if (screen->utf_count > 0)
-                           data->buf2[j++] = 0xfffd;
+                           data->buf2[j++] = UCS_REPL;
                        if (c < 0xe0) {
                            screen->utf_count = 1;
                            screen->utf_char = (c & 0x1f);
@@ -144,7 +143,7 @@
                            screen->utf_count = 5;
                            screen->utf_char = (c & 0x01);
                        } else {
-                           data->buf2[j++] = 0xfffd;
+                           data->buf2[j++] = UCS_REPL;
                            screen->utf_count = 0;
                        }
                    }
@@ -169,8 +168,8 @@
            for (i = 0; i < data->cnt; i++) {
                if (!(i%8)) TRACE(("%s", i ? "\n    " : "READ"))
                TRACE((" %c%04X",
-                       (UTF8_FLAG & data->ptr[i]) ? '*' : ' ',
-                       data->ptr[i] & ~UTF8_FLAG))
+                       (UCS_LIMIT & data->ptr[i]) ? '*' : ' ',
+                       data->ptr[i] & ~UCS_LIMIT))
            }
            TRACE(("\n"))
 #endif
Index: ptyx.h
--- xterm-114+/ptyx.h   Sun Aug 22 14:20:13 1999
+++ xterm-115/ptyx.h    Sat Sep 18 14:30:12 1999
@@ -208,7 +208,7 @@
 #define CharOf(n) ((n) & 0xff)
 
 /*
- * ANSI emulation.
+ * ANSI emulation, special character codes
  */
 #define INQ    0x05
 #define BEL    0x07
@@ -248,6 +248,10 @@
 #define DFT_KBD_DIALECT "B"            /* default USASCII */
 #endif
 
+/* constants used for utf8 mode */
+#define UCS_REPL       0xfffd          
+#define UCS_LIMIT      0x80000000U     /* both limit and flag for non-UCS */
+
 #define TERMCAP_SIZE 1500              /* 1023 is standard; 'screen' exceeds */
 
 #define NMENUFONTS 9                   /* font entries in fontMenu */
@@ -401,6 +405,10 @@
 #define OPT_256_COLORS  0 /* true if xterm is configured with 256 colors */
 #endif
 
+#ifndef OPT_88_COLORS
+#define OPT_88_COLORS  0 /* true if xterm is configured with 88 colors */
+#endif
+
 #ifndef OPT_HIGHLIGHT_COLOR
 #define OPT_HIGHLIGHT_COLOR 1 /* true if xterm supports color highlighting */
 #endif
@@ -477,6 +485,17 @@
 /* You must have ANSI/ISO colors to support 256 colors */
 #undef OPT_256_COLORS
 #endif
+
+#if OPT_88_COLORS && !OPT_ISO_COLORS
+/* You must have ANSI/ISO colors to support 88 colors */
+#undef OPT_88_COLORS
+#endif
+
+#if OPT_88_COLORS && OPT_256_COLORS
+/* 256 colors supersedes 88 colors */
+#undef OPT_88_COLORS
+#endif
+
 /***====================================================================***/
 
 #if OPT_ISO_COLORS
@@ -498,11 +517,21 @@
 #define COLOR_13       13
 #define COLOR_14       14
 #define COLOR_15       15
+
 #if OPT_256_COLORS
-#define NUM_ANSI_COLORS 256
-#else /* ! OPT_256_COLORS */
-#define NUM_ANSI_COLORS 16
-#endif /* OPT_256_COLORS */
+# define NUM_ANSI_COLORS 256
+#elif OPT_88_COLORS
+# define NUM_ANSI_COLORS 88
+#else
+# define NUM_ANSI_COLORS 16
+#endif
+
+#if NUM_ANSI_COLORS > 16
+# define OPT_EXT_COLORS  1
+#else
+# define OPT_EXT_COLORS  0
+#endif
+
 #define COLOR_BD       (NUM_ANSI_COLORS)       /* BOLD */
 #define COLOR_UL       (NUM_ANSI_COLORS+1)     /* UNDERLINE */
 #define COLOR_BL       (NUM_ANSI_COLORS+2)     /* BLINK */
@@ -510,9 +539,12 @@
 #ifndef DFT_COLORMODE
 #define DFT_COLORMODE TRUE     /* default colorMode resource */
 #endif
-#else
+
+#else  /* !OPT_ISO_COLORS */
+
 #define if_OPT_ISO_COLORS(screen, code) /* nothing */
 #define TERM_COLOR_FLAGS 0
+
 #endif /* OPT_ISO_COLORS */
 
 #if OPT_AIX_COLORS
@@ -521,15 +553,15 @@
 #define if_OPT_AIX_COLORS(screen, code) /* nothing */
 #endif
 
-#if OPT_256_COLORS
-#define if_OPT_256_COLORS(screen, code) if(screen->colorMode) code
-#define if_OPT_ISO_TRADITIONAL_COLORS(screen, code) /* nothing */
+#if OPT_256_COLORS || OPT_88_COLORS
+# define if_OPT_EXT_COLORS(screen, code) if(screen->colorMode) code
+# define if_OPT_ISO_TRADITIONAL_COLORS(screen, code) /* nothing */
 #elif OPT_ISO_COLORS
-#define if_OPT_256_COLORS(screen, code) /* nothing */
-#define if_OPT_ISO_TRADITIONAL_COLORS(screen, code) if(screen->colorMode) code
+# define if_OPT_EXT_COLORS(screen, code) /* nothing */
+# define if_OPT_ISO_TRADITIONAL_COLORS(screen, code) if(screen->colorMode) code
 #else
-#define if_OPT_256_COLORS(screen, code) /* nothing */
-#define if_OPT_ISO_TRADITIONAL_COLORS(screen, code) /*nothing*/
+# define if_OPT_EXT_COLORS(screen, code) /* nothing */
+# define if_OPT_ISO_TRADITIONAL_COLORS(screen, code) /*nothing*/
 #endif
 
 /***====================================================================***/
@@ -671,7 +703,7 @@
        , OFF_CHARS = 1
        , OFF_ATTRS = 2
 #if OPT_ISO_COLORS
-#if OPT_256_COLORS
+#if OPT_256_COLORS || OPT_88_COLORS
        , OFF_FGRND
        , OFF_BGRND
 #else
@@ -706,6 +738,14 @@
 #define SCRN_BUF_CSETS(screen, row) BUF_CSETS(screen->visbuf, row)
 #define SCRN_BUF_WIDEC(screen, row) BUF_WIDEC(screen->visbuf, row)
 
+typedef struct {
+       unsigned        chrset;
+       unsigned        flags;
+       XFontStruct *   fs;
+       GC              gc;
+       char *          fn;
+} XTermFonts;
+
        /* indices into save_modes[] */
 typedef enum {
        DP_DECCKM,
@@ -824,10 +864,10 @@
 #endif
 #if OPT_DEC_CHRSET
        Boolean         font_doublesize;/* enable font-scaling          */
-       Char            chrset;         /* character-set index & code   */
-       XFontStruct *   double_fs[NUM_CHRSET];
-       GC              double_gc[NUM_CHRSET];
-       char *          double_fn[NUM_CHRSET];
+       int             cache_doublesize;/* limit of our cache          */
+       Char            cur_chrset;     /* character-set index & code   */
+       int             fonts_used;     /* count items in double_fonts  */
+       XTermFonts      double_fonts[NUM_CHRSET];
 #endif
 #if OPT_WIDE_CHARS
        Boolean         wide_chars;     /* true when 16-bit chars       */
Index: screen.c
--- xterm-114+/screen.c Sun Aug 22 14:20:13 1999
+++ xterm-115/screen.c  Fri Sep 17 06:42:31 1999
@@ -287,7 +287,7 @@
        register int length)            /* length of string */
 {
 #if OPT_ISO_COLORS
-#if OPT_256_COLORS
+#if OPT_EXT_COLORS
        register Char *fbf = 0;
        register Char *fbb = 0;
 #else
@@ -310,7 +310,7 @@
        col   = SCRN_BUF_CHARS(screen, screen->cur_row) + screen->cur_col;
        attrs = SCRN_BUF_ATTRS(screen, screen->cur_row) + screen->cur_col;
 
-       if_OPT_256_COLORS(screen,{
+       if_OPT_EXT_COLORS(screen,{
                fbf = SCRN_BUF_FGRND(screen, screen->cur_row) + screen->cur_col;
                fbb = SCRN_BUF_BGRND(screen, screen->cur_row) + screen->cur_col;
        })
@@ -344,7 +344,7 @@
        flags |= CHARDRAWN;
        memset( attrs, flags,  length);
 
-       if_OPT_256_COLORS(screen,{
+       if_OPT_EXT_COLORS(screen,{
                memset( fbf,  cur_fg_bg >> 8, length);
                memset( fbb,  cur_fg_bg & 0xff, length);
        })
@@ -390,7 +390,7 @@
                                else if (j == OFF_ATTRS)
                                        memset(screen->save_ptr[i+j], flags, size);
 #if OPT_ISO_COLORS
-#if OPT_256_COLORS
+#if OPT_EXT_COLORS
                                else if (j == OFF_FGRND)
                                        memset(screen->save_ptr[i+j], term->sgr_foreground, size);
                                else if (j == OFF_BGRND)
@@ -526,7 +526,7 @@
            ptr[i] = ' ';
        for (i=col; i<col+n; i++)
            attrs[i] = flags;
-       if_OPT_256_COLORS(screen,{
+       if_OPT_EXT_COLORS(screen,{
            ptr = BUF_FGRND(sb, row);
            memmove(ptr + col + n, ptr + col, nbytes);
            memset(ptr + col, term->sgr_foreground, n);
@@ -577,7 +577,7 @@
        bzero  (ptr + size - n, n);
        memset (attrs + size - n, TERM_COLOR_FLAGS, n);
 
-       if_OPT_256_COLORS(screen,{
+       if_OPT_EXT_COLORS(screen,{
            ptr = BUF_FGRND(sb, row);
            memmove(ptr + col, ptr + col + n, nbytes);
            memset(ptr + size - n, term->sgr_foreground, n);
@@ -643,7 +643,7 @@
 
        for (row = toprow; row <= maxrow; y += FontHeight(screen), row++) {
 #if OPT_ISO_COLORS
-#if OPT_256_COLORS
+#if OPT_EXT_COLORS
           register Char *fbf = 0;
           register Char *fbb = 0;
 #else
@@ -776,7 +776,7 @@
           })
 
           flags = attrs[col];
-          if_OPT_256_COLORS(screen,{
+          if_OPT_EXT_COLORS(screen,{
                fbf = SCRN_BUF_FGRND(screen, lastind + topline);
                fbb = SCRN_BUF_BGRND(screen, lastind + topline);
                fg_bg = (fbf[col] << 8) | (fbb[col]);
@@ -801,7 +801,7 @@
                if ((attrs[col] != flags)
                 || (hilite && (col > hi_col))
 #if OPT_ISO_COLORS
-#if OPT_256_COLORS
+#if OPT_EXT_COLORS
                 || ((flags & FG_COLOR) && (extract_fg((fbf[col]<<8)|fbb[col],attrs[col]) != fg))
                 || ((flags & BG_COLOR) && (extract_bg((fbf[col]<<8)|fbb[col]) != bg))
 #else
@@ -831,7 +831,7 @@
                        hilite = False;
 
                   flags = attrs[col];
-                  if_OPT_256_COLORS(screen,{
+                  if_OPT_EXT_COLORS(screen,{
                        fg_bg = (fbf[col]<<8) | fbb[col];
                        fg = extract_fg(fg_bg, flags);
                        bg = extract_bg(fg_bg);
@@ -913,7 +913,7 @@
            ScrnClrWrapped(screen, row);
            bzero (BUF_CHARS(buf, row), len);
            memset(BUF_ATTRS(buf, row), flags, len);
-           if_OPT_256_COLORS(screen,{
+           if_OPT_EXT_COLORS(screen,{
                memset(BUF_FGRND(buf, row), term->sgr_foreground, len);
                memset(BUF_BGRND(buf, row), term->cur_background, len);
            })
Index: terminfo
--- xterm-114+/terminfo Sun Aug 29 16:08:07 1999
+++ xterm-115/terminfo  Fri Sep 17 19:57:51 1999
@@ -458,8 +458,8 @@
        use=xterm-xfree86,
 #
 # OPT_PC_MODE should be settable with OSC, and the init for this
-# should turn it off; then ncv could be 0
-# this uses RGB values 0..255; terminfo(5) says they're terminal-dependant
+# should turn it off; then ncv could be 0.
+# This uses RGB values 0..255; terminfo(5) says they're terminal-dependant
 # if curses assumes something else (0..1000, like the API?) then this needs
 # to be modified
 xterm-256color|xterm with 256 colors,
@@ -473,6 +473,9 @@
        setb=\E[48;5;%p1%dm,
        setf=\E[38;5;%p1%dm,
        use=xterm-xfree86,
+xterm-88color|xterm with 88 colors,
+       colors#88,
+       use=xterm-256color,
 #
 # This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
 # To use it, your decTerminalID resource must be set to 200 or above, and the
Index: util.c
--- xterm-114+/util.c   Sun Jul 18 16:29:08 1999
+++ xterm-115/util.c    Sat Sep 18 17:38:16 1999
@@ -716,7 +716,7 @@
        memset(SCRN_BUF_CHARS(screen, row) + col, ' ',   len);
        memset(SCRN_BUF_ATTRS(screen, row) + col, flags, len);
 
-       if_OPT_256_COLORS(screen,{
+       if_OPT_EXT_COLORS(screen,{
                memset(SCRN_BUF_FGRND(screen, row) + col, term->sgr_foreground, len);
                memset(SCRN_BUF_BGRND(screen, row) + col, term->cur_background, len);
        })
@@ -866,12 +866,6 @@
                        ClearAbove(screen);
                break;
 
-       case 3:
-               /* xterm addition - erase saved lines. */
-               screen->savedlines = 0;
-               ScrollBarDrawThumb( screen->scrollWidget );
-               break;
-
        case 2:
                /*
                 * We use 'ClearScreen()' throughout the remainder of the
@@ -890,6 +884,12 @@
                        ClearScreen(screen);
                }
                break;
+
+       case 3:
+               /* xterm addition - erase saved lines. */
+               screen->savedlines = 0;
+               ScrollBarDrawThumb( screen->scrollWidget );
+               break;
        }
        screen->protected_mode = saved_mode;
 }
@@ -1404,7 +1404,7 @@
                        y, x, chrset, len, (int)len, text))
 
                if (gc2 != 0) { /* draw actual double-sized characters */
-                       XFontStruct *fs = screen->double_fs[xterm_Double_index(chrset, flags)];
+                       XFontStruct *fs = screen->double_fonts[xterm_Double_index(chrset, flags)].fs;
                        XRectangle rect, *rp = &rect;
                        Cardinal nr = 1;
                        int adjust;
@@ -1599,11 +1599,16 @@
 
                screen->fnt_boxes = True;
                for (last = 0; last < len; last++) {
-                       if (xtermMissingChar(text[last], font)) {
+                       unsigned ch = text[last];
+#if OPT_WIDE_CHARS
+                       if (text2 != 0)
+                               ch |= (text2[last] << 8);
+#endif
+                       if (xtermMissingChar(ch, font)) {
                                if (last > first) {
                                        DrawSegment(first,last);
                                }
-                               xtermDrawBoxChar(screen, text[last], flags, gc, DrawX(last), y);
+                               xtermDrawBoxChar(screen, ch, flags, gc, DrawX(last), y);
                                first = last + 1;
                        }
                }
@@ -1714,12 +1719,17 @@
 {
        int fg;
 
-#if OPT_256_COLORS
+#if OPT_EXT_COLORS
        fg = (int) ((color >> 8) & 0xff);
 #else
        fg = (int) ((color >> 4) & 0xf);
 #endif
 
+       /*
+        * If we allow exactly 256 colors, there is no room in a byte for
+        * the bold/blink/underline colors.
+        */
+#if NUM_ANSI_COLORS < 256
        if (term->screen.colorAttrMode
         || (fg == extract_bg(color))) {
                if (term->screen.colorULMode && (flags & UNDERLINE))
@@ -1729,13 +1739,14 @@
                if (term->screen.colorBLMode && (flags & BLINK))
                        fg = COLOR_BL;
        }
+#endif
        return fg;
 }
 
 int
 extract_bg (unsigned color)
 {
-#if OPT_256_COLORS
+#if OPT_EXT_COLORS
        return (int) (color & 0xff);
 #else
        return (int) (color & 0xf);
@@ -1756,9 +1767,9 @@
 {
        unsigned my_bg;
        unsigned my_fg;
-#if OPT_256_COLORS
-       my_bg = (bg >= 0) && (bg < 256) ? bg : 0;
-       my_fg = (fg >= 0) && (fg < 256) ? fg : my_bg;
+#if OPT_EXT_COLORS
+       my_bg = (bg >= 0) && (bg < NUM_ANSI_COLORS) ? bg : 0;
+       my_fg = (fg >= 0) && (fg < NUM_ANSI_COLORS) ? fg : my_bg;
        return (my_fg << 8) | my_bg;
 #else
        my_bg = (bg >= 0) && (bg < 16) ? bg : 0;
@@ -1843,7 +1854,7 @@
        TScreen *screen = &term->screen;
        Char set = SCRN_BUF_CSETS(screen, row)[0];
        if (!CSET_DOUBLE(set))
-               set = screen->chrset;
+               set = screen->cur_chrset;
        return set;
 }
 #endif /* OPT_DEC_CHRSET */
Index: version.h
--- xterm-114+/version.h        Wed Sep 15 20:51:01 1999
+++ xterm-115/version.h Sat Sep 18 12:53:42 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   114
-#define XFREE86_VERSION "XFree86 3.9.15b"
+#define XTERM_PATCH   115
+#define XFREE86_VERSION "XFree86 3.9.16a"
Index: vttests/88colors.pl
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-115/vttests/88colors.pl       Fri Sep 17 06:04:56 1999
@@ -0,0 +1,13 @@
+#!/usr/bin/perl
+# $XFree86: xterm/vttests/88colors.pl,v 1.1 1999/09/14 13:03:03 swall Exp $
+# Made from 256colors.pl
+
+for ($bg = 0; $bg < 88; $bg++) {
+    print "\x1b[9;1H\x1b[48;5;${bg}m\x1b[2J";
+    for ($fg = 0; $fg < 88; $fg++) {
+       print "\x1b[38;5;${fg}m";
+       printf "%03.3d/%03.3d ", $fg, $bg;
+    }
+    sleep 1;
+    print "\n";
+}
Index: vttests/88colors2.pl
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-115/vttests/88colors2.pl      Fri Sep 17 06:04:56 1999
@@ -0,0 +1,66 @@
+#!/usr/bin/perl
+# Author: Steve Wall <swall@redcom.com>
+# $XFree86: xterm/vttests/88colors2.pl,v 1.1 1999/09/14 13:03:03 swall Exp $
+# Made from 256colors2.pl
+
+# use the resources for colors 0-15 - usually more-or-less a
+# reproduction of the standard ANSI colors, but possibly more
+# pleasing shades
+
+# colors 16-79 are a 4x4x4 color cube
+@steps=(0,139,205,255);
+for ($red = 0; $red < 4; $red++) {
+    for ($green = 0; $green < 4; $green++) {
+       for ($blue = 0; $blue < 4; $blue++) {
+           printf("\x1b]4;%d;rgb:%2.2x/%2.2x/%2.2x\x1b\\",
+                  16 + ($red * 16) + ($green * 4) + $blue,
+                  int (@steps[$red]),
+                  int (@steps[$green]),
+                  int (@steps[$blue]));
+       }
+    }
+}
+
+# colors 80-87 are a grayscale ramp, intentionally leaving out
+# black and white
+for ($gray = 0; $gray < 8; $gray++) {
+    $level = ($gray * 23.18181818) + 46.36363636;
+    if( $gray > 0 ) { $level += 23.18181818; }
+    printf("\x1b]4;%d;rgb:%2.2x/%2.2x/%2.2x\x1b\\",
+          80 + $gray, int($level), int($level), int($level));
+}
+
+
+# display the colors
+
+# first the system ones:
+print "System colors:\n";
+for ($color = 0; $color < 8; $color++) {
+    print "\x1b[48;5;${color}m  ";
+}
+print "\x1b[0m\n";
+for ($color = 8; $color < 16; $color++) {
+    print "\x1b[48;5;${color}m  ";
+}
+print "\x1b[0m\n\n";
+
+# now the color cube
+print "Color cube, 4x4x4:\n";
+for ($green = 0; $green < 4; $green++) {
+    for ($red = 0; $red < 4; $red++) {
+       for ($blue = 0; $blue < 4; $blue++) {
+           $color = 16 + ($red * 16) + ($green * 4) + $blue;
+           print "\x1b[48;5;${color}m  ";
+       }
+       print "\x1b[0m ";
+    }
+    print "\n";
+}
+
+
+# now the grayscale ramp
+print "Grayscale ramp:\n";
+for ($color = 80; $color < 88; $color++) {
+    print "\x1b[48;5;${color}m  ";
+}
+print "\x1b[0m\n";
Index: vttests/doublechars.sh
--- xterm-114+/vttests/doublechars.sh   Mon Jul 12 13:43:45 1999
+++ xterm-115/vttests/doublechars.sh    Fri Sep 17 06:04:56 1999
@@ -65,7 +65,7 @@
        $CMD $OPT "${ESC}[?3h" >/dev/tty
 fi
 
-for SGR in 0 1 4 7
+for SGR in 0 1 4 5 7
 do
        $CMD $OPT "${ESC}[0;${SGR}m" >/dev/tty
        for DBL in 5 3 4 6 5
Index: xterm.h
--- xterm-114+/xterm.h  Wed Sep 15 05:13:46 1999
+++ xterm-115/xterm.h   Sat Sep 18 12:15:02 1999
@@ -157,6 +157,7 @@
 #define XtNboldFont            "boldFont"
 #define XtNboldMode            "boldMode"
 #define XtNc132                        "c132"
+#define XtNcacheDoublesize     "cacheDoublesize"
 #define XtNcharClass           "charClass"
 #define XtNcolor0              "color0"
 #define XtNcolor1              "color1"
@@ -205,16 +206,16 @@
 #define XtNlogInhibit          "logInhibit"
 #define XtNlogging             "logging"
 #define XtNloginShell          "loginShell"
+#define XtNmarginBell          "marginBell"
 #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 XtNpointerColorBackground "pointerColorBackground"
 #define XtNpointerShape                "pointerShape"
 #define XtNprintAttributes     "printAttributes"
 #define XtNprinterAutoClose    "printerAutoClose"
@@ -261,13 +262,14 @@
 #define XtCBoldFont            "BoldFont"
 #define XtCBoldMode            "BoldMode"
 #define XtCC132                        "C132"
+#define XtCCacheDoublesize     "CacheDoublesize"
 #define XtCCharClass           "CharClass"
 #define XtCColorMode           "ColorMode"
 #define XtCColumn              "Column"
 #define XtCCurses              "Curses"
 #define XtCCursorBlink         "CursorBlink"
-#define XtCCursorOnTime                "CursorOnTime"
 #define XtCCursorOffTime       "CursorOffTime"
+#define XtCCursorOnTime                "CursorOnTime"
 #define XtCCutNewline          "CutNewline"
 #define XtCCutToBeginningOfLine        "CutToBeginningOfLine"
 #define XtCDecTerminalID       "DecTerminalID"
Index: xterm.log.html
--- xterm-114+/xterm.log.html   Wed Sep 15 21:08:41 1999
+++ xterm-115/xterm.log.html    Sat Sep 18 14:34:32 1999
@@ -41,6 +41,7 @@
 xc/programs/Xserver/hw/xfree86).
 
 <UL>
+<LI><A HREF="#xterm_115">Patch #115 - 1999/9/18 - XFree86 3.9.16a</A>
 <LI><A HREF="#xterm_114">Patch #114 - 1999/9/15 - XFree86 3.9.16</A>
 <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>
@@ -157,6 +158,25 @@
 <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_115">Patch #115 - 1999/9/18 - XFree86 3.9.16a</A></H1>
+<ul>
+       <li>integrated changes by Steve Wall to implement an 88-color model
+         for systems where 256-colors cannot be allocated.
+
+       <li>when 256-color configuration is compiled, colored bold and
+         underlining is not available; ifdef'd to avoid possible odd effects
+         in this case (reported by Steve Wall).
+
+       <li>add resource <em>cacheDoublesize</em>, to limit the caching of font
+         information for double-sized characters.  This addresses a problem
+         reported by Aryeh Koenigsberg for X terminals with limited font
+         memory.
+
+       <li>modify treatment of line-drawing characters in UTF-8 mode so that
+         the Unicode values are used rather than the C0 codes for storing the
+         translated characters (request by Markus Kuhn).
+</ul>
 
 <H1><A NAME="xterm_114">Patch #114 - 1999/9/15 - XFree86 3.9.16</A></H1>
 <ul>
Index: xterm.man
--- xterm-114+/xterm.man        Wed Sep 15 20:41:17 1999
+++ xterm-115/xterm.man Sat Sep 18 12:47:47 1999
@@ -912,6 +912,12 @@
 If ``true'', the entire line is selected.
 The default is ``true.''
 .TP 8
+.B "cacheDoublesize (\fPclass\fB CacheDoublesize)"
+Specifies the maximum number of double-sized fonts which are cached by
+xterm.
+The default (8) may be too large for some X terminals with limited memory.
+Set this to zero to disable doublesize fonts altogether.
+.TP 8
 .B "charClass (\fPclass\fB CharClass)"
 Specifies comma-separated lists of character class bindings of the form
 [\fIlow\fP\-]\fIhigh\fP:\fIvalue\fP.  These are used in determining which
Index: xtermcfg.hin
--- xterm-114+/xtermcfg.hin     Sun Aug 22 14:20:13 1999
+++ xterm-115/xtermcfg.hin      Fri Sep 17 06:25:04 1999
@@ -53,6 +53,7 @@
 #undef HAVE_XKBSTDBELL         /* AC_CHECK_FUNCS(XkbStdBell) */
 #undef NO_ACTIVE_ICON          /* CF_ARG_DISABLE(active-icon) */
 #undef OPT_256_COLORS          /* CF_ARG_ENABLE(256-color) */
+#undef OPT_88_COLORS           /* CF_ARG_ENABLE(88-color) */
 #undef OPT_AIX_COLORS          /* CF_ARG_DISABLE(16-color) */
 #undef OPT_BLINK_CURS          /* CF_ARG_DISABLE(blink-cursor) */
 #undef OPT_BOX_CHARS           /* CF_ARG_DISABLE(boxchars) */