xterm-44.patch.txt

XFree86 3.9g - xterm patch #44 - T.Dickey <dickey@clark.net>
 
This implements the first part of the VT100 doublesize characters for xterm,
as well as fixing a handful of bugs:
 
        + the doublesize character support uses the normal font (using scaled
          fonts will be another patch) with blanks to simulate doublesize
          characters.  This patch does most of the global changes that'll be
          required.  I've hidden most of the details in macros and ifdefs so
          it's easy to configure out (part of the patch is a configure option
          for that purpose).
 
        + corrected limits in DeleteChar() function -- it's always ignored the
          size of the left border and scrollbar.  I noticed this when working
          on the doublesize characters since the glitch was doubled in size
          (i.e., it wrapped some garbage around the right margin).
 
        + corrected 'memmove()' logic, for standalone builds (it referenced a
          malloc wrapper from my development library).
 
        + add a check for HideCursor() to prevent repeated screen updates
          (which can cause a spurious cursor glitch to appear, e.g., during
          scrolling).  I noticed this with the 3.2A version (but only a few
          weeks ago, when I started working on this patch).
 
--------------------------------------------------------------------------------
 /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/doublechr.c |  119 ++++
 xc/doc/specs/xterm/ctlseqs.ms                                   |   14 
 xc/programs/xterm/Imakefile                                     |    4 
 xc/programs/xterm/Makefile.in                                   |    4 
 xc/programs/xterm/VTPrsTbl.c                                    |   15 
 xc/programs/xterm/VTparse.def                                   |    3 
 xc/programs/xterm/VTparse.h                                     |    3 
 xc/programs/xterm/button.c                                      |    9 
 xc/programs/xterm/charproc.c                                    |   60 +!
 xc/programs/xterm/configure                                     |  289 !!!!!!!!!!
 xc/programs/xterm/configure.in                                  |    8 
 xc/programs/xterm/ptyx.h                                        |   68 ++
 xc/programs/xterm/screen.c                                      |  100 ++!
 xc/programs/xterm/tabs.c                                        |    4 
 xc/programs/xterm/util.c                                        |  123 ++!!
 xc/programs/xterm/xterm.h                                       |   18 
 xc/programs/xterm/xterm.man                                     |    5 
 xc/programs/xterm/xtermcfg.hin                                  |    5 
 18 files changed, 445 insertions, 4 deletions, 402 modifications
--------------------------------------------------------------------------------
Index: ctlseqs.ms
*** /build/x11r6/XFree86-3.9g/xc/doc/specs/xterm/ctlseqs.ms     Tue Jun  3 16:05:50 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/doc/specs/xterm/ctlseqs.ms     Sun Jun 22 14:46:15 1997
***************
*** 301,307 ****
  but there is support for later DEC VT terminals (i.e., VT220 and VT320),
  as well as ISO 6429 and \fIaixterm\fP color controls.
  VT102 features not supported are
! double size characters and blinking characters.
  There are additional control sequences to provide
  \fIxterm-\fPdependent functions, such as the scrollbar or window size.
  Where the function is specified by DEC or ISO 6429, the code assigned
--- 301,307 ----
  but there is support for later DEC VT terminals (i.e., VT220 and VT320),
  as well as ISO 6429 and \fIaixterm\fP color controls.
  VT102 features not supported are
! auto-repeat and blinking characters.
  There are additional control sequences to provide
  \fIxterm-\fPdependent functions, such as the scrollbar or window size.
  Where the function is specified by DEC or ISO 6429, the code assigned
***************
*** 367,372 ****
--- 367,384 ----
  .
  .IP \\*(Es\\*(Sp\\*N
  Set ANSI conformance level 3 (vt300).
+ .
+ .IP \\*(Es\\*#\\*3
+ DEC double-height line, top half (DECDHL)
+ .
+ .IP \\*(Es\\*#\\*4
+ DEC double-height line, bottom half (DECDHL)
+ .
+ .IP \\*(Es\\*#\\*5
+ DEC single-width line (DECSWL)
+ .
+ .IP \\*(Es\\*#\\*6
+ DEC double-width line (DECDWL)
  .
  .IP \\*(Es\\*#\\*8
  DEC Screen Alignment Test (DECALN)
Index: Imakefile
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/Imakefile       Tue Jun  3 16:05:50 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/Imakefile       Sun Jun 22 14:46:15 1997
***************
*** 73,82 ****
            MAINSRC = main.c
            MAINOBJ = main.o
  #endif
!           SRCS1 = button.c charproc.c cursor.c data.c input.c \
                  $(MAINSRC) menu.c misc.c screen.c scrollbar.c tabs.c \
                  TekPrsTbl.c Tekproc.c util.c VTPrsTbl.c $(EXTRASRC)
!           OBJS1 = button.o charproc.o cursor.o data.o input.o \
                  $(MAINOBJ) menu.o misc.o screen.o scrollbar.o tabs.o \
                  TekPrsTbl.o Tekproc.o util.o VTPrsTbl.o $(EXTRAOBJ)
            SRCS2 = resize.c
--- 73,82 ----
            MAINSRC = main.c
            MAINOBJ = main.o
  #endif
!           SRCS1 = button.c charproc.c cursor.c data.c doublechr.c input.c \
                  $(MAINSRC) menu.c misc.c screen.c scrollbar.c tabs.c \
                  TekPrsTbl.c Tekproc.c util.c VTPrsTbl.c $(EXTRASRC)
!           OBJS1 = button.o charproc.o cursor.o data.o doublechr.o input.o \
                  $(MAINOBJ) menu.o misc.o screen.o scrollbar.o tabs.o \
                  TekPrsTbl.o Tekproc.o util.o VTPrsTbl.o $(EXTRAOBJ)
            SRCS2 = resize.c
Index: Makefile.in
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/Makefile.in     Tue Jun 10 15:10:00 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/Makefile.in     Sun Jun 22 14:46:15 1997
***************
*** 38,47 ****
  EXTRASRC      = @EXTRASRCS@
  EXTRAOBJ      = @EXTRAOBJS@
  
!           SRCS1 = button.c charproc.c cursor.c data.c input.c \
                  main.c menu.c misc.c screen.c scrollbar.c tabs.c \
                  TekPrsTbl.c Tekproc.c util.c VTPrsTbl.c $(EXTRASRC)
!           OBJS1 = button.o charproc.o cursor.o data.o input.o \
                  main.o menu.o misc.o screen.o scrollbar.o tabs.o \
                  TekPrsTbl.o Tekproc.o util.o VTPrsTbl.o $(EXTRAOBJ)
            SRCS2 = resize.c
--- 38,47 ----
  EXTRASRC      = @EXTRASRCS@
  EXTRAOBJ      = @EXTRAOBJS@
  
!           SRCS1 = button.c charproc.c cursor.c data.c doublechr.c input.c \
                  main.c menu.c misc.c screen.c scrollbar.c tabs.c \
                  TekPrsTbl.c Tekproc.c util.c VTPrsTbl.c $(EXTRASRC)
!           OBJS1 = button.o charproc.o cursor.o data.o doublechr.o input.o \
                  main.o menu.o misc.o screen.o scrollbar.o tabs.o \
                  TekPrsTbl.o Tekproc.o util.o VTPrsTbl.o $(EXTRAOBJ)
            SRCS2 = resize.c
Index: VTPrsTbl.c
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/VTPrsTbl.c      Wed Jan  8 18:18:35 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/VTPrsTbl.c      Sun Jun 22 14:46:15 1997
***************
*** 26,35 ****
   * SOFTWARE.
   */
  
  #include "VTparse.h"
  
! /* FIXME: there should be a single config.h */
  #define OPT_VT52_MODE   1 /* true if xterm supports VT52 emulation */
  
  /*
   * Stupid Apollo C preprocessor can't handle long lines.  So... To keep
--- 26,40 ----
   * SOFTWARE.
   */
  
+ #ifdef HAVE_CONFIG_H
+ #include <xtermcfg.h>
+ #endif
+ 
  #include "VTparse.h"
  
! #ifndef OPT_VT52_MODE
  #define OPT_VT52_MODE   1 /* true if xterm supports VT52 emulation */
+ #endif
  
  /*
   * Stupid Apollo C preprocessor can't handle long lines.  So... To keep
***************
*** 3990,4000 ****
  CASE_GROUND_STATE,
  CASE_GROUND_STATE,
  CASE_GROUND_STATE,
! CASE_GROUND_STATE,
  /*    4               5               6               7       */
! CASE_GROUND_STATE,
! CASE_GROUND_STATE,
! CASE_GROUND_STATE,
  CASE_GROUND_STATE,
  /*    8               9               :               ;       */
  CASE_DECALN,
--- 3995,4005 ----
  CASE_GROUND_STATE,
  CASE_GROUND_STATE,
  CASE_GROUND_STATE,
! CASE_DECDHL,
  /*    4               5               6               7       */
! CASE_DECDHL,
! CASE_DECSWL,
! CASE_DECDWL,
  CASE_GROUND_STATE,
  /*    8               9               :               ;       */
  CASE_DECALN,
Index: VTparse.def
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/VTparse.def     Wed Jan  8 18:18:35 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/VTparse.def     Sun Jun 22 14:46:15 1997
***************
*** 117,119 ****
--- 117,122 ----
  CASE_REP
  CASE_CSI_EX_STATE
  CASE_DECSTR
+ CASE_DECDHL
+ CASE_DECSWL
+ CASE_DECDWL
Index: VTparse.h
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/VTparse.h       Wed Jan  8 18:18:35 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/VTparse.h       Sun Jun 22 14:46:15 1997
***************
*** 179,181 ****
--- 179,184 ----
  #define CASE_REP 107
  #define CASE_CSI_EX_STATE 108
  #define CASE_DECSTR 109
+ #define CASE_DECDHL 110
+ #define CASE_DECSWL 111
+ #define CASE_DECDWL 112
Index: button.c
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/button.c        Tue Jun  3 16:05:50 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/button.c        Sun Jun 22 14:46:15 1997
***************
*** 542,547 ****
--- 542,548 ----
  {
        TScreen *screen = &term->screen;
  
+       TRACE(("StartSelect row=%d, col=%d\n", startrow, startcol))
        if (screen->cursor_state)
            HideCursor ();
        if (numberOfClicks == 1) {
***************
*** 711,716 ****
--- 712,718 ----
  {
        int coord = Coordinate(row, col);
        
+       TRACE(("ExtendExtend row=%d, col=%d\n", row, col))
        if (eventMode == LEFTEXTENSION 
         && (coord + (selectUnit!=SELECTCHAR)) > Coordinate(endSRow, endSCol)) {
                /* Whoops, he's changed his mind.  Do RIGHTEXTENSION */
***************
*** 1178,1183 ****
--- 1180,1186 ----
        }
        *lp = '\0';             /* make sure we have end marked */
        
+       TRACE(("Salted TEXT:%.*s\n", lp - line, line))
        screen->selection_length = (lp - line);
        _OwnSelection(term, params, num_params);
  }
***************
*** 1432,1437 ****
--- 1435,1446 ----
        *eol = 0;
        i = Length(screen, row, scol, ecol);
        ecol = scol + i;
+ #if OPT_DEC_CHRSET
+       if (CSET_DOUBLE(SCRN_BUF_CSETS(screen, row)[0])) {
+               scol = (scol + 0) / 2;
+               ecol = (ecol + 1) / 2;
+       }
+ #endif
        if (*eol == 0) {
                if(ScrnGetAttributes(screen, row + screen->topline, 0, &attr, 1) == 1) {
                        *eol = (attr & LINEWRAPPED) ? 0 : 1;
Index: charproc.c
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/charproc.c      Tue Jun 10 15:10:00 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/charproc.c      Sun Jun 22 14:46:15 1997
***************
*** 135,141 ****
  static void VTNonMaskableEvent PROTO_XT_EV_HANDLER_ARGS;
  static void VTallocbuf PROTO((void));
  static void VTparse PROTO((void));
- static void WriteText PROTO(( TScreen *screen, char *str, int len));
  static void ansi_modes PROTO((XtermWidget termw, void (*func)(unsigned *p, unsigned mask)));
  static void bitclr PROTO((unsigned *p, unsigned mask));
  static void bitcpy PROTO((unsigned *p, unsigned q, unsigned mask));
--- 135,140 ----
***************
*** 787,793 ****
        register TScreen *screen = &term->screen;
        Pixel   fg;
  
!       HideCursor();
        if (color >= 0) {
                term->flags |= FG_COLOR;
        } else {
--- 786,792 ----
        register TScreen *screen = &term->screen;
        Pixel   fg;
  
!       /* FIXME HideCursor(); */
        if (color >= 0) {
                term->flags |= FG_COLOR;
        } else {
***************
*** 951,956 ****
--- 950,956 ----
            }
  #endif
  
+           TRACE(("parse %d -> %d\n", c, parsestate[c]))
            switch (parsestate[c]) {
                 case CASE_PRINT:
                        /* printable characters */
***************
*** 1095,1100 ****
--- 1095,1115 ----
                        parsestate = groundtable;
                        break;
  
+                case CASE_DECDHL:
+                       xterm_DECDHL(c == '3');
+                       parsestate = groundtable;
+                       break;
+ 
+                case CASE_DECSWL:
+                       xterm_DECSWL();
+                       parsestate = groundtable;
+                       break;
+ 
+                case CASE_DECDWL:
+                       xterm_DECDWL();
+                       parsestate = groundtable;
+                       break;
+ 
                 case CASE_SCR_STATE:
                        /* enter scr state */
                        parsestate = scrtable;
***************
*** 2374,2380 ****
                        n = len;
                next_col = screen->cur_col + n;
  
!               WriteText(screen, (char *)ptr, n);
  
                /*
                 * the call to WriteText updates screen->cur_col.
--- 2389,2395 ----
                        n = len;
                next_col = screen->cur_col + n;
  
!               WriteText(screen, ptr, n);
  
                /*
                 * the call to WriteText updates screen->cur_col.
***************
*** 2391,2400 ****
   * write a string str of length len onto the screen at
   * the current cursor position.  update cursor position.
   */
! static void
  WriteText(screen, str, len)
      register TScreen  *screen;
!     register char     *str;
      register int      len;
  {
        unsigned flags  = term->flags;
--- 2406,2415 ----
   * write a string str of length len onto the screen at
   * the current cursor position.  update cursor position.
   */
! void
  WriteText(screen, str, len)
      register TScreen  *screen;
!     register Char     *str;
      register int      len;
  {
        unsigned flags  = term->flags;
***************
*** 2402,2414 ****
        unsigned bg     = term->cur_background;
        GC      currentGC;
   
        if(screen->cur_row - screen->topline <= screen->max_row) {
                if(screen->cursor_state)
                        HideCursor();
  
                if (flags & INSERT)
                        InsertChar(screen, len);
!               if (!(AddToRefresh(screen))) {
                        /* make sure that the correct GC is current */
                        currentGC = updatedXtermGC(screen, flags, fg, bg, False);
  
--- 2417,2435 ----
        unsigned bg     = term->cur_background;
        GC      currentGC;
   
+       TRACE(("write (%2d,%2d) (%d) %3d:%.*s\n",
+               screen->cur_row,
+               screen->cur_col,
+               curXtermChrSet(screen->cur_row),
+               len, len, str))
+ 
        if(screen->cur_row - screen->topline <= screen->max_row) {
                if(screen->cursor_state)
                        HideCursor();
  
                if (flags & INSERT)
                        InsertChar(screen, len);
!               if (!AddToRefresh(screen)) {
                        /* make sure that the correct GC is current */
                        currentGC = updatedXtermGC(screen, flags, fg, bg, False);
  
***************
*** 2418,2426 ****
                        if (flags & INVISIBLE)
                                memset(str, ' ', len);
  
                        drawXtermText(screen, flags, currentGC,
!                               CursorX(screen, screen->cur_col),
                                CursorY(screen, screen->cur_row),
                                str, len);
  
                        resetXtermGC(screen, flags, False);
--- 2439,2452 ----
                        if (flags & INVISIBLE)
                                memset(str, ' ', len);
  
+                       TRACE(("%s @%d, calling drawXtermText (%d,%d)\n",
+                               __FILE__, __LINE__,
+                               screen->cur_col,
+                               screen->cur_row))
                        drawXtermText(screen, flags, currentGC,
!                               CurCursorX(screen, screen->cur_row, screen->cur_col),
                                CursorY(screen, screen->cur_row),
+                               curXtermChrSet(screen->cur_row),
                                str, len);
  
                        resetXtermGC(screen, flags, False);
***************
*** 3462,3467 ****
--- 3488,3498 ----
     new->num_ptrs = new->screen.colorMode ? 3 : 2;
     new->sgr_foreground = -1;
  #endif /* OPT_ISO_COLORS */
+ 
+ #if OPT_DEC_CHRSET
+    new->num_ptrs = 4;
+ #endif
+ 
     new->screen.underline = request->screen.underline;
  
     new->cur_foreground = 0;
***************
*** 3969,3974 ****
--- 4000,4010 ----
  
        c     = SCRN_BUF_CHARS(screen, screen->cursor_row)[screen->cursor_col];
        flags = SCRN_BUF_ATTRS(screen, screen->cursor_row)[screen->cursor_col];
+ #if OPT_DEC_CHRSET
+       if (CSET_DOUBLE(SCRN_BUF_CSETS(screen, screen->cursor_row)[0])) {
+               c = SCRN_BUF_CHARS(screen, screen->cursor_row)[screen->cursor_col/2];
+       }
+ #endif
  
  #ifndef NO_ACTIVE_ICON
        if (IsIcon(screen)) {
***************
*** 4024,4033 ****
                }
        }
  
        drawXtermText(screen, flags, currentGC,
                x = CursorX(screen, screen->cur_col),
                y = CursorY(screen, screen->cur_row),
!               (char *) &c, 1);
  
        if (!screen->select && !screen->always_highlight) {
                screen->box->x = x;
--- 4060,4071 ----
                }
        }
  
+       TRACE(("%s @%d, calling drawXtermText\n", __FILE__, __LINE__))
        drawXtermText(screen, flags, currentGC,
                x = CursorX(screen, screen->cur_col),
                y = CursorY(screen, screen->cur_row),
!               curXtermChrSet(screen->cur_row),
!               &c, 1);
  
        if (!screen->select && !screen->always_highlight) {
                screen->box->x = x;
***************
*** 4049,4057 ****
        register TScreen *screen = &term->screen;
        GC      currentGC;
        register int flags, fg = 0, bg = 0;
!       char c;
        Boolean in_selection;
  
        if(screen->cursor_row - screen->topline > screen->max_row)
                return;
  
--- 4087,4097 ----
        register TScreen *screen = &term->screen;
        GC      currentGC;
        register int flags, fg = 0, bg = 0;
!       Char c;
        Boolean in_selection;
  
+       if (screen->cursor_state == OFF)        /* FIXME */
+               return;
        if(screen->cursor_row - screen->topline > screen->max_row)
                return;
  
***************
*** 4087,4095 ****
--- 4127,4137 ----
        if (c == 0)
                c = ' ';
  
+       TRACE(("%s @%d, calling drawXtermText\n", __FILE__, __LINE__))
        drawXtermText(screen, flags, currentGC,
                CursorX(screen, screen->cursor_col),
                CursorY(screen, screen->cursor_row),
+               curXtermChrSet(screen->cur_row),
                &c, 1);
  
        screen->cursor_state = OFF;
Index: configure
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/configure       Sun Jun 15 14:07:12 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/configure       Sun Jun 22 14:46:15 1997
***************
*** 26,31 ****
--- 26,33 ----
  ac_help="$ac_help
    --enable-color-mode     set default colorMode resource  (default: off)"
  ac_help="$ac_help
+   --disable-doublechars   disable support for double-size characters (default: on)"
+ ac_help="$ac_help
    --enable-trace          set to enable debugging traces (default: off)"
  ac_help="$ac_help
    --disable-vt52          disable VT52 emulation (default: on)"
***************
*** 568,574 ****
  # 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:572: 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
--- 570,576 ----
  # 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:574: 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
***************
*** 597,603 ****
    # 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:601: 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
--- 599,605 ----
    # 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:603: 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
***************
*** 645,651 ****
  fi
  
  echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
! echo "configure:649: 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.
--- 647,653 ----
  fi
  
  echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
! echo "configure:651: 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.
***************
*** 655,665 ****
  cross_compiling=$ac_cv_prog_cc_cross
  
  cat > conftest.$ac_ext <<EOF
! #line 659 "configure"
  #include "confdefs.h"
  main(){return(0);}
  EOF
! if { (eval echo configure:663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
--- 657,667 ----
  cross_compiling=$ac_cv_prog_cc_cross
  
  cat > conftest.$ac_ext <<EOF
! #line 661 "configure"
  #include "confdefs.h"
  main(){return(0);}
  EOF
! if { (eval echo configure:665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
***************
*** 679,690 ****
    { 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:683: 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:688: 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
--- 681,692 ----
    { 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:685: 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:690: 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
***************
*** 693,699 ****
    yes;
  #endif
  EOF
! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:697: \"$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
--- 695,701 ----
    yes;
  #endif
  EOF
! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:699: \"$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
***************
*** 708,714 ****
    ac_save_CFLAGS="$CFLAGS"
    CFLAGS=
    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
! echo "configure:712: 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
--- 710,716 ----
    ac_save_CFLAGS="$CFLAGS"
    CFLAGS=
    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
! echo "configure:714: 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
***************
*** 736,742 ****
  fi
  
  echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
! echo "configure:740: checking how to run the C preprocessor" >&5
  # On Suns, sometimes $CPP names a directory.
  if test -n "$CPP" && test -d "$CPP"; then
    CPP=
--- 738,744 ----
  fi
  
  echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
! echo "configure:742: checking how to run the C preprocessor" >&5
  # On Suns, sometimes $CPP names a directory.
  if test -n "$CPP" && test -d "$CPP"; then
    CPP=
***************
*** 751,763 ****
    # On the NeXT, cc -E runs the code through the compiler's parser,
    # not just through cpp.
    cat > conftest.$ac_ext <<EOF
! #line 755 "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:761: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    :
--- 753,765 ----
    # On the NeXT, cc -E runs the code through the compiler's parser,
    # not just through cpp.
    cat > conftest.$ac_ext <<EOF
! #line 757 "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:763: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    :
***************
*** 768,780 ****
    rm -rf conftest*
    CPP="${CC-cc} -E -traditional-cpp"
    cat > conftest.$ac_ext <<EOF
! #line 772 "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:778: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    :
--- 770,782 ----
    rm -rf conftest*
    CPP="${CC-cc} -E -traditional-cpp"
    cat > conftest.$ac_ext <<EOF
! #line 774 "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:780: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    :
***************
*** 798,810 ****
  
  if test $ac_cv_prog_gcc = yes; then
      echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
! echo "configure:802: 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 808 "configure"
  #include "confdefs.h"
  #include <sgtty.h>
  Autoconf TIOCGETP
--- 800,812 ----
  
  if test $ac_cv_prog_gcc = yes; then
      echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
! echo "configure:804: 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 810 "configure"
  #include "confdefs.h"
  #include <sgtty.h>
  Autoconf TIOCGETP
***************
*** 822,828 ****
  
    if test $ac_cv_prog_gcc_traditional = no; then
      cat > conftest.$ac_ext <<EOF
! #line 826 "configure"
  #include "confdefs.h"
  #include <termio.h>
  Autoconf TCGETA
--- 824,830 ----
  
    if test $ac_cv_prog_gcc_traditional = no; then
      cat > conftest.$ac_ext <<EOF
! #line 828 "configure"
  #include "confdefs.h"
  #include <termio.h>
  Autoconf TCGETA
***************
*** 873,879 ****
  # 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:877: 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
--- 875,881 ----
  # 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:879: 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
***************
*** 925,933 ****
  
  ###   checks for UNIX variants that set C preprocessor variables
  echo $ac_n "checking for AIX""... $ac_c" 1>&6
! echo "configure:929: checking for AIX" >&5
  cat > conftest.$ac_ext <<EOF
! #line 931 "configure"
  #include "confdefs.h"
  #ifdef _AIX
    yes
--- 927,935 ----
  
  ###   checks for UNIX variants that set C preprocessor variables
  echo $ac_n "checking for AIX""... $ac_c" 1>&6
! echo "configure:931: checking for AIX" >&5
  cat > conftest.$ac_ext <<EOF
! #line 933 "configure"
  #include "confdefs.h"
  #ifdef _AIX
    yes
***************
*** 949,955 ****
  
  
  echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
! echo "configure:953: 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
--- 951,957 ----
  
  
  echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
! echo "configure:955: 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
***************
*** 971,987 ****
  
  ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
  echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
! echo "configure:975: 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 980 "configure"
  #include "confdefs.h"
  #include <minix/config.h>
  EOF
  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
! { (eval echo configure:985: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
--- 973,989 ----
  
  ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
  echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
! echo "configure:977: 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 982 "configure"
  #include "confdefs.h"
  #include <minix/config.h>
  EOF
  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
! { (eval echo configure:987: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
***************
*** 1023,1034 ****
  
  ###   checks for typedefs
  echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
! echo "configure:1027: 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 1032 "configure"
  #include "confdefs.h"
  #include <stdlib.h>
  #include <stdarg.h>
--- 1025,1036 ----
  
  ###   checks for typedefs
  echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
! echo "configure:1029: 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 1034 "configure"
  #include "confdefs.h"
  #include <stdlib.h>
  #include <stdarg.h>
***************
*** 1036,1042 ****
  #include <float.h>
  EOF
  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
! { (eval echo configure:1040: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
--- 1038,1044 ----
  #include <float.h>
  EOF
  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
! { (eval echo configure:1042: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
***************
*** 1053,1059 ****
  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 1057 "configure"
  #include "confdefs.h"
  #include <string.h>
  EOF
--- 1055,1061 ----
  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 1059 "configure"
  #include "confdefs.h"
  #include <string.h>
  EOF
***************
*** 1071,1077 ****
  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 1075 "configure"
  #include "confdefs.h"
  #include <stdlib.h>
  EOF
--- 1073,1079 ----
  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 1077 "configure"
  #include "confdefs.h"
  #include <stdlib.h>
  EOF
***************
*** 1092,1098 ****
    :
  else
    cat > conftest.$ac_ext <<EOF
! #line 1096 "configure"
  #include "confdefs.h"
  #include <ctype.h>
  #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
--- 1094,1100 ----
    :
  else
    cat > conftest.$ac_ext <<EOF
! #line 1098 "configure"
  #include "confdefs.h"
  #include <ctype.h>
  #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
***************
*** 1103,1109 ****
  exit (0); }
  
  EOF
! if { (eval echo configure:1107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
  then
    :
  else
--- 1105,1111 ----
  exit (0); }
  
  EOF
! if { (eval echo configure:1109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
  then
    :
  else
***************
*** 1127,1138 ****
  fi
  
  echo $ac_n "checking for size_t""... $ac_c" 1>&6
! echo "configure:1131: checking for size_t" >&5
  if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
    cat > conftest.$ac_ext <<EOF
! #line 1136 "configure"
  #include "confdefs.h"
  #include <sys/types.h>
  #if STDC_HEADERS
--- 1129,1140 ----
  fi
  
  echo $ac_n "checking for size_t""... $ac_c" 1>&6
! echo "configure:1133: checking for size_t" >&5
  if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
    cat > conftest.$ac_ext <<EOF
! #line 1138 "configure"
  #include "confdefs.h"
  #include <sys/types.h>
  #if STDC_HEADERS
***************
*** 1160,1171 ****
  fi
  
  echo $ac_n "checking for time_t""... $ac_c" 1>&6
! echo "configure:1164: 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 1169 "configure"
  #include "confdefs.h"
  #include <sys/types.h>
  #if STDC_HEADERS
--- 1162,1173 ----
  fi
  
  echo $ac_n "checking for time_t""... $ac_c" 1>&6
! echo "configure:1166: 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 1171 "configure"
  #include "confdefs.h"
  #include <sys/types.h>
  #if STDC_HEADERS
***************
*** 1201,1212 ****
        
  do
  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
! echo "configure:1205: 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 1210 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char $ac_func(); below.  */
--- 1203,1214 ----
        
  do
  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
! echo "configure:1207: 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 1212 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char $ac_func(); below.  */
***************
*** 1229,1235 ****
  
  ; return 0; }
  EOF
! if { (eval echo configure:1233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_$ac_func=yes"
  else
--- 1231,1237 ----
  
  ; return 0; }
  EOF
! if { (eval echo configure:1235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_$ac_func=yes"
  else
***************
*** 1257,1263 ****
  if test ".$ac_cv_func_memmove" != .yes ; then
        if test $ac_cv_func_bcopy = yes ; then
                echo $ac_n "checking if bcopy does overlapping moves""... $ac_c" 1>&6
! echo "configure:1261: 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
--- 1259,1265 ----
  if test ".$ac_cv_func_memmove" != .yes ; then
        if test $ac_cv_func_bcopy = yes ; then
                echo $ac_n "checking if bcopy does overlapping moves""... $ac_c" 1>&6
! echo "configure:1263: 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
***************
*** 1266,1272 ****
    cf_cv_good_bcopy=unknown
  else
    cat > conftest.$ac_ext <<EOF
! #line 1270 "configure"
  #include "confdefs.h"
  
  int main() {
--- 1268,1274 ----
    cf_cv_good_bcopy=unknown
  else
    cat > conftest.$ac_ext <<EOF
! #line 1272 "configure"
  #include "confdefs.h"
  
  int main() {
***************
*** 1279,1285 ****
  }
                
  EOF
! if { (eval echo configure:1283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
  then
    cf_cv_good_bcopy=yes
  else
--- 1281,1287 ----
  }
                
  EOF
! if { (eval echo configure:1285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
  then
    cf_cv_good_bcopy=yes
  else
***************
*** 1313,1319 ****
  
  
  echo $ac_n "checking for workable tgetent function""... $ac_c" 1>&6
! echo "configure:1317: checking for workable tgetent function" >&5
  if eval "test \"`echo '$''{'cf_cv_func_tgetent'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
--- 1315,1321 ----
  
  
  echo $ac_n "checking for workable tgetent function""... $ac_c" 1>&6
! echo "configure:1319: checking for workable tgetent function" >&5
  if eval "test \"`echo '$''{'cf_cv_func_tgetent'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
***************
*** 1329,1335 ****
         cf_cv_func_tgetent=no
  else
    cat > conftest.$ac_ext <<EOF
! #line 1333 "configure"
  #include "confdefs.h"
  
  /* terminfo implementations ignore the buffer argument, making it useless for
--- 1331,1337 ----
         cf_cv_func_tgetent=no
  else
    cat > conftest.$ac_ext <<EOF
! #line 1335 "configure"
  #include "confdefs.h"
  
  /* terminfo implementations ignore the buffer argument, making it useless for
***************
*** 1342,1348 ****
        tgetent(buffer, "vt100");
        exit(buffer[0] == 0); }
  EOF
! if { (eval echo configure:1346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
  then
    echo "yes, there is a termcap/tgetent present" 1>&5
         cf_cv_func_tgetent=yes
--- 1344,1350 ----
        tgetent(buffer, "vt100");
        exit(buffer[0] == 0); }
  EOF
! if { (eval echo configure:1348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
  then
    echo "yes, there is a termcap/tgetent present" 1>&5
         cf_cv_func_tgetent=yes
***************
*** 1363,1376 ****
        for cf_termlib in $cf_TERMLIB
        do
                cat > conftest.$ac_ext <<EOF
! #line 1367 "configure"
  #include "confdefs.h"
  
  int main() {
  tgetent(0, 0)
  ; return 0; }
  EOF
! if { (eval echo configure:1374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    echo "there is a terminfo/tgetent present" 1>&5
                         cf_cv_func_tgetent=$cf_termlib
--- 1365,1378 ----
        for cf_termlib in $cf_TERMLIB
        do
                cat > conftest.$ac_ext <<EOF
! #line 1369 "configure"
  #include "confdefs.h"
  
  int main() {
  tgetent(0, 0)
  ; return 0; }
  EOF
! if { (eval echo configure:1376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    echo "there is a terminfo/tgetent present" 1>&5
                         cf_cv_func_tgetent=$cf_termlib
***************
*** 1396,1412 ****
  do
  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
  echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
! echo "configure:1400: 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 1405 "configure"
  #include "confdefs.h"
  #include <$ac_hdr>
  EOF
  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
! { (eval echo configure:1410: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
--- 1398,1414 ----
  do
  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
  echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
! echo "configure:1402: 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 1407 "configure"
  #include "confdefs.h"
  #include <$ac_hdr>
  EOF
  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
! { (eval echo configure:1412: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
***************
*** 1445,1456 ****
  
  ###   checks for compiler characteristics
  echo $ac_n "checking for working const""... $ac_c" 1>&6
! echo "configure:1449: 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 1454 "configure"
  #include "confdefs.h"
  
  int main() {
--- 1447,1458 ----
  
  ###   checks for compiler characteristics
  echo $ac_n "checking for working const""... $ac_c" 1>&6
! echo "configure:1451: 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 1456 "configure"
  #include "confdefs.h"
  
  int main() {
***************
*** 1499,1505 ****
  
  ; return 0; }
  EOF
! if { (eval echo configure:1503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
    rm -rf conftest*
    ac_cv_c_const=yes
  else
--- 1501,1507 ----
  
  ; return 0; }
  EOF
! if { (eval echo configure:1505: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
    rm -rf conftest*
    ac_cv_c_const=yes
  else
***************
*** 1520,1526 ****
  fi
  
  echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
! echo "configure:1524: 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
--- 1522,1528 ----
  fi
  
  echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
! echo "configure:1526: 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
***************
*** 1537,1543 ****
  do
        CFLAGS="$cf_save_CFLAGS $cf_arg"
        cat > conftest.$ac_ext <<EOF
! #line 1541 "configure"
  #include "confdefs.h"
  
  #ifndef CC_HAS_PROTOS
--- 1539,1545 ----
  do
        CFLAGS="$cf_save_CFLAGS $cf_arg"
        cat > conftest.$ac_ext <<EOF
! #line 1543 "configure"
  #include "confdefs.h"
  
  #ifndef CC_HAS_PROTOS
***************
*** 1552,1558 ****
  struct s2 {int (*f) (double a);};
  ; return 0; }
  EOF
! if { (eval echo configure:1556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
    rm -rf conftest*
    cf_cv_ansi_cc="$cf_arg"; break
  else
--- 1554,1560 ----
  struct s2 {int (*f) (double a);};
  ; return 0; }
  EOF
! if { (eval echo configure:1558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
    rm -rf conftest*
    cf_cv_ansi_cc="$cf_arg"; break
  else
***************
*** 1579,1585 ****
  # 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:1583: checking for X" >&5
  
  # Check whether --with-x or --without-x was given.
  if test "${with_x+set}" = set; then
--- 1581,1587 ----
  # 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:1585: checking for X" >&5
  
  # Check whether --with-x or --without-x was given.
  if test "${with_x+set}" = set; then
***************
*** 1641,1652 ****
  
    # First, try using that file with no special directory specified.
  cat > conftest.$ac_ext <<EOF
! #line 1645 "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:1650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
--- 1643,1654 ----
  
    # First, try using that file with no special directory specified.
  cat > conftest.$ac_ext <<EOF
! #line 1647 "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:1652: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
***************
*** 1715,1728 ****
    ac_save_LIBS="$LIBS"
    LIBS="-l$x_direct_test_library $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 1719 "configure"
  #include "confdefs.h"
  
  int main() {
  ${x_direct_test_function}()
  ; return 0; }
  EOF
! if { (eval echo configure:1726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    LIBS="$ac_save_LIBS"
  # We can link X programs with no special library path.
--- 1717,1730 ----
    ac_save_LIBS="$LIBS"
    LIBS="-l$x_direct_test_library $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 1721 "configure"
  #include "confdefs.h"
  
  int main() {
  ${x_direct_test_function}()
  ; return 0; }
  EOF
! if { (eval echo configure:1728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    LIBS="$ac_save_LIBS"
  # We can link X programs with no special library path.
***************
*** 1828,1844 ****
      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:1832: 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 1835 "configure"
  #include "confdefs.h"
  
  int main() {
  
  ; return 0; }
  EOF
! if { (eval echo configure:1842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    ac_R_nospace=yes
  else
--- 1830,1846 ----
      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:1834: 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 1837 "configure"
  #include "confdefs.h"
  
  int main() {
  
  ; return 0; }
  EOF
! if { (eval echo configure:1844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    ac_R_nospace=yes
  else
***************
*** 1854,1867 ****
        else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
! #line 1858 "configure"
  #include "confdefs.h"
  
  int main() {
  
  ; return 0; }
  EOF
! if { (eval echo configure:1865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    ac_R_space=yes
  else
--- 1856,1869 ----
        else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
! #line 1860 "configure"
  #include "confdefs.h"
  
  int main() {
  
  ; return 0; }
  EOF
! if { (eval echo configure:1867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    ac_R_space=yes
  else
***************
*** 1893,1899 ****
      # 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:1897: 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
--- 1895,1901 ----
      # 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:1899: 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
***************
*** 1901,1907 ****
    ac_save_LIBS="$LIBS"
  LIBS="-ldnet  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 1905 "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
--- 1903,1909 ----
    ac_save_LIBS="$LIBS"
  LIBS="-ldnet  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 1907 "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
***************
*** 1912,1918 ****
  dnet_ntoa()
  ; return 0; }
  EOF
! if { (eval echo configure:1916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 1914,1920 ----
  dnet_ntoa()
  ; return 0; }
  EOF
! if { (eval echo configure:1918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 1934,1940 ****
  
      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:1938: 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
--- 1936,1942 ----
  
      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:1940: 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
***************
*** 1942,1948 ****
    ac_save_LIBS="$LIBS"
  LIBS="-ldnet_stub  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 1946 "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
--- 1944,1950 ----
    ac_save_LIBS="$LIBS"
  LIBS="-ldnet_stub  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 1948 "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
***************
*** 1953,1959 ****
  dnet_ntoa()
  ; return 0; }
  EOF
! if { (eval echo configure:1957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 1955,1961 ----
  dnet_ntoa()
  ; return 0; }
  EOF
! if { (eval echo configure:1959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 1982,1993 ****
      # 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:1986: 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 1991 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char gethostbyname(); below.  */
--- 1984,1995 ----
      # 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:1988: 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 1993 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char gethostbyname(); below.  */
***************
*** 2010,2016 ****
  
  ; return 0; }
  EOF
! if { (eval echo configure:2014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_gethostbyname=yes"
  else
--- 2012,2018 ----
  
  ; return 0; }
  EOF
! if { (eval echo configure:2016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_gethostbyname=yes"
  else
***************
*** 2031,2037 ****
  
      if test $ac_cv_func_gethostbyname = no; then
        echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
! echo "configure:2035: 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
--- 2033,2039 ----
  
      if test $ac_cv_func_gethostbyname = no; then
        echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
! echo "configure:2037: 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
***************
*** 2039,2045 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lnsl  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2043 "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
--- 2041,2047 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lnsl  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2045 "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
***************
*** 2050,2056 ****
  gethostbyname()
  ; return 0; }
  EOF
! if { (eval echo configure:2054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2052,2058 ----
  gethostbyname()
  ; return 0; }
  EOF
! if { (eval echo configure:2056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2080,2091 ****
      # -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:2084: 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 2089 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char connect(); below.  */
--- 2082,2093 ----
      # -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:2086: 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 2091 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char connect(); below.  */
***************
*** 2108,2114 ****
  
  ; return 0; }
  EOF
! if { (eval echo configure:2112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_connect=yes"
  else
--- 2110,2116 ----
  
  ; return 0; }
  EOF
! if { (eval echo configure:2114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_connect=yes"
  else
***************
*** 2129,2135 ****
  
      if test $ac_cv_func_connect = no; then
        echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
! echo "configure:2133: 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
--- 2131,2137 ----
  
      if test $ac_cv_func_connect = no; then
        echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
! echo "configure:2135: 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
***************
*** 2137,2143 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2141 "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
--- 2139,2145 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2143 "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
***************
*** 2148,2154 ****
  connect()
  ; return 0; }
  EOF
! if { (eval echo configure:2152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2150,2156 ----
  connect()
  ; return 0; }
  EOF
! if { (eval echo configure:2154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2172,2183 ****
  
      # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
      echo $ac_n "checking for remove""... $ac_c" 1>&6
! echo "configure:2176: 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 2181 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char remove(); below.  */
--- 2174,2185 ----
  
      # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
      echo $ac_n "checking for remove""... $ac_c" 1>&6
! echo "configure:2178: 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 2183 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char remove(); below.  */
***************
*** 2200,2206 ****
  
  ; return 0; }
  EOF
! if { (eval echo configure:2204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_remove=yes"
  else
--- 2202,2208 ----
  
  ; return 0; }
  EOF
! if { (eval echo configure:2206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_remove=yes"
  else
***************
*** 2221,2227 ****
  
      if test $ac_cv_func_remove = no; then
        echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
! echo "configure:2225: 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
--- 2223,2229 ----
  
      if test $ac_cv_func_remove = no; then
        echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
! echo "configure:2227: 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
***************
*** 2229,2235 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lposix  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2233 "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
--- 2231,2237 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lposix  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2235 "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
***************
*** 2240,2246 ****
  remove()
  ; return 0; }
  EOF
! if { (eval echo configure:2244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2242,2248 ----
  remove()
  ; return 0; }
  EOF
! if { (eval echo configure:2246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2264,2275 ****
  
      # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
      echo $ac_n "checking for shmat""... $ac_c" 1>&6
! echo "configure:2268: 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 2273 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char shmat(); below.  */
--- 2266,2277 ----
  
      # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
      echo $ac_n "checking for shmat""... $ac_c" 1>&6
! echo "configure:2270: 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 2275 "configure"
  #include "confdefs.h"
  /* System header to define __stub macros and hopefully few prototypes,
      which can conflict with char shmat(); below.  */
***************
*** 2292,2298 ****
  
  ; return 0; }
  EOF
! if { (eval echo configure:2296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_shmat=yes"
  else
--- 2294,2300 ----
  
  ; return 0; }
  EOF
! if { (eval echo configure:2298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_func_shmat=yes"
  else
***************
*** 2313,2319 ****
  
      if test $ac_cv_func_shmat = no; then
        echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
! echo "configure:2317: 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
--- 2315,2321 ----
  
      if test $ac_cv_func_shmat = no; then
        echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
! echo "configure:2319: 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
***************
*** 2321,2327 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lipc  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2325 "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
--- 2323,2329 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lipc  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2327 "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
***************
*** 2332,2338 ****
  shmat()
  ; return 0; }
  EOF
! if { (eval echo configure:2336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2334,2340 ----
  shmat()
  ; return 0; }
  EOF
! if { (eval echo configure:2338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2365,2371 ****
    # 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:2369: 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
--- 2367,2373 ----
    # 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:2371: 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
***************
*** 2373,2379 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lICE  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2377 "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
--- 2375,2381 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lICE  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2379 "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
***************
*** 2384,2390 ****
  IceConnectionNumber()
  ; return 0; }
  EOF
! if { (eval echo configure:2388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2386,2392 ----
  IceConnectionNumber()
  ; return 0; }
  EOF
! if { (eval echo configure:2390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2414,2420 ****
  
  
  echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
! echo "configure:2418: 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
--- 2416,2422 ----
  
  
  echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
! echo "configure:2420: 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
***************
*** 2422,2428 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2426 "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
--- 2424,2430 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2428 "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
***************
*** 2433,2439 ****
  XOpenDisplay()
  ; return 0; }
  EOF
! if { (eval echo configure:2437: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2435,2441 ----
  XOpenDisplay()
  ; return 0; }
  EOF
! if { (eval echo configure:2439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2454,2460 ****
  fi
  
  echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
! echo "configure:2458: 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
--- 2456,2462 ----
  fi
  
  echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
! echo "configure:2460: 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
***************
*** 2462,2468 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2466 "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
--- 2464,2470 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2468 "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
***************
*** 2473,2479 ****
  XtAppInitialize()
  ; return 0; }
  EOF
! if { (eval echo configure:2477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2475,2481 ----
  XtAppInitialize()
  ; return 0; }
  EOF
! if { (eval echo configure:2479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2505,2521 ****
  do
  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
  echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
! echo "configure:2509: 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 2514 "configure"
  #include "confdefs.h"
  #include <$ac_hdr>
  EOF
  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
! { (eval echo configure:2519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
--- 2507,2523 ----
  do
  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
  echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
! echo "configure:2511: checking for $ac_hdr" >&5
  if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
    cat > conftest.$ac_ext <<EOF
! #line 2516 "configure"
  #include "confdefs.h"
  #include <$ac_hdr>
  EOF
  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
! { (eval echo configure:2521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
  ac_err=`grep -v '^ *+' conftest.out`
  if test -z "$ac_err"; then
    rm -rf conftest*
***************
*** 2542,2548 ****
  done
  
  echo $ac_n "checking for XmuClientWindow in -lXmu""... $ac_c" 1>&6
! echo "configure:2546: checking for XmuClientWindow in -lXmu" >&5
  ac_lib_var=`echo Xmu'_'XmuClientWindow | sed 'y%./+-%__p_%'`
  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
--- 2544,2550 ----
  done
  
  echo $ac_n "checking for XmuClientWindow in -lXmu""... $ac_c" 1>&6
! echo "configure:2548: checking for XmuClientWindow in -lXmu" >&5
  ac_lib_var=`echo Xmu'_'XmuClientWindow | sed 'y%./+-%__p_%'`
  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
***************
*** 2550,2556 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lXmu  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2554 "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
--- 2552,2558 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lXmu  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2556 "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
***************
*** 2561,2567 ****
  XmuClientWindow()
  ; return 0; }
  EOF
! if { (eval echo configure:2565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2563,2569 ----
  XmuClientWindow()
  ; return 0; }
  EOF
! if { (eval echo configure:2567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2589,2595 ****
  fi
  
  echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
! echo "configure:2593: 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
--- 2591,2597 ----
  fi
  
  echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
! echo "configure:2595: 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
***************
*** 2597,2603 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lXext  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2601 "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
--- 2599,2605 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lXext  $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2603 "configure"
  #include "confdefs.h"
  /* Override any gcc2 internal prototype to avoid an error.  */
  /* We use char because int might match the return type of a gcc2
***************
*** 2608,2614 ****
  XextCreateExtension()
  ; return 0; }
  EOF
! if { (eval echo configure:2612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2610,2616 ----
  XextCreateExtension()
  ; return 0; }
  EOF
! if { (eval echo configure:2614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2629,2635 ****
  fi
  
  echo $ac_n "checking for XawSimpleMenuAddGlobalActions in -lXaw""... $ac_c" 1>&6
! echo "configure:2633: checking for XawSimpleMenuAddGlobalActions in -lXaw" >&5
  ac_lib_var=`echo Xaw'_'XawSimpleMenuAddGlobalActions | sed 'y%./+-%__p_%'`
  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
--- 2631,2637 ----
  fi
  
  echo $ac_n "checking for XawSimpleMenuAddGlobalActions in -lXaw""... $ac_c" 1>&6
! echo "configure:2635: checking for XawSimpleMenuAddGlobalActions in -lXaw" >&5
  ac_lib_var=`echo Xaw'_'XawSimpleMenuAddGlobalActions | sed 'y%./+-%__p_%'`
  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
***************
*** 2637,2643 ****
    ac_save_LIBS="$LIBS"
  LIBS="-lXaw $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2641 "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
--- 2639,2645 ----
    ac_save_LIBS="$LIBS"
  LIBS="-lXaw $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
  cat > conftest.$ac_ext <<EOF
! #line 2643 "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
***************
*** 2648,2654 ****
  XawSimpleMenuAddGlobalActions()
  ; return 0; }
  EOF
! if { (eval echo configure:2652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
--- 2650,2656 ----
  XawSimpleMenuAddGlobalActions()
  ; return 0; }
  EOF
! if { (eval echo configure:2654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
***************
*** 2675,2681 ****
  LIBS="$LIBS $X_EXTRA_LIBS"
  
  echo $ac_n "checking if we should use imake to help""... $ac_c" 1>&6
! echo "configure:2679: 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
    enableval="$enable_imake"
--- 2677,2683 ----
  LIBS="$LIBS $X_EXTRA_LIBS"
  
  echo $ac_n "checking if we should use imake to help""... $ac_c" 1>&6
! echo "configure:2681: 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
    enableval="$enable_imake"
***************
*** 2700,2706 ****
  # 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:2704: 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
--- 2702,2708 ----
  # 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:2706: 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
***************
*** 2778,2784 ****
  # macros do not work well enough to actually use the Makefile for a build, but
  # the definitions are usable (probably).
  echo $ac_n "checking for compiler options known to imake""... $ac_c" 1>&6
! echo "configure:2782: checking for compiler options known to imake" >&5
  if eval "test \"`echo '$''{'cf_cv_imake_cflags'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
--- 2780,2786 ----
  # macros do not work well enough to actually use the Makefile for a build, but
  # the definitions are usable (probably).
  echo $ac_n "checking for compiler options known to imake""... $ac_c" 1>&6
! echo "configure:2784: checking for compiler options known to imake" >&5
  if eval "test \"`echo '$''{'cf_cv_imake_cflags'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
***************
*** 2824,2830 ****
  
  
  echo $ac_n "checking for default terminal-id""... $ac_c" 1>&6
! echo "configure:2828: 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
    withval="$with_terminal_id"
--- 2826,2832 ----
  
  
  echo $ac_n "checking for default terminal-id""... $ac_c" 1>&6
! echo "configure:2830: 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
    withval="$with_terminal_id"
***************
*** 2845,2851 ****
  
  ###   checks for optional features
  echo $ac_n "checking if you want ANSI color""... $ac_c" 1>&6
! echo "configure:2849: 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
    enableval="$enable_ansi_color"
--- 2847,2853 ----
  
  ###   checks for optional features
  echo $ac_n "checking if you want ANSI color""... $ac_c" 1>&6
! echo "configure:2851: 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
    enableval="$enable_ansi_color"
***************
*** 2868,2874 ****
  
  
  echo $ac_n "checking if you want 16 colors like aixterm""... $ac_c" 1>&6
! echo "configure:2872: 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
    enableval="$enable_16_color"
--- 2870,2876 ----
  
  
  echo $ac_n "checking if you want 16 colors like aixterm""... $ac_c" 1>&6
! echo "configure:2874: 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
    enableval="$enable_16_color"
***************
*** 2891,2897 ****
  
  
  echo $ac_n "checking for default color-mode""... $ac_c" 1>&6
! echo "configure:2895: checking for default color-mode" >&5
  # Check whether --enable-color-mode or --disable-color-mode was given.
  if test "${enable_color_mode+set}" = set; then
    enableval="$enable_color_mode"
--- 2893,2899 ----
  
  
  echo $ac_n "checking for default color-mode""... $ac_c" 1>&6
! echo "configure:2897: checking for default color-mode" >&5
  # Check whether --enable-color-mode or --disable-color-mode was given.
  if test "${enable_color_mode+set}" = set; then
    enableval="$enable_color_mode"
***************
*** 2913,2920 ****
  EOF
  
  
  echo $ac_n "checking if you want debugging traces""... $ac_c" 1>&6
! echo "configure:2918: checking if you want debugging traces" >&5
  # Check whether --enable-trace or --disable-trace was given.
  if test "${enable_trace+set}" = set; then
    enableval="$enable_trace"
--- 2915,2945 ----
  EOF
  
  
+ echo $ac_n "checking for doublesize characters""... $ac_c" 1>&6
+ echo "configure:2920: checking for doublesize characters" >&5
+ # Check whether --enable-doublechars or --disable-doublechars was given.
+ if test "${enable_doublechars+set}" = set; then
+   enableval="$enable_doublechars"
+   test "$enableval" != no && enableval=yes
+   if test "$enableval" != "yes" ; then
+     enable_doublechars=no 
+   else
+     enable_doublechars=yes
+   fi
+ else
+   enableval=yes 
+   enable_doublechars=yes
+   
+ fi
+ 
+ echo "$ac_t""$enable_doublechars" 1>&6
+ test $enable_doublechars = no && cat >> confdefs.h <<\EOF
+ #define OPT_DEC_CHRSET 0
+ EOF
+ 
+ 
  echo $ac_n "checking if you want debugging traces""... $ac_c" 1>&6
! echo "configure:2943: checking if you want debugging traces" >&5
  # Check whether --enable-trace or --disable-trace was given.
  if test "${enable_trace+set}" = set; then
    enableval="$enable_trace"
***************
*** 2941,2947 ****
  fi
  
  echo $ac_n "checking if you want VT52 emulation""... $ac_c" 1>&6
! echo "configure:2945: checking if you want VT52 emulation" >&5
  # Check whether --enable-vt52 or --disable-vt52 was given.
  if test "${enable_vt52+set}" = set; then
    enableval="$enable_vt52"
--- 2966,2972 ----
  fi
  
  echo $ac_n "checking if you want VT52 emulation""... $ac_c" 1>&6
! echo "configure:2970: checking if you want VT52 emulation" >&5
  # Check whether --enable-vt52 or --disable-vt52 was given.
  if test "${enable_vt52+set}" = set; then
    enableval="$enable_vt52"
***************
*** 2965,2971 ****
  
  if test -n "$GCC" ; then
  echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
! echo "configure:2969: checking if you want to turn on gcc warnings" >&5
  # Check whether --enable-warnings or --disable-warnings was given.
  if test "${enable_warnings+set}" = set; then
    enableval="$enable_warnings"
--- 2990,2996 ----
  
  if test -n "$GCC" ; then
  echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
! echo "configure:2994: checking if you want to turn on gcc warnings" >&5
  # Check whether --enable-warnings or --disable-warnings was given.
  if test "${enable_warnings+set}" = set; then
    enableval="$enable_warnings"
***************
*** 3004,3012 ****
  if test -n "$GCC"
  then
        echo "checking for gcc __attribute__ directives" 1>&6
! echo "configure:3008: checking for gcc __attribute__ directives" >&5
        cat > conftest.$ac_ext <<EOF
! #line 3010 "configure"
  #include "confdefs.h"
  #include "conftest.h"
  #include "conftest.i"
--- 3029,3037 ----
  if test -n "$GCC"
  then
        echo "checking for gcc __attribute__ directives" 1>&6
! echo "configure:3033: checking for gcc __attribute__ directives" >&5
        cat > conftest.$ac_ext <<EOF
! #line 3035 "configure"
  #include "confdefs.h"
  #include "conftest.h"
  #include "conftest.i"
***************
*** 3044,3050 ****
  EOF
                        ;;
                esac
!               if { (eval echo configure:3048: \"$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
--- 3069,3075 ----
  EOF
                        ;;
                esac
!               if { (eval echo configure:3073: \"$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
***************
*** 3058,3068 ****
  
  
                cat > conftest.$ac_ext <<EOF
! #line 3062 "configure"
  int main(int argc, char *argv[]) { return argv[argc-1] == 0; }
  EOF
                echo "checking for gcc warning options" 1>&6
! echo "configure:3066: checking for gcc warning options" >&5
        cf_save_CFLAGS="$CFLAGS"
        cf_warn_CFLAGS="-W -Wall"
        for cf_opt in \
--- 3083,3093 ----
  
  
                cat > conftest.$ac_ext <<EOF
! #line 3087 "configure"
  int main(int argc, char *argv[]) { return argv[argc-1] == 0; }
  EOF
                echo "checking for gcc warning options" 1>&6
! echo "configure:3091: checking for gcc warning options" >&5
        cf_save_CFLAGS="$CFLAGS"
        cf_warn_CFLAGS="-W -Wall"
        for cf_opt in \
***************
*** 3078,3084 ****
                Wstrict-prototypes
        do
                CFLAGS="$cf_save_CFLAGS $cf_warn_CFLAGS -$cf_opt"
!               if { (eval echo configure:3082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
                        test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
                        cf_warn_CFLAGS="$cf_warn_CFLAGS -$cf_opt"
                        test "$cf_opt" = Wcast-qual && cf_warn_CFLAGS="$cf_warn_CFLAGS -DXTSTRINGDEFINES"
--- 3103,3109 ----
                Wstrict-prototypes
        do
                CFLAGS="$cf_save_CFLAGS $cf_warn_CFLAGS -$cf_opt"
!               if { (eval echo configure:3107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
                        test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
                        cf_warn_CFLAGS="$cf_warn_CFLAGS -$cf_opt"
                        test "$cf_opt" = Wcast-qual && cf_warn_CFLAGS="$cf_warn_CFLAGS -DXTSTRINGDEFINES"
Index: configure.in
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/configure.in    Tue Jun 10 15:10:00 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/configure.in    Sun Jun 22 14:46:15 1997
***************
*** 124,129 ****
--- 124,137 ----
  AC_MSG_RESULT($default_colormode)
  AC_DEFINE_UNQUOTED(DFT_COLORMODE,$default_colormode)
  
+ AC_MSG_CHECKING(for doublesize characters)
+ CF_ARG_DISABLE(doublechars,
+       [  --disable-doublechars   disable support for double-size characters],
+       [enable_doublechars=no],
+       [enable_doublechars=yes])
+ AC_MSG_RESULT($enable_doublechars)
+ test $enable_doublechars = no && AC_DEFINE(OPT_DEC_CHRSET,0)
+ 
  AC_MSG_CHECKING(if you want debugging traces)
  CF_ARG_ENABLE(trace,
        [  --enable-trace          set to enable debugging traces],
Index: doublechr.c
*** /dev/null   Sun Jul 17 19:46:18 1994
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/doublechr.c     Sun Jun 22 14:46:15 1997
***************
*** 0 ****
--- 1,119 ----
+ /*
+  * $XFree86$
+  */
+ 
+ /************************************************************
+ 
+ Copyright 1997 by Thomas E. Dickey <dickey@clark.net>
+ 
+                         All Rights Reserved
+ 
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ 
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+ 
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
+ IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ 
+ Except as contained in this notice, the name(s) of the above copyright
+ holders shall not be used in advertising or otherwise to promote the
+ sale, use or other dealings in this Software without prior written
+ authorization.
+ 
+ ********************************************************/
+ 
+ #ifdef HAVE_CONFIG_H
+ #include <xtermcfg.h>
+ #endif
+ 
+ #include "ptyx.h"
+ #include "data.h"
+ #include "xterm.h"
+ 
+ /*
+  * The first column is all that matters for double-size characters (since the
+  * controls apply to a whole line).  However, it's easier to maintain the
+  * information for special fonts by writing to all cells.
+  */
+ #define curChrSet SCRN_BUF_CSETS(screen, screen->cur_row)[0]
+ 
+ #if OPT_DEC_CHRSET
+ static void repaint_line PROTO((unsigned set));
+ 
+ static void
+ repaint_line(newChrSet)
+       unsigned newChrSet;
+ {
+       register TScreen *screen = &term->screen;
+       int curcol = screen->cur_col;
+       int len = screen->max_col + 1;
+       int width = len;
+ 
+       TRACE(("repaint_line(%2d,%2d) (%d)\n", screen->cur_row, screen->cur_col, newChrSet))
+ 
+       /* If switching from single-width, clear the part of the line that is
+        * pushed off to the right.
+        */
+       if (CSET_DOUBLE(newChrSet)) {
+               width /= 2;
+               if (!CSET_DOUBLE(curChrSet)) {
+                       screen->cur_col = width;
+                       ClearRight(screen, -1);
+               }
+       }
+ 
+       /* FIXME: do VT220 softchars allow double-sizes? */
+       memset(SCRN_BUF_CSETS(screen, screen->cur_row), newChrSet, len);
+ 
+       screen->cur_col = 0;
+       ScrnRefresh (screen, screen->cur_row, 0, 1, len, True);
+       screen->cur_col = curcol;
+ }
+ #endif
+ 
+ /*
+  * Set the line to double-height characters.  The 'top' flag denotes whether
+  * we'll be using it for the top (true) or bottom (false) of the line.
+  */
+ void
+ xterm_DECDHL(top)
+       Bool top;
+ {
+ #if OPT_DEC_CHRSET
+       repaint_line(top ? CSET_DHL_TOP : CSET_DHL_BOT);
+ #endif
+ }
+ 
+ /*
+  * Set the line to single-width characters (the normal state).
+  */
+ void
+ xterm_DECSWL()
+ {
+ #if OPT_DEC_CHRSET
+       repaint_line(CSET_SWL);
+ #endif
+ }
+ 
+ /*
+  * Set the line to double-width characters
+  */
+ void
+ xterm_DECDWL()
+ {
+ #if OPT_DEC_CHRSET
+       repaint_line(CSET_DWL);
+ #endif
+ }
Index: ptyx.h
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/ptyx.h  Tue Jun  3 16:05:50 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/ptyx.h  Sun Jun 22 14:46:15 1997
***************
*** 294,303 ****
--- 294,311 ----
  
  #define OPT_BLINK_CURS  0 /* FIXME: do this later (96/7/31) */
  
+ #ifndef OPT_DEC_CHRSET
+ #define OPT_DEC_CHRSET  1 /* true if xterm is configured for DEC charset */
+ #endif
+ 
  #ifndef OPT_ISO_COLORS
  #define OPT_ISO_COLORS  1 /* true if xterm is configured with ISO colors */
  #endif
  
+ #ifndef OPT_TRACE
+ #define OPT_TRACE       0 /* true if we're using debugging traces */
+ #endif
+ 
  #ifndef OPT_VT52_MODE
  #define OPT_VT52_MODE   1 /* true if xterm supports VT52 emulation */
  #endif
***************
*** 346,364 ****
  #define if_OPT_AIX_COLORS(screen, code) /* nothing */
  #endif
  
        /* the number of pointers per row in 'ScrnBuf' */
! #if OPT_ISO_COLORS
  #define MAX_PTRS term->num_ptrs
  #else
  #define MAX_PTRS 2
  #endif
  
  #if OPT_VT52_MODE
  #define if_OPT_VT52_MODE(screen, code) if(screen->ansi_level == 0) code
  #else
  #define if_OPT_VT52_MODE(screen, code) /* nothing */
  #endif
  
        /* ScrnBuf-level macros */
  #define BUF_CHARS(buf, row) (buf[MAX_PTRS * (row) + 0])
  #define BUF_ATTRS(buf, row) (buf[MAX_PTRS * (row) + 1])
--- 354,416 ----
  #define if_OPT_AIX_COLORS(screen, code) /* nothing */
  #endif
  
+ /***====================================================================***/
+ 
+ #if OPT_DEC_CHRSET
+ #define if_OPT_DEC_CHRSET(code) code
+       /* Use 3 bits for encoding the double high/wide sense of characters */
+ #define CSET_SWL        0
+ #define CSET_DHL_TOP    1
+ #define CSET_DHL_BOT    2
+ #define CSET_DWL        4
+       /* Use remaining bits for encoding the other character-sets */
+ #define CSET_NORMAL(code)  ((code) == CSET_SWL)
+ #define CSET_DOUBLE(code)  (!CSET_NORMAL(code) && !CSET_EXTEND(code))
+ #define CSET_EXTEND(code)  ((code) >= 8)
+ #define CurMaxCol(screen, row) \
+       (CSET_DOUBLE(SCRN_BUF_CSETS(screen, row)[0]) \
+       ? (screen->max_col / 2) \
+       : (screen->max_col))
+ #define CurCursorX(screen, row, col) \
+       (CSET_DOUBLE(SCRN_BUF_CSETS(screen, row)[0]) \
+       ? CursorX(screen, 2*(col)) \
+       : CursorX(screen, (col)))
+ #define CurFontWidth(screen, row) \
+       (CSET_DOUBLE(SCRN_BUF_CSETS(screen, row)[0]) \
+       ? 2*FontWidth(screen) \
+       : FontWidth(screen))
+ #else
+ #define if_OPT_DEC_CHRSET(code) /*nothing*/
+ #define CurMaxCol(screen, row) screen->max_col
+ #define CurCursorX(screen, row, col) CursorX(screen, col)
+ #define CurFontWidth(screen, row) FontWidth(screen)
+ #endif
+ 
        /* the number of pointers per row in 'ScrnBuf' */
! #if OPT_ISO_COLORS || OPT_DEC_CHRSET
  #define MAX_PTRS term->num_ptrs
  #else
  #define MAX_PTRS 2
  #endif
  
+ /***====================================================================***/
+ 
+ #if OPT_TRACE
+ #include "trace.h"
+ #else
+ #define TRACE(p) /*nothing*/
+ #endif
+ 
+ /***====================================================================***/
+ 
  #if OPT_VT52_MODE
  #define if_OPT_VT52_MODE(screen, code) if(screen->ansi_level == 0) code
  #else
  #define if_OPT_VT52_MODE(screen, code) /* nothing */
  #endif
  
+ /***====================================================================***/
+ 
        /* ScrnBuf-level macros */
  #define BUF_CHARS(buf, row) (buf[MAX_PTRS * (row) + 0])
  #define BUF_ATTRS(buf, row) (buf[MAX_PTRS * (row) + 1])
***************
*** 367,372 ****
--- 419,428 ----
  #define BUF_COLOR(buf, row) (buf[MAX_PTRS * (row) + 2])
  #endif
  
+ #if OPT_DEC_CHRSET
+ #define BUF_CSETS(buf, row) (buf[MAX_PTRS * (row) + 3])
+ #endif
+ 
        /* TScreen-level macros */
  #define SCRN_BUF_CHARS(screen, row) BUF_CHARS(screen->buf, row)
  #define SCRN_BUF_ATTRS(screen, row) BUF_ATTRS(screen->buf, row)
***************
*** 375,380 ****
--- 431,440 ----
  #define SCRN_BUF_COLOR(screen, row) BUF_COLOR(screen->buf, row)
  #endif
  
+ #if OPT_DEC_CHRSET
+ #define SCRN_BUF_CSETS(screen, row) BUF_CSETS(screen->buf, row)
+ #endif
+ 
  typedef struct {
  /* These parameters apply to both windows */
        Display         *display;       /* X display for screen         */
***************
*** 401,406 ****
--- 461,469 ----
        Boolean         colorULMode;    /* use color for underline?     */
        Boolean         colorBDMode;    /* use color for bold?          */
  #endif
+ #if OPT_DEC_CHRSET
+       Char            chrset;         /* character-set index & code   */
+ #endif
        int             border;         /* inner border                 */
        Cursor          arrow;          /* arrow cursor                 */
        unsigned short  send_mouse_pos; /* user wants mouse transition  */
***************
*** 663,668 ****
--- 726,733 ----
      unsigned    cur_background;       /* current background color     */
  #if OPT_ISO_COLORS
      unsigned    sgr_foreground;       /* current SGR foreground color */
+ #endif
+ #if OPT_ISO_COLORS || OPT_DEC_CHRSET
      int         num_ptrs;     /* number of pointers per row in 'ScrnBuf' */
  #endif
      unsigned  initflags;      /* initial mode flags           */
***************
*** 732,737 ****
--- 797,803 ----
  #define OFF_PROTECT 0
  #define DEC_PROTECT 1
  #define ISO_PROTECT 2
+ 
  #define CursorX(screen,col) ((col) * FontWidth(screen) + screen->border \
                        + Scrollbar(screen))
  #define CursorY(screen,row) ((((row) - screen->topline) * FontHeight(screen)) \
Index: screen.c
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/screen.c        Tue Jun  3 16:05:50 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/screen.c        Sun Jun 22 14:46:15 1997
***************
*** 201,211 ****
  void
  ScreenWrite (screen, str, flags, cur_fg, cur_bg, length)
  /*
!    Writes str into buf at row row and column col.  Characters are set to match
!    flags.
   */
  TScreen *screen;
! char *str;
  register unsigned flags;
  register unsigned cur_fg, cur_bg;
  register int length;          /* length of string */
--- 201,211 ----
  void
  ScreenWrite (screen, str, flags, cur_fg, cur_bg, length)
  /*
!  * Writes str into buf at screen's current row and column.  Characters are set
!  * to match flags.
   */
  TScreen *screen;
! Char *str;
  register unsigned flags;
  register unsigned cur_fg, cur_bg;
  register int length;          /* length of string */
***************
*** 213,218 ****
--- 213,221 ----
  #if OPT_ISO_COLORS
        register Char *fb = 0;
  #endif
+ #if OPT_DEC_CHRSET  
+       register Char *cb = 0;
+ #endif
        register Char *attrs;
        register int avail  = screen->max_col - screen->cur_col + 1;
        register Char *col;
***************
*** 229,242 ****
        if_OPT_ISO_COLORS(screen,{
                fb = SCRN_BUF_COLOR(screen, screen->cur_row) + screen->cur_col;
        })
  
        wrappedbit = *attrs & LINEWRAPPED;
  
        /* write blanks if we're writing invisible text */
        if (flags & INVISIBLE) {
!               bzero(col,   length);
        } else {
!               memcpy( col,   str,    length);
        }
  
        flags &= ATTRIBUTES;
--- 232,248 ----
        if_OPT_ISO_COLORS(screen,{
                fb = SCRN_BUF_COLOR(screen, screen->cur_row) + screen->cur_col;
        })
+       if_OPT_DEC_CHRSET({
+               cb = SCRN_BUF_CSETS(screen, screen->cur_row) + screen->cur_col;
+       })
  
        wrappedbit = *attrs & LINEWRAPPED;
  
        /* write blanks if we're writing invisible text */
        if (flags & INVISIBLE) {
!               memset(col, ' ', length);
        } else {
!               memcpy(col, str, length);
        }
  
        flags &= ATTRIBUTES;
***************
*** 246,251 ****
--- 252,260 ----
        if_OPT_ISO_COLORS(screen,{
                memset( fb,   makeColorPair(cur_fg, cur_bg), length);
        })
+       if_OPT_DEC_CHRSET({
+               memset( cb,   curXtermChrSet(screen->cur_row), length);
+       })
  
        if (wrappedbit)
            *attrs |= LINEWRAPPED;
***************
*** 377,382 ****
--- 386,394 ----
        if_OPT_ISO_COLORS(screen,{
            memset(BUF_COLOR(sb, row) + col, xtermColorPair(), n);
        })
+       if_OPT_DEC_CHRSET({
+           memset(BUF_CSETS(sb, row) + col, curXtermChrSet(row), n);
+       })
  
        if (wrappedbit)
            attrs[0] |= LINEWRAPPED;
***************
*** 407,412 ****
--- 419,427 ----
        if_OPT_ISO_COLORS(screen,{
            memset(BUF_COLOR(sb, row) + size - n, xtermColorPair(), n);
        })
+       if_OPT_DEC_CHRSET({
+           memset(BUF_CSETS(sb, row) + size - n, curXtermChrSet(row), n);
+       })
        if (wrappedbit)
            attrs[0] |= LINEWRAPPED;
  }
***************
*** 418,423 ****
--- 433,439 ----
     Requires: (toprow, leftcol), (toprow + nrows, leftcol + ncols) are
             coordinates of characters in screen;
             nrows and ncols positive.
+            all dimensions are based on single-characters.
   */
  register TScreen *screen;
  int toprow, leftcol, nrows, ncols;
***************
*** 431,444 ****
        int max = screen->max_row;
        int gc_changes = 0;
  
!       if(screen->cursor_col >= leftcol && screen->cursor_col <=
!        (leftcol + ncols - 1) && screen->cursor_row >= toprow + topline &&
!        screen->cursor_row <= maxrow + topline)
                screen->cursor_state = OFF;
        for (row = toprow; row <= maxrow; y += FontHeight(screen), row++) {
  #if OPT_ISO_COLORS
           register Char *fb = 0;
  #endif
           register Char *chars;
           register Char *attrs;
           register int col = leftcol;
--- 447,471 ----
        int max = screen->max_row;
        int gc_changes = 0;
  
!       TRACE(("ScrnRefresh (%d,%d) - (%d,%d)%s\n",
!               toprow, leftcol,
!               nrows, ncols,
!               force ? " force" : ""))
! 
!       if(screen->cursor_col >= leftcol
!       && screen->cursor_col <= (leftcol + ncols - 1)
!       && screen->cursor_row >= toprow + topline
!       && screen->cursor_row <= maxrow + topline)
                screen->cursor_state = OFF;
+ 
        for (row = toprow; row <= maxrow; y += FontHeight(screen), row++) {
  #if OPT_ISO_COLORS
           register Char *fb = 0;
  #endif
+ #if OPT_DEC_CHRSET
+          register Char *cb = 0;
+ #endif
+          Char cs = 0;
           register Char *chars;
           register Char *attrs;
           register int col = leftcol;
***************
*** 462,475 ****
           chars = SCRN_BUF_CHARS(screen, lastind + topline);
           attrs = SCRN_BUF_ATTRS(screen, lastind + topline);
  
!          if_OPT_ISO_COLORS(screen,{
!                  fb = SCRN_BUF_COLOR(screen, lastind + topline);
           })
  
           if (row < screen->startHRow || row > screen->endHRow ||
               (row == screen->startHRow && maxcol < screen->startHCol) ||
               (row == screen->endHRow && col >= screen->endHCol))
           {
               /* row does not intersect selection; don't hilite */
               if (!force) {
                   while (col <= maxcol && (attrs[col] & ~BOLD) == 0 &&
--- 489,512 ----
           chars = SCRN_BUF_CHARS(screen, lastind + topline);
           attrs = SCRN_BUF_ATTRS(screen, lastind + topline);
  
!          if_OPT_DEC_CHRSET({
!               cb = SCRN_BUF_CSETS(screen, lastind + topline);
           })
  
           if (row < screen->startHRow || row > screen->endHRow ||
               (row == screen->startHRow && maxcol < screen->startHCol) ||
               (row == screen->endHRow && col >= screen->endHCol))
           {
+ #if OPT_DEC_CHRSET
+              /*
+               * Temporarily change dimensions to double-sized characters so
+               * we can reuse the recursion on this function.
+               */
+              if (CSET_DOUBLE(*cb)) {
+                  col /= 2;
+                  maxcol /= 2;
+              }
+ #endif
               /* row does not intersect selection; don't hilite */
               if (!force) {
                   while (col <= maxcol && (attrs[col] & ~BOLD) == 0 &&
***************
*** 480,485 ****
--- 517,528 ----
                          (chars[maxcol] & ~040) == 0)
                       maxcol--;
               }
+ #if OPT_DEC_CHRSET
+              if (CSET_DOUBLE(*cb)) {
+                  col *= 2;
+                  maxcol *= 2;
+              }
+ #endif
               hilite = False;
           }
           else {
***************
*** 511,517 ****
                * apparent).
                */
               if (screen->highlight_selection
- /*            && maxcol >= screen->max_col */
                && screen->send_mouse_pos != 3) {
                   hi_col = screen->max_col;
                   while (hi_col > 0 && !(attrs[hi_col] & CHARDRAWN))
--- 554,559 ----
***************
*** 524,538 ****
  
           if (col > maxcol) continue;
  
           flags = attrs[col];
           if_OPT_ISO_COLORS(screen,{
                fg = extract_fg(fb[col], flags);
                bg = extract_bg(fb[col]);
           })
           gc = updatedXtermGC(screen, flags, fg, bg, hilite);
           gc_changes |= (flags & (FG_COLOR|BG_COLOR));
  
!          x = CursorX(screen, col);
           lastind = col;
  
           for (; col <= maxcol; col++) {
--- 566,594 ----
  
           if (col > maxcol) continue;
  
+          /*
+           * Go back to double-sized character dimensions if the line has
+           * double-width characters.  Note that 'hi_col' is already in the
+           * right units.
+           */
+          if_OPT_DEC_CHRSET({
+               if (CSET_DOUBLE(*cb)) {
+                       col /= 2;
+                       maxcol /= 2;
+               }
+               cs = cb[col];
+          })
+ 
           flags = attrs[col];
           if_OPT_ISO_COLORS(screen,{
+               fb = SCRN_BUF_COLOR(screen, lastind + topline);
                fg = extract_fg(fb[col], flags);
                bg = extract_bg(fb[col]);
           })
           gc = updatedXtermGC(screen, flags, fg, bg, hilite);
           gc_changes |= (flags & (FG_COLOR|BG_COLOR));
  
!          x = CurCursorX(screen, row, col);
           lastind = col;
  
           for (; col <= maxcol; col++) {
***************
*** 542,552 ****
                 || ((flags & FG_COLOR) && (extract_fg(fb[col],attrs[col]) != fg))
                 || ((flags & BG_COLOR) && (extract_bg(fb[col]) != bg))
  #endif
                 ) {
                   drawXtermText(screen, flags, gc, x, y,
!                       (char *) &chars[lastind], col - lastind);
  
!                  x += (col - lastind) * FontWidth(screen);
  
                   lastind = col;
  
--- 598,613 ----
                 || ((flags & FG_COLOR) && (extract_fg(fb[col],attrs[col]) != fg))
                 || ((flags & BG_COLOR) && (extract_bg(fb[col]) != bg))
  #endif
+ #if OPT_DEC_CHRSET
+                || (cb[col] != cs)
+ #endif
                 ) {
+                  TRACE(("%s @%d, calling drawXtermText\n", __FILE__, __LINE__))
                   drawXtermText(screen, flags, gc, x, y,
!                       cs,
!                       &chars[lastind], col - lastind);
  
!                  x += (col - lastind) * CurFontWidth(screen,row);
  
                   lastind = col;
  
***************
*** 558,563 ****
--- 619,627 ----
                        fg = extract_fg(fb[col], flags);
                        bg = extract_bg(fb[col]);
                   })
+                  if_OPT_DEC_CHRSET({
+                       cs = cb[col];
+                  })
                   gc = updatedXtermGC(screen, flags, fg, bg, hilite);
                   gc_changes |= (flags & (FG_COLOR|BG_COLOR));
                }
***************
*** 566,573 ****
                        chars[col] = ' ';
           }
  
           drawXtermText(screen, flags, gc, x, y,
!               (char *) &chars[lastind], col - lastind);
        }
  
        /*
--- 630,639 ----
                        chars[col] = ' ';
           }
  
+          TRACE(("%s @%d, calling drawXtermText\n", __FILE__, __LINE__))
           drawXtermText(screen, flags, gc, x, y,
!               cs,
!               &chars[lastind], col - lastind);
        }
  
        /*
***************
*** 597,607 ****
--- 663,677 ----
        register int row;
        register int flags = TERM_COLOR_FLAGS;
  
+       TRACE(("ClearBufRows %d..%d\n", first, last))
        for (row = first; row <= last; row++) {
            bzero (BUF_CHARS(buf, row), len);
            memset(BUF_ATTRS(buf, row), flags, len);
            if_OPT_ISO_COLORS(screen,{
                memset(BUF_COLOR(buf, row), xtermColorPair(), len);
+           })
+           if_OPT_DEC_CHRSET({
+               memset(BUF_CSETS(buf, row), 0, len);
            })
        }
  }
Index: tabs.c
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/tabs.c  Tue Jun  3 16:05:50 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/tabs.c  Sun Jun 22 14:46:15 1997
***************
*** 138,145 ****
        int saved_column = screen->cur_col;
  
        screen->cur_col = TabNext(term->tabs, screen->cur_col);
!       if (screen->cur_col > screen->max_col)
!               screen->cur_col = screen->max_col;
  
        return (screen->cur_col > saved_column);
  }
--- 138,145 ----
        int saved_column = screen->cur_col;
  
        screen->cur_col = TabNext(term->tabs, screen->cur_col);
!       if (screen->cur_col > CurMaxCol(screen, screen->cur_row))
!               screen->cur_col = CurMaxCol(screen, screen->cur_row);
  
        return (screen->cur_col > saved_column);
  }
Index: util.c
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/util.c  Tue Jun  3 16:05:50 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/util.c  Sun Jun 22 14:46:15 1997
***************
*** 32,44 ****
  #include <xtermcfg.h>
  #endif
  
  #include "ptyx.h"
  #include "data.h"
  #include "error.h"
  #include "menu.h"
  
- #include <stdio.h>
- 
  #include "xterm.h"
  
  extern Bool waiting_for_initial_map;
--- 32,50 ----
  #include <xtermcfg.h>
  #endif
  
+ #include <stdio.h>
+ 
+ #ifndef X_NOT_STDC_ENV
+ #include <stdlib.h>
+ #else
+ extern char *malloc();
+ #endif
+ 
  #include "ptyx.h"
  #include "data.h"
  #include "error.h"
  #include "menu.h"
  
  #include "xterm.h"
  
  extern Bool waiting_for_initial_map;
***************
*** 488,496 ****
--- 494,508 ----
        screen->do_wrap = 0;
        if(screen->cur_row - screen->topline <= screen->max_row) {
            if(!AddToRefresh(screen)) {
+               int col = screen->max_col + 1 - n;
                if(screen->scroll_amt)
                        FlushScroll(screen);
  
+ #if OPT_DEC_CHRSET
+               if (CSET_DOUBLE(SCRN_BUF_CSETS(screen, screen->cur_row)[0])) {
+                       col = (screen->max_col + 1) / 2 - n;
+               }
+ #endif
                /*
                 * prevent InsertChar from shifting the end of a line over
                 * if it is being appended to
***************
*** 498,512 ****
                if (non_blank_line (screen->buf, screen->cur_row, 
                                    screen->cur_col, screen->max_col + 1))
                    horizontal_copy_area(screen, screen->cur_col,
!                                        screen->max_col+1 - (screen->cur_col+n),
                                         n);
  
                FillCurBackground(
                        screen,
!                       CursorX (screen, screen->cur_col),
                        CursorY (screen, screen->cur_row),
!                       (unsigned) n * FontWidth(screen),
!                       (unsigned) FontHeight(screen));
            }
        }
        /* adjust screen->buf */
--- 510,524 ----
                if (non_blank_line (screen->buf, screen->cur_row, 
                                    screen->cur_col, screen->max_col + 1))
                    horizontal_copy_area(screen, screen->cur_col,
!                                        col - screen->cur_col,
                                         n);
  
                FillCurBackground(
                        screen,
!                       CurCursorX (screen, screen->cur_row, screen->cur_col),
                        CursorY (screen, screen->cur_row),
!                       n * CurFontWidth(screen,screen->cur_row),
!                       FontHeight(screen));
            }
        }
        /* adjust screen->buf */
***************
*** 531,548 ****
                
        if(screen->cur_row - screen->topline <= screen->max_row) {
            if(!AddToRefresh(screen)) {
                if(screen->scroll_amt)
                        FlushScroll(screen);
        
                horizontal_copy_area(screen, screen->cur_col+n,
!                                    screen->max_col+1 - (screen->cur_col+n),
                                     -n);
!       
                FillCurBackground (
                        screen,
!                       Width(screen) + CursorX(screen, -n),
                        CursorY (screen, screen->cur_row),
!                       n * FontWidth(screen),
                        FontHeight(screen));
            }
        }
--- 543,566 ----
                
        if(screen->cur_row - screen->topline <= screen->max_row) {
            if(!AddToRefresh(screen)) {
+               int col = screen->max_col + 1 - n;
                if(screen->scroll_amt)
                        FlushScroll(screen);
        
+ #if OPT_DEC_CHRSET
+               if (CSET_DOUBLE(SCRN_BUF_CSETS(screen, screen->cur_row)[0])) {
+                       col = (screen->max_col + 1) / 2 - n;
+               }
+ #endif
                horizontal_copy_area(screen, screen->cur_col+n,
!                                    col - screen->cur_col,
                                     -n);
! 
                FillCurBackground (
                        screen,
!                       CurCursorX(screen, screen->cur_row, col),
                        CursorY (screen, screen->cur_row),
!                       n * CurFontWidth(screen,screen->cur_row),
                        FontHeight(screen));
            }
        }
***************
*** 690,698 ****
                                FlushScroll(screen);
                        FillCurBackground (
                                screen,
!                               CursorX (screen, col),
                                CursorY (screen, row),
!                               len * FontWidth(screen),
                                FontHeight(screen));
                }
        }
--- 708,716 ----
                                FlushScroll(screen);
                        FillCurBackground (
                                screen,
!                               CurCursorX (screen, row, col),
                                CursorY (screen, row),
!                               len * CurFontWidth(screen,row),
                                FontHeight(screen));
                }
        }
***************
*** 703,708 ****
--- 721,729 ----
        if_OPT_ISO_COLORS(screen,{
                memset(SCRN_BUF_COLOR(screen, row) + col, xtermColorPair(), len);
        })
+       if_OPT_DEC_CHRSET({
+               memset(SCRN_BUF_CSETS(screen, row) + col, curXtermChrSet(screen->cur_row), len);
+       })
  
        return rc;
  }
***************
*** 946,957 ****
      int nchars;
      int amount;                       /* number of characters to move right */
  {
!     int src_x = CursorX(screen, firstchar);
      int src_y = CursorY(screen, screen->cur_row);
  
      copy_area(screen, src_x, src_y,
!             (unsigned)nchars*FontWidth(screen), FontHeight(screen),
!             src_x + amount*FontWidth(screen), src_y);
  }
  
  /*
--- 967,979 ----
      int nchars;
      int amount;                       /* number of characters to move right */
  {
!     int src_x = CurCursorX(screen, screen->cur_row, firstchar);
      int src_y = CursorY(screen, screen->cur_row);
  
      copy_area(screen, src_x, src_y,
!             (unsigned)nchars * CurFontWidth(screen,screen->cur_row),
!             FontHeight(screen),
!             src_x + amount*CurFontWidth(screen,screen->cur_row), src_y);
  }
  
  /*
***************
*** 1055,1065 ****
  {
        register int toprow, leftcol, nrows, ncols;
  
        toprow = (rect_y - screen->border) / FontHeight(screen);
        if(toprow < 0)
                toprow = 0;
        leftcol = (rect_x - screen->border - Scrollbar(screen))
!           / FontWidth(screen);
        if(leftcol < 0)
                leftcol = 0;
        nrows = (rect_y + rect_height - 1 - screen->border) / 
--- 1077,1090 ----
  {
        register int toprow, leftcol, nrows, ncols;
  
+       TRACE(("handle_translated_exposure (%d,%d) - (%d,%d)\n",
+               rect_y, rect_x, rect_height, rect_width))
+ 
        toprow = (rect_y - screen->border) / FontHeight(screen);
        if(toprow < 0)
                toprow = 0;
        leftcol = (rect_x - screen->border - Scrollbar(screen))
!           / CurFontWidth(screen,screen->cur_row);
        if(leftcol < 0)
                leftcol = 0;
        nrows = (rect_y + rect_height - 1 - screen->border) / 
***************
*** 1286,1306 ****
   * Draws text with the specified combination of bold/underline
   */
  void
! drawXtermText(screen, flags, gc, x, y, text, len)
        register TScreen *screen;
        unsigned flags;
        GC gc;
        int x;
        int y;
!       char *text;
        int len;
  {
        y += FontAscent(screen);
        XDrawImageString(screen->display, TextWindow(screen), gc, 
!               x, y,  text, len);
        if ((flags & BOLD) && screen->enbolden)
                XDrawString(screen->display, TextWindow(screen), gc,
!                       x+1, y,  text, len);
        if ((flags & UNDERLINE) && screen->underline) 
                XDrawLine(screen->display, TextWindow(screen), gc, 
                        x, y+1, x + len * FontWidth(screen), y+1);
--- 1311,1352 ----
   * Draws text with the specified combination of bold/underline
   */
  void
! drawXtermText(screen, flags, gc, x, y, chrset, text, len)
        register TScreen *screen;
        unsigned flags;
        GC gc;
        int x;
        int y;
!       int chrset;
!       Char *text;
        int len;
  {
+ #if OPT_DEC_CHRSET
+       if (CSET_DOUBLE(chrset)) {
+               Char *temp = malloc(2 * len);
+               int n = 0;
+               TRACE(("DRAWTEXT%c[%4d,%4d] (%d) %d:%.*s\n",
+                       screen->cursor_state == OFF ? ' ' : '*',
+                       y, x, chrset, len, len, text))
+               while (len--) {
+                       temp[n++] = *text++;
+                       temp[n++] = ' ';
+               }
+               drawXtermText(screen, flags, gc, x, y, 0, temp, n);
+               x += FontWidth(screen) * n;
+               free(temp);
+               return;
+       }
+ #endif
+       TRACE(("drawtext%c[%4d,%4d] (%d) %d:%.*s\n",
+               screen->cursor_state == OFF ? ' ' : '*',
+               y, x, chrset, len, len, text))
        y += FontAscent(screen);
        XDrawImageString(screen->display, TextWindow(screen), gc, 
!               x, y,  (char *)text, len);
        if ((flags & BOLD) && screen->enbolden)
                XDrawString(screen->display, TextWindow(screen), gc,
!                       x+1, y,  (char *)text, len);
        if ((flags & UNDERLINE) && screen->underline) 
                XDrawLine(screen->display, TextWindow(screen), gc, 
                        x, y+1, x + len * FontWidth(screen), y+1);
***************
*** 1491,1496 ****
--- 1537,1567 ----
  }
  #endif /* OPT_ISO_COLORS */
  
+ #if OPT_DEC_CHRSET
+ int
+ getXtermChrSet(row, col)
+       int row;
+       int col;
+ {
+       TScreen *screen = &term->screen;
+       Char set = SCRN_BUF_CSETS(screen, row)[0];
+       if (!CSET_DOUBLE(set))
+               set = SCRN_BUF_CSETS(screen, row)[col];
+       return set;
+ }
+ 
+ int
+ curXtermChrSet(row)
+       int row;
+ {
+       TScreen *screen = &term->screen;
+       Char set = SCRN_BUF_CSETS(screen, row)[0];
+       if (!CSET_DOUBLE(set))
+               set = screen->chrset;
+       return set;
+ }
+ #endif /* OPT_DEC_CHRSET */
+ 
  #ifdef HAVE_CONFIG_H
  #if USE_MY_MEMMOVE
  char *        my_memmove(s1, s2, n)
***************
*** 1500,1515 ****
  {
        if (n != 0) {
                if ((s1+n > s2) && (s2+n > s1)) {
!                       static  char    *buffer;
                        static  size_t  length;
!                       register int    j;
                        if (length < n) {
                                length = (n * 3) / 2;
!                               buffer = doalloc(buffer, length = n);
                        }
                        for (j = 0; j < n; j++)
!                               buffer[j] = s2[j];
!                       s2 = buffer;
                }
                while (n-- != 0)
                        s1[n] = s2[n];
--- 1571,1588 ----
  {
        if (n != 0) {
                if ((s1+n > s2) && (s2+n > s1)) {
!                       static  char    *bfr;
                        static  size_t  length;
!                       register size_t j;
                        if (length < n) {
                                length = (n * 3) / 2;
!                               bfr = (bfr != 0)
!                                       ? realloc(bfr, length)
!                                       : malloc(length);
                        }
                        for (j = 0; j < n; j++)
!                               bfr[j] = s2[j];
!                       s2 = bfr;
                }
                while (n-- != 0)
                        s1[n] = s2[n];
Index: xterm.h
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/xterm.h Tue Jun  3 16:05:50 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/xterm.h Sun Jun 22 14:46:15 1997
***************
*** 53,58 ****
--- 53,59 ----
  extern void SwitchBufPtrs PROTO((TScreen *screen));
  extern void VTReset PROTO((int full));
  extern void VTRun PROTO((void));
+ extern void WriteText PROTO(( TScreen *screen, Char *str, int len));
  extern void set_cursor_gcs PROTO((TScreen *screen));
  extern void unparseputc1 PROTO((int c, int fd));
  extern void unparseputc PROTO((int c, int fd));
***************
*** 77,82 ****
--- 78,88 ----
  extern void Index PROTO((TScreen *screen, int amount));
  extern void RevIndex PROTO((TScreen *screen, int amount));
  
+ /* doublechr.c */
+ extern void xterm_DECDHL PROTO((Bool top));
+ extern void xterm_DECSWL PROTO((void));
+ extern void xterm_DECDWL PROTO((void));
+ 
  /* input.c */
  extern void Input PROTO((TKeyboard *keyboard, TScreen *screen, XKeyEvent *event, Bool eightbit));
  extern void StringInput PROTO((TScreen *screen, char *string, Size_t nbytes));
***************
*** 148,154 ****
  extern int ScreenResize PROTO((TScreen *screen, int width, int height, unsigned *flags));
  extern int ScrnGetAttributes PROTO((TScreen *screen, int row, int col, Char *str, int length));
  extern void ClearBufRows PROTO((TScreen *screen, int first, int last));
! extern void ScreenWrite PROTO((TScreen *screen, char *str, unsigned flags, unsigned cur_fg, unsigned cur_bg, int length));
  extern void ScrnDeleteChar PROTO((TScreen *screen, int n, int size));
  extern void ScrnDeleteLine PROTO((ScrnBuf sb, int n, int last, int size, int where));
  extern void ScrnInsertChar PROTO((TScreen *screen, int n, int size));
--- 154,160 ----
  extern int ScreenResize PROTO((TScreen *screen, int width, int height, unsigned *flags));
  extern int ScrnGetAttributes PROTO((TScreen *screen, int row, int col, Char *str, int length));
  extern void ClearBufRows PROTO((TScreen *screen, int first, int last));
! extern void ScreenWrite PROTO((TScreen *screen, Char *str, unsigned flags, unsigned cur_fg, unsigned cur_bg, int length));
  extern void ScrnDeleteChar PROTO((TScreen *screen, int n, int size));
  extern void ScrnDeleteLine PROTO((ScrnBuf sb, int n, int last, int size, int where));
  extern void ScrnInsertChar PROTO((TScreen *screen, int n, int size));
***************
*** 195,201 ****
  extern void Scroll PROTO((TScreen *screen, int amount));
  extern void do_erase_display PROTO((TScreen *screen, int param, int mode));
  extern void do_erase_line PROTO((TScreen *screen, int param, int mode));
! extern void drawXtermText PROTO((TScreen *screen, unsigned flags, GC gc, int x, int y, char *text, int len));
  extern void recolor_cursor PROTO((Cursor cursor, unsigned long fg, unsigned long bg));
  extern void resetXtermGC PROTO((TScreen *screen, int flags, Bool hilite));
  extern void scrolling_copy_area PROTO((TScreen *screen, int firstline, int nlines, int amount));
--- 201,207 ----
  extern void Scroll PROTO((TScreen *screen, int amount));
  extern void do_erase_display PROTO((TScreen *screen, int param, int mode));
  extern void do_erase_line PROTO((TScreen *screen, int param, int mode));
! extern void drawXtermText PROTO((TScreen *screen, unsigned flags, GC gc, int x, int y, int chrset, Char *text, int len));
  extern void recolor_cursor PROTO((Cursor cursor, unsigned long fg, unsigned long bg));
  extern void resetXtermGC PROTO((TScreen *screen, int flags, Bool hilite));
  extern void scrolling_copy_area PROTO((TScreen *screen, int firstline, int nlines, int amount));
***************
*** 234,238 ****
--- 240,252 ----
        XFillRectangle (screen->display, TextWindow(screen), \
                ReverseGC(screen), left, top, width, height); \
        useCurBackground(FALSE)
+ 
+ #if OPT_DEC_CHRSET
+ extern int getXtermChrSet PROTO((int row, int col));
+ extern int curXtermChrSet PROTO((int row));
+ #else
+ #define getXtermChrSet(row, col) 0
+ #define curXtermChrSet(row) 0
+ #endif
  
  #endif        /* included_xterm_h */
Index: xterm.man
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/xterm.man       Fri Dec 27 03:01:57 1996
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/xterm.man       Sun Jun 22 14:46:15 1997
***************
*** 56,64 ****
  menu in the 4014 window.
  .SH EMULATIONS
  The VT102 emulation is fairly complete, but does not support
! autorepeat,
! the blinking character attribute
! nor the double-wide and double-size character sets.
  .IR Termcap (5)
  entries that work with
  .I xterm
--- 56,63 ----
  menu in the 4014 window.
  .SH EMULATIONS
  The VT102 emulation is fairly complete, but does not support
! autorepeat or
! the blinking character attribute.
  .IR Termcap (5)
  entries that work with
  .I xterm
Index: xtermcfg.hin
*** /build/x11r6/XFree86-3.9g/xc/programs/xterm/xtermcfg.hin    Tue Jun  3 16:05:50 1997
--- /build/x11r6/XFree86-3.9g-patched/xc/programs/xterm/xtermcfg.hin    Sun Jun 22 14:46:15 1997
***************
*** 35,40 ****
--- 35,41 ----
  #undef HAVE_STRERROR  /* AC_CHECK_FUNCS(strerror) */
  #undef HAVE_TERMCAP_H /* AC_CHECK_HEADERS(termcap.h) */
  #undef OPT_AIX_COLORS /* CF_ARG_DISABLE(16-color) */
+ #undef OPT_DEC_CHRSET /* CF_ARG_DISABLE(doublechars) */
  #undef OPT_ISO_COLORS /* CF_ARG_DISABLE(ansi-color) */
  #undef OPT_TRACE      /* CF_ARG_ENABLE(trace) */
  #undef OPT_VT52_MODE  /* CF_ARG_DISABLE(vt52) */
***************
*** 47,52 ****
--- 48,57 ----
  
  #if USE_OK_BCOPY
  #define memmove(d,s,n) bcopy(s,d,n)
+ #endif
+ 
+ #if USE_MY_MEMMOVE
+ #define memmove(d,s,n) my_memmove(d,s,n)
  #endif
  
  #if !HAVE_STRERROR