xterm-38.patch.txt

XFree86 3.2Xh - patch 1997/5/22 - T.Dickey <dickey@clark.net>
 
This implements a simple configuration script with autoconf (to which I'll
add more options later).  It does the following:
 
        + configures xterm to build with X11R5 (at least on SunOS 4.1, Solaris
          2.4, possibly IRIX - sorry network was down today, but I did test
          an earlier version yesterday).
 
        + enables/disables the configuration ifdefs for ANSI color and VT52
          emulation.
 
It does not make tests for the things that imake does (that's another project),
instead it uses a hybrid of the autoconf tests for libraries and adds imake's
compiler options (which are necessary in some cases to get main.c to compile).
 
--------------------------------------------------------------------------------
 Tekproc.c             |    4 
 button.c              |   10 
 charproc.c            |    6 
 cursor.c              |    4 
 data.c                |    4 
 input.c               |   27 
 main.c                |    4 
 menu.c                |    4 
 misc.c                |    4 
 ptyx.h                |   11 
 resize.c              |    5 
 screen.c              |    4 
 scrollbar.c           |    4 
 tabs.c                |    4 
 ttysvr.c              |    4 
 util.c                |   41 
 xterm-38/Makefile.in  |   95 +
 xterm-38/aclocal.m4   |  435 ++++++
 xterm-38/configure    | 3406 ++++++++++++++++++++++++++++++++++++++++++++++++
 xterm-38/configure.in |  160 ++
 xterm-38/install.sh   |  120 +
 xterm-38/mkdirs.sh    |   35 
 xterm-38/trace.c      |   82 +
 xterm-38/trace.h      |   45 
 xterm-38/xtermcfg.hin |   56 
 xterm.h               |    1 
 26 files changed, 4564 insertions, 11 deletions
--------------------------------------------------------------------------------
Index: Makefile.in
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-38/Makefile.in        Wed May 21 21:30:22 1997
@@ -0,0 +1,95 @@
+#### Start of system configuration section. ####
+
+srcdir         = @srcdir@
+VPATH                  = @srcdir@
+
+CC             = @CC@
+LINK           = $(CC) $(CFLAGS)
+INSTALL                = @INSTALL@
+INSTALL_PROGRAM        = @INSTALL_PROGRAM@
+INSTALL_DATA   = @INSTALL_DATA@
+
+IMAKE_CFLAGS   = @IMAKE_CFLAGS@
+CFLAGS         = @CFLAGS@ $(IMAKE_CFLAGS)
+LIBS           = @LIBS@
+
+X_CFLAGS       = @X_CFLAGS@
+X_LIBS         = @X_LIBS@
+
+prefix         = @prefix@
+exec_prefix    = @exec_prefix@
+
+manext         = 1
+bindir         = $(exec_prefix)/bin
+libdir         = $(exec_prefix)/lib
+mandir         = $(prefix)/man/man$(manext)
+
+#### End of system configuration section. ####
+
+SHELL          = /bin/sh
+RM              = rm -f
+
+CPPFLAGS       = -I. -I$(srcdir) -DHAVE_CONFIG_H $(X_CFLAGS) 
+
+LDFLAGS                = 
+
+INSTALL_DIRS    = $(bindir) $(libdir) $(mandir)
+
+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
+          OBJS2 = resize.o
+           SRCS = $(SRCS1) $(SRCS2)
+           OBJS = $(OBJS1) $(OBJS2)
+           HDRS = Tekparse.h VTparse.h data.h error.h main.h menu.h proto.h \
+                  ptyx.h xterm.h
+       PROGRAMS = xterm resize
+
+all:   $(PROGRAMS)
+
+xterm : $(OBJS1)
+       $(LINK) $(LDFLAGS) -o $@ $(OBJS1) $(X_LIBS) $(LIBS)
+
+resize : $(OBJS2)
+       $(LINK) $(LDFLAGS) -o $@ $(OBJS2) $(X_LIBS) $(LIBS)
+
+install: $(INSTALL_DIRS) \
+       $(bindir)/xterm \
+       $(mandir)/xterm.$(manext) \
+       @echo 'Completed installation.'
+
+installdirs: $(INSTALL_DIRS)
+
+uninstall:
+       -$(RM) $(bindir)/xterm \
+               $(mandir)/xterm.$(manext)
+
+mostlyclean:
+       -$(RM) *.o core *~ *.BAK
+
+clean: mostlyclean
+       -$(RM) $(PROGRAMS)
+
+distclean: clean
+       -$(RM) Makefile config.status config.cache config.log xtermcfg.h
+
+realclean: distclean
+       -$(RM) tags TAGS
+
+tags:
+       ctags $(SRCS) $(HDRS)
+
+TAGS:
+       etags $(SRCS) $(HDRS)
+
+$(INSTALL_DIRS):
+       $(SHELL) ${srcdir}/mkdirs.sh $@
+
+ALWAYS:
Index: Tekproc.c
--- xterm-37+/Tekproc.c Fri Dec 27 03:01:57 1996
+++ xterm-38/Tekproc.c  Wed May 21 21:30:22 1997
@@ -56,6 +56,10 @@
 
 /* Tekproc.c */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"
 #include <X11/Xos.h>
 #include <X11/Xatom.h>
Index: aclocal.m4
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-38/aclocal.m4 Thu May 22 20:21:43 1997
@@ -0,0 +1,435 @@
+dnl
+dnl $XFree86$
+dnl
+dnl ---------------------------------------------------------------------------
+dnl 
+dnl Copyright 1997 by Thomas E. Dickey <dickey@clark.net>
+dnl 
+dnl                         All Rights Reserved
+dnl 
+dnl Permission to use, copy, modify, and distribute this software and its
+dnl documentation for any purpose and without fee is hereby granted,
+dnl provided that the above copyright notice appear in all copies and that
+dnl both that copyright notice and this permission notice appear in
+dnl supporting documentation, and that the name of the above listed
+dnl copyright holder(s) not be used in advertising or publicity pertaining
+dnl to distribution of the software without specific, written prior
+dnl permission.
+dnl 
+dnl THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
+dnl TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+dnl AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
+dnl LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+dnl 
+dnl ---------------------------------------------------------------------------
+dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
+dnl in the sharutils 4.2 distribution.
+dnl
+AC_DEFUN([CF_ANSI_CC],
+[AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
+AC_CACHE_VAL(cf_cv_ansi_cc,
+[cf_cv_ansi_cc=no
+cf_save_CFLAGS="$CFLAGS"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX                  -qlanglvl=ansi
+# Ultrix and OSF/1     -std1
+# HP-UX                        -Aa -D_HPUX_SOURCE
+# SVR4                 -Xc
+# UnixWare 1.2         (cannot use -Xc, since ANSI/POSIX clashes)
+for cf_arg in "-DCC_HAS_PROTOS" "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" -Xc
+do
+       CFLAGS="$cf_save_CFLAGS $cf_arg"
+       AC_TRY_COMPILE(
+[
+#ifndef CC_HAS_PROTOS
+#if !defined(__STDC__) || __STDC__ != 1
+choke me
+#endif
+#endif
+], [int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};],
+[cf_cv_ansi_cc="$cf_arg"; break])
+done
+CFLAGS="$cf_save_CFLAGS"
+])
+AC_MSG_RESULT($cf_cv_ansi_cc)
+test ".$cf_cv_ansi_cc" != .no && AC_DEFINE(CC_HAS_PROTOS)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Allow user to disable a normally-on option.
+AC_DEFUN([CF_ARG_DISABLE],
+[CF_ARG_OPTION($1,[$2 (default: on)],[$3],[$4],yes)])dnl
+dnl ---------------------------------------------------------------------------
+dnl Allow user to enable a normally-off option.
+AC_DEFUN([CF_ARG_ENABLE],
+[CF_ARG_OPTION($1,[$2 (default: off)],[$3],[$4],no)])dnl
+dnl ---------------------------------------------------------------------------
+dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
+dnl values.
+dnl
+dnl Parameters:
+dnl $1 = option name
+dnl $2 = help-string 
+dnl $3 = action to perform if option is not default
+dnl $4 = action if perform if option is default
+dnl $5 = default option value (either 'yes' or 'no')
+AC_DEFUN([CF_ARG_OPTION],
+[AC_ARG_ENABLE($1,[$2],[test "$enableval" != ifelse($5,no,yes,no) && enableval=ifelse($5,no,no,yes)
+  if test "$enableval" != "$5" ; then
+ifelse($3,,[    :]dnl
+,[    $3]) ifelse($4,,,[
+  else
+    $4])
+  fi],[enableval=$5 ifelse($4,,,[
+  $4
+])dnl
+  ])])dnl
+dnl ---------------------------------------------------------------------------
+dnl Check if we're accidentally using a cache from a different machine.
+dnl Derive the system name, as a check for reusing the autoconf cache.
+dnl
+AC_DEFUN([CF_CHECK_CACHE],
+[
+system_name="`(uname -s -r) 2>/dev/null`"
+if test -n "$system_name" ; then
+       AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
+else
+       system_name="`(hostname) 2>/dev/null`"
+fi
+AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
+test -z "$system_name" && system_name="$cf_cv_system_name"
+test -n "$cf_cv_system_name" && AC_MSG_RESULT("Configuring for $cf_cv_system_name")
+
+if test ".$system_name" != ".$cf_cv_system_name" ; then
+       AC_MSG_RESULT("Cached system name does not agree with actual")
+       AC_ERROR("Please remove config.cache and try again.")
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
+dnl is found, add our own version of memmove to the list of objects.
+AC_DEFUN([CF_FUNC_MEMMOVE],
+[
+if test ".$ac_cv_func_memmove" != .yes ; then
+       if test $ac_cv_func_bcopy = yes ; then
+               AC_MSG_CHECKING(if bcopy does overlapping moves)
+               AC_CACHE_VAL(cf_cv_good_bcopy,[
+                       AC_TRY_RUN([
+int main() {
+       static char data[] = "abcdefghijklmnopqrstuwwxyz";
+       char temp[40];
+       bcopy(data, temp, sizeof(data));
+       bcopy(temp+10, temp, 15);
+       bcopy(temp+5, temp+15, 10);
+       exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
+}
+               ],
+               [cf_cv_good_bcopy=yes],
+               [cf_cv_good_bcopy=no],
+               [cf_cv_good_bcopy=unknown])
+               ])
+               AC_MSG_RESULT($cf_cv_good_bcopy)
+       else
+               cf_cv_good_bcopy=no
+       fi
+       if test $cf_cv_good_bcopy = yes ; then
+               AC_DEFINE(USE_OK_BCOPY)
+       else
+               AC_DEFINE(USE_MY_MEMMOVE)
+       fi
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Check for tgetent function in termcap library.  If we cannot find this,
+dnl we'll use the $LINES and $COLUMNS environment variables to pass screen
+dnl size information to subprocesses.  (We cannot use terminfo's compatibility
+dnl function, since it cannot provide the termcap-format data).
+AC_DEFUN([CF_FUNC_TGETENT],
+[
+AC_MSG_CHECKING(for workable tgetent function)
+AC_CACHE_VAL(cf_cv_func_tgetent,[
+cf_save_LIBS="$LIBS"
+cf_cv_func_tgetent=no
+for cf_termlib in termcap termlib curses
+do
+       LIBS="$cf_save_LIBS -l$cf_termlib"
+       AC_TRY_RUN([
+/* terminfo implementations ignore the buffer argument, making it useless for
+ * the xterm application, which uses this information to make a new $TERMCAP
+ */
+int main()
+{
+       char buffer[1024];
+       buffer[0] = 0;
+       tgetent(buffer, "vt100");
+       exit(buffer[0] == 0); }],
+       [cf_cv_func_tgetent=$cf_termlib
+        break],
+       [AC_TRY_LINK([],[tgetent(0, 0)],[break])],
+       [echo trying link
+        AC_TRY_LINK([],[tgetent(0, 0)],
+               [cf_cv_func_tgetent=$cf_termlib
+                break],
+               [echo link failed
+                LIBS="$cf_save_LIBS"])])
+done
+])
+AC_MSG_RESULT($cf_cv_func_tgetent)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Test for availability of useful gcc __attribute__ directives to quiet
+dnl compiler warnings.  Though useful, not all are supported -- and contrary
+dnl to documentation, unrecognized directives cause older compilers to barf.
+AC_DEFUN([CF_GCC_ATTRIBUTES],
+[cat > conftest.i <<EOF
+#ifndef GCC_PRINTF
+#define GCC_PRINTF 0
+#endif
+#ifndef GCC_SCANF
+#define GCC_SCANF 0
+#endif
+#ifndef GCC_NORETURN
+#define GCC_NORETURN /* nothing */
+#endif
+#ifndef GCC_UNUSED
+#define GCC_UNUSED /* nothing */
+#endif
+EOF
+if test -n "$GCC"
+then
+       AC_CHECKING([for gcc __attribute__ directives])
+       changequote(,)dnl
+cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+#include "conftest.h"
+#include "conftest.i"
+#if    GCC_PRINTF
+#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+#else
+#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
+#endif
+#if    GCC_SCANF
+#define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
+#else
+#define GCC_SCANFLIKE(fmt,var)  /*nothing*/
+#endif
+extern void wow(char *,...) GCC_SCANFLIKE(1,2);
+extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+extern void foo(void) GCC_NORETURN;
+int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
+EOF
+       changequote([,])dnl
+       for cf_attribute in scanf printf unused noreturn
+       do
+               CF_UPPERCASE($cf_attribute,CF_ATTRIBUTE)
+               cf_directive="__attribute__(($cf_attribute))"
+               echo "checking for gcc $cf_directive" 1>&AC_FD_CC
+               case $cf_attribute in
+               scanf|printf)
+               cat >conftest.h <<EOF
+#define GCC_$CF_ATTRIBUTE 1
+EOF
+                       ;;
+               *)
+               cat >conftest.h <<EOF
+#define GCC_$CF_ATTRIBUTE $cf_directive
+EOF
+                       ;;
+               esac
+               if AC_TRY_EVAL(ac_compile); then
+                       test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
+                       cat conftest.h >>confdefs.h
+#              else
+#                      sed -e 's/__attr.*/\/*nothing*\//' conftest.h >>confdefs.h
+               fi
+       done
+else
+       fgrep define conftest.i >>confdefs.h
+fi
+rm -rf conftest*
+
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Check if the compiler supports useful warning options.  There's a few that
+dnl we don't use, simply because they're too noisy:
+dnl
+dnl    -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
+dnl    -Wredundant-decls (system headers make this too noisy)
+dnl    -Wtraditional (combines too many unrelated messages, only a few useful)
+dnl    -Wwrite-strings (too noisy, but should review occasionally)
+dnl
+AC_DEFUN([CF_GCC_WARNINGS],
+[cf_warn_CFLAGS=""
+if test -n "$GCC"
+then
+       CF_GCC_ATTRIBUTES
+       changequote(,)dnl
+       cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+int main(int argc, char *argv[]) { return argv[argc-1] == 0; }
+EOF
+       changequote([,])dnl
+       AC_CHECKING([for gcc warning options])
+       cf_save_CFLAGS="$CFLAGS"
+       cf_warn_CFLAGS="-W -Wall"
+       for cf_opt in \
+               Wbad-fuvction-cast \
+               Wcast-align \
+               Wcast-qual \
+               Winline \
+               Wmissing-declarations \
+               Wmissing-prototypes \
+               Wnested-externs \
+               Wpointer-arith \
+               Wshadow \
+               Wstrict-prototypes
+       do
+               CFLAGS="$cf_save_CFLAGS $cf_warn_CFLAGS -$cf_opt"
+               if AC_TRY_EVAL(ac_compile); then
+                       test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
+                       cf_warn_CFLAGS="$cf_warn_CFLAGS -$cf_opt"
+                       test "$cf_opt" = Wcast-qual && cf_warn_CFLAGS="$cf_warn_CFLAGS -DXTSTRINGDEFINES"
+               fi
+       done
+       rm -f conftest*
+       CFLAGS="$cf_save_CFLAGS"
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Use imake to obtain compiler flags.  We could, in principal, write tests to
+dnl get these, but if imake is properly configured there is no point in doing
+dnl this.
+AC_DEFUN([CF_IMAKE_CFLAGS],
+[
+rm -f Makefile Makefile.bak
+AC_PATH_PROGS(IMAKE,xmkmf imake)
+case $IMAKE in # (vi
+*/imake)
+       cf_imake_opts="-DUseInstalled=YES" # (vi
+       ;;
+*)
+       cf_imake_opts=
+       ;;
+esac
+
+# If it's installed properly, imake (or its wrapper, xmkmf) will point to the
+# config directory.
+if ( $IMAKE $cf_imake_opts 1>/dev/null 2>&AC_FD_CC)
+then
+       CF_VERBOSE(Using $IMAKE)
+else
+       # sometimes imake doesn't have the config path compiled in.  Find it.
+       cf_config=
+       for cf_libpath in $X_LIBS $LIBS ; do
+               case $cf_libpath in # (vi
+               -L*)
+                       cf_libpath=`echo .$cf_libpath | sed -e 's/^...//'`
+                       cf_libpath=$cf_libpath/X11/config
+                       if test -d $cf_libpath ; then
+                               cf_config=$cf_libpath
+                               break
+                       fi
+                       ;;
+               esac
+       done
+       if test -z $cf_config ; then
+               AC_ERROR(Could not find imake config-directory)
+       fi
+       cf_imake_opts="$cf_imake_opts -I$cf_config"
+       if ( $IMAKE -v $cf_imake_opts 2>&AC_FD_CC)
+       then
+               CF_VERBOSE(Using $IMAKE $cf_config)
+       else
+               AC_ERROR(Cannot run imake)
+       fi
+fi
+
+# If we've gotten this far, we have a Makefile for xterm.  Some X11R5 config
+# macros do not work well enough to actually use the Makefile for a build, but
+# the definitions are usable (probably).
+AC_MSG_CHECKING(for compiler options known to imake)
+AC_CACHE_VAL(cf_cv_imake_cflags,[
+       test -n "$verbose" && echo working...
+       cf_imake_cflags=`${MAKE-make} -n -f Makefile main.o RM=echo 2>/dev/null`
+       for cf_opt in $cf_imake_cflags
+       do
+               cf_found=no
+               case $cf_opt in # (vi
+changequote(,)dnl
+               -[focg]) cf_found=yes
+                       ;; # (vi
+               -[OID]*) #(vi
+changequote([,])dnl
+                       for cf_opt2 in $CFLAGS
+                       do
+                               if test ".$cf_opt" = ".$cf_opt2" ; then
+                                       cf_found=yes
+                                       break
+                               fi
+                       done
+                       ;;
+               -*)     ;; #(vi
+               $CC|main.*|echo)        cf_found=yes
+                       ;;
+               esac
+               if test $cf_found = no ; then
+                       CF_VERBOSE(flag:$cf_opt)
+                       cf_cv_imake_cflags="$cf_cv_imake_cflags $cf_opt"
+               else
+                       CF_VERBOSE(skip:$cf_opt)
+               fi
+       done
+])
+test -z "$verbose" && AC_MSG_RESULT(done)
+IMAKE_CFLAGS="$cf_cv_imake_cflags"
+rm -f Makefile Makefile.bak
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Make an uppercase version of a given name
+AC_DEFUN([CF_UPPERCASE],
+[
+changequote(,)dnl
+$2=`echo $1 |tr '[a-z]' '[A-Z]'`
+changequote([,])dnl
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Use AC_VERBOSE w/o the warnings
+AC_DEFUN([CF_VERBOSE],
+[test -n "$verbose" && echo "  $1" 1>&AC_FD_MSG
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Check for Xaw (Athena) libraries
+dnl
+AC_DEFUN([CF_X_ATHENA],
+[AC_REQUIRE([CF_X_TOOLKIT])
+AC_CHECK_HEADERS(X11/Xaw/SimpleMenu.h)
+AC_CHECK_LIB(Xmu, XmuClientWindow)
+AC_CHECK_LIB(Xext,XextCreateExtension,[LIBS="-lXext $LIBS"])
+AC_CHECK_LIB(Xaw, XawSimpleMenuAddGlobalActions, [LIBS="-lXaw $LIBS"],
+       AC_ERROR(
+[Unable to successfully link Athena library (-lXaw)]),
+       [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
+
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Check for X Toolkit libraries
+dnl
+AC_DEFUN([CF_X_TOOLKIT],
+[
+AC_CHECK_LIB(X11,XOpenDisplay,
+       [LIBS="-lX11 $LIBS"],,
+       [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
+AC_CHECK_LIB(Xt, XtAppInitialize,
+       [AC_DEFINE(HAVE_LIBXT) LIBS="-lXt $X_PRE_LIBS $LIBS"],
+       AC_WARN(
+[Unable to successfully link X Toolkit library (-lXt).
+You will have to check and add the proper libraries by hand to Makefile.]),
+       [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
+
+])dnl
Index: button.c
--- xterm-37+/button.c  Fri Dec 27 03:01:57 1996
+++ xterm-38/button.c   Thu May 22 20:58:07 1997
@@ -30,6 +30,10 @@
                                J. Gettys.
 */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"              /* Xlib headers included here. */
 
 #include <X11/Xatom.h>
@@ -1269,7 +1273,7 @@
 {
     register TScreen* screen = &((XtermWidget)w)->screen;
     register Atom* atomP;
-    int i;
+    Cardinal i;
     for (i = 0, atomP = screen->selection_atoms;
         i < screen->selection_count; i++, atomP++)
     {
@@ -1319,7 +1323,7 @@
     Cardinal count;
 {
     Atom* atoms = termw->screen.selection_atoms;
-    int i;
+    Cardinal i;
     Boolean have_selection = False;
 
     if (termw->screen.selection_length < 0) return;
@@ -1372,7 +1376,7 @@
 {
     Atom* atoms = termw->screen.selection_atoms;
     Cardinal count = termw->screen.selection_count;
-    int i;
+    Cardinal i;
 
     for (i = 0; i < count; i++) {
        int cutbuffer;
Index: charproc.c
--- xterm-37+/charproc.c        Sun Jan 26 11:17:56 1997
+++ xterm-38/charproc.c Thu May 22 21:00:01 1997
@@ -54,6 +54,10 @@
 
 /* charproc.c */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"
 #include <X11/Xos.h>
 #include <X11/Xatom.h>
@@ -4464,7 +4468,7 @@
     if (*param_count == 0) {
        fontnum = fontMenu_fontdefault;
     } else {
-       int maxparams = 1;              /* total number of params allowed */
+       Cardinal maxparams = 1;         /* total number of params allowed */
 
        switch (params[0][0]) {
          case 'd': case 'D': case '0':
Index: configure.in
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-38/configure.in       Wed May 21 21:30:22 1997
@@ -0,0 +1,160 @@
+dnl
+dnl $XFree86$
+dnl
+dnl ---------------------------------------------------------------------------
+dnl 
+dnl Copyright 1997 by Thomas E. Dickey <dickey@clark.net>
+dnl 
+dnl                         All Rights Reserved
+dnl 
+dnl Permission to use, copy, modify, and distribute this software and its
+dnl documentation for any purpose and without fee is hereby granted,
+dnl provided that the above copyright notice appear in all copies and that
+dnl both that copyright notice and this permission notice appear in
+dnl supporting documentation, and that the name of the above listed
+dnl copyright holder(s) not be used in advertising or publicity pertaining
+dnl to distribution of the software without specific, written prior
+dnl permission.
+dnl 
+dnl THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
+dnl TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+dnl AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
+dnl LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+dnl 
+dnl ---------------------------------------------------------------------------
+dnl Process this file with autoconf to produce a configure script.
+dnl
+AC_REVISION($Revision$)
+AC_PREREQ(2.12)
+AC_INIT(charproc.c)
+AC_CONFIG_HEADER(xtermcfg.h:xtermcfg.hin)
+CF_CHECK_CACHE
+
+###    checks for alternative programs
+AC_PROG_CC
+AC_PROG_CPP
+AC_GCC_TRADITIONAL
+AC_PROG_INSTALL
+
+###    checks for UNIX variants that set C preprocessor variables
+AC_AIX
+AC_ISC_POSIX
+AC_MINIX
+
+###    checks for header files
+AC_CHECK_HEADERS( \
+       termcap.h \
+       )
+
+###    checks for typedefs
+AC_TYPE_SIZE_T
+AC_CHECK_TYPE(time_t, long)
+
+###    checks for library functions
+AC_CHECK_FUNCS( \
+       bcopy \
+       memmove \
+       strerror \
+       )
+CF_FUNC_MEMMOVE
+CF_FUNC_TGETENT
+
+###    checks for structures
+
+###    checks for compiler characteristics
+AC_CONST
+CF_ANSI_CC
+
+###    checks for system services and user specified options
+
+AC_PATH_XTRA
+
+LDFLAGS="$LDFLAGS $X_LIBS"
+CFLAGS="$CFLAGS $X_CFLAGS"
+
+CF_X_ATHENA
+
+LIBS="$LIBS $X_EXTRA_LIBS"
+
+AC_MSG_CHECKING(if we should use imake to help)
+CF_ARG_DISABLE(imake,
+       [  --without-imake         disable use of imake for definitions],
+       [enable_imake=no],
+       [enable_imake=yes])
+AC_MSG_RESULT($enable_imake)
+if test $enable_imake = yes ; then
+       CF_IMAKE_CFLAGS
+fi
+AC_SUBST(IMAKE_CFLAGS)
+
+AC_MSG_CHECKING(for default terminal-id)
+AC_ARG_WITH(terminal-id,
+       [  --with-terminal-id[=V]  set default decTerminalId (default: vt100)],
+       [default_termid=$withval],
+       [default_termid=vt100])
+AC_MSG_RESULT($default_termid)
+case $default_termid in
+vt*)   default_termid=`echo $default_termid | sed -e 's/^..//'`
+       ;;
+esac
+AC_DEFINE_UNQUOTED(DFT_DECID,$default_termid)
+
+###    checks for optional features
+AC_MSG_CHECKING(if you want ANSI color)
+CF_ARG_DISABLE(ansi-color,
+       [  --disable-ansi-color    disable ANSI color],
+       [enable_ansi_color=no],
+       [enable_ansi_color=yes])
+AC_MSG_RESULT($enable_ansi_color)
+test $enable_ansi_color = no && AC_DEFINE(OPT_ISO_COLORS,0)
+
+dnl AC_MSG_CHECKING(for default terminal-id)
+dnl CF_ARG_ENABLE(color-mode,
+dnl    [  --enable-color-mode     set default colorMode resource ],
+dnl    [default_colormode=$withval],
+dnl    [default_colormode=vt100])
+dnl AC_MSG_RESULT($default_colormode)
+dnl AC_DEFINE(DFT_COLORMODE,$default_colormode)
+
+AC_MSG_CHECKING(if you want debugging traces)
+CF_ARG_ENABLE(trace,
+       [  --enable-trace          set to enable debugging traces],
+       [enable_trace=yes],
+       [enable_trace=no])
+AC_MSG_RESULT($enable_trace)
+if test $enable_trace = yes ; then
+       AC_DEFINE(OPT_TRACE)
+       EXTRASRCS="$EXTRASRCS trace.c"
+       EXTRAOBJS="$EXTRAOBJS trace.o"
+fi
+
+AC_MSG_CHECKING(if you want VT52 emulation)
+CF_ARG_DISABLE(vt52,
+       [  --disable-vt52          disable VT52 emulation],
+       [enable_vt52=no],
+       [enable_vt52=yes])
+AC_MSG_RESULT($enable_vt52)
+test $enable_vt52 = no && AC_DEFINE(OPT_VT52_MODE,0)
+
+if test -n "$GCC" ; then
+AC_MSG_CHECKING(if you want to turn on gcc warnings)
+CF_ARG_ENABLE(warnings,
+       [  --enable-warnings       turn on GCC compiler warnings],
+       [with_warnings=yes],
+       [with_warnings=no])
+AC_MSG_RESULT($with_warnings)
+if test "$with_warnings" = yes
+then
+       CF_GCC_WARNINGS
+       CFLAGS="$CFLAGS $cf_warn_CFLAGS"
+fi
+fi
+
+AC_SUBST(EXTRASRCS)
+AC_SUBST(EXTRAOBJS)
+
+###    output Makefile and xtermcfg.h
+AC_OUTPUT(Makefile)
Index: cursor.c
--- xterm-37+/cursor.c  Tue Aug 20 15:08:28 1996
+++ xterm-38/cursor.c   Wed May 21 21:30:22 1997
@@ -28,6 +28,10 @@
 
 /* cursor.c */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"              /* also gets Xlib.h */
 
 #include "data.h"
Index: data.c
--- xterm-37+/data.c    Tue Aug 13 14:51:20 1996
+++ xterm-38/data.c     Wed May 21 21:30:22 1997
@@ -26,6 +26,10 @@
  * SOFTWARE.
  */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"              /* gets Xt stuff, too */
 
 #if XtSpecificationRelease >= 6
Index: input.c
--- xterm-37+/input.c   Tue May 13 13:01:52 1997
+++ xterm-38/input.c    Thu May 22 15:38:28 1997
@@ -28,6 +28,10 @@
 
 /* input.c */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"              /* gets Xt headers, too */
 #include <X11/keysym.h>
 #include <X11/DECkeysym.h>
@@ -105,9 +109,11 @@
        reply.a_nparam = 0;
        reply.a_inters = 0;
 
+#ifdef XK_KP_Home
        if (keysym >= XK_KP_Home && keysym <= XK_KP_Begin) {
            keysym += XK_Home - XK_KP_Home;
        }
+#endif
 
 #define VT52_KEYPAD \
        if_OPT_VT52_MODE(screen,{ \
@@ -140,10 +146,15 @@
                        unparseseq(&reply, pty);
                }
                key = TRUE;
-        } else if (IsFunctionKey(keysym) || IsMiscFunctionKey(keysym) ||
-               keysym == XK_Prior || keysym == XK_Next ||
-               keysym == DXK_Remove || keysym == XK_KP_Delete ||
-               keysym == XK_KP_Insert) {
+        } else if (IsFunctionKey(keysym) || IsMiscFunctionKey(keysym)
+               || keysym == XK_Prior
+               || keysym == XK_Next
+               || keysym == DXK_Remove
+#ifdef XK_KP_Delete
+               || keysym == XK_KP_Delete
+               || keysym == XK_KP_Insert
+#endif
+               ) {
                int dec_code = funcvalue(keysym);
                if ((event->state & ShiftMask)
                 && ((string = udk_lookup(dec_code, &nbytes)) != 0)) {
@@ -269,9 +280,11 @@
 
                case XK_Find :  return(1);
                case XK_Insert: return(2);
-               case XK_KP_Insert: return(2);
                case XK_Delete: return(3);
+#ifdef XK_KP_Insert
+               case XK_KP_Insert: return(2);
                case XK_KP_Delete: return(3);
+#endif
                case DXK_Remove: return(3);
                case XK_Select: return(4);
                case XK_Prior:  return(5);
@@ -326,9 +339,11 @@
   
                case XK_Find :  return(1);
                case XK_Insert: return(2);
-               case XK_KP_Insert: return(2);
                case XK_Delete: return(3);
+#ifdef XK_KP_Insert
+               case XK_KP_Insert: return(2);
                case XK_KP_Delete: return(3);
+#endif
                case DXK_Remove: return(3);
                case XK_Select: return(4);
                case XK_Prior:  return(5);
Index: install.sh
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-38/install.sh Wed May 21 21:30:22 1997
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+#
+# install - install a program, script, or datafile
+# This comes from X11R5; it is not part of GNU.
+#
+# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+#
+# $Header: /usr2/foxharp/src/pgf/vile/RCS/install.sh,v 1.2 1994/07/11 22:56:20 pgf Exp $
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+
+instcmd="$mvprog"
+chmodcmd=""
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+       -c) instcmd="$cpprog"
+           shift
+           continue;;
+
+       -m) chmodcmd="$chmodprog $2"
+           shift
+           shift
+           continue;;
+
+       -o) chowncmd="$chownprog $2"
+           shift
+           shift
+           continue;;
+
+       -g) chgrpcmd="$chgrpprog $2"
+           shift
+           shift
+           continue;;
+
+       -s) stripcmd="$stripprog"
+           shift
+           continue;;
+
+       *)  if [ x"$src" = x ]
+           then
+               src=$1
+           else
+               dst=$1
+           fi
+           shift
+           continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+       echo "install:  no input file specified"
+       exit 1
+fi
+
+if [ x"$dst" = x ]
+then
+       echo "install:  no destination specified"
+       exit 1
+fi
+
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+if [ -d $dst ]
+then
+       dst="$dst"/`basename $src`
+fi
+
+# Make a temp file name in the proper directory.
+
+dstdir=`dirname $dst`
+dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+$doit $instcmd $src $dsttmp
+
+# and set any options; do chmod last to preserve setuid bits
+
+if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
+if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
+if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
+if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
+
+# Now rename the file to the real destination.
+
+$doit $rmcmd $dst
+$doit $mvcmd $dsttmp $dst
+
+
+exit 0
Index: main.c
--- xterm-37+/main.c    Sat Jan 18 07:32:17 1997
+++ xterm-38/main.c     Wed May 21 21:30:22 1997
@@ -68,6 +68,10 @@
 
 /* main.c */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"
 #include <X11/StringDefs.h>
 #include <X11/Shell.h>
Index: menu.c
--- xterm-37+/menu.c    Wed Jan  8 18:18:35 1997
+++ xterm-38/menu.c     Wed May 21 21:30:22 1997
@@ -27,6 +27,10 @@
 
 */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"
 #include "data.h"
 #include "menu.h"
Index: misc.c
--- xterm-37+/misc.c    Wed Jan  8 18:18:35 1997
+++ xterm-38/misc.c     Wed May 21 21:30:22 1997
@@ -26,6 +26,10 @@
  * SOFTWARE.
  */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"              /* X headers included here. */
 
 #include <X11/Xos.h>
Index: mkdirs.sh
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-38/mkdirs.sh  Wed May 21 21:30:22 1997
@@ -0,0 +1,35 @@
+#!/bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Last modified: 1994-03-25
+# Public domain
+#
+# $Header: /usr2/foxharp/src/pgf/vile/RCS/mkdirs.sh,v 1.2 1994/07/11 22:56:20 pgf Exp $
+#
+
+errstatus=0
+
+for file in ${1+"$@"} ; do 
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
+
+   pathcomp=
+   for d in ${1+"$@"} ; do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
+
+     if test ! -d "$pathcomp"; then
+        echo "mkdir $pathcomp" 1>&2
+        mkdir "$pathcomp" || errstatus=$?
+     fi
+
+     pathcomp="$pathcomp/"
+   done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
Index: ptyx.h
--- xterm-37+/ptyx.h    Wed Jan  8 18:18:35 1997
+++ xterm-38/ptyx.h     Wed May 21 21:30:22 1997
@@ -189,9 +189,12 @@
 #define        RDEL    0xFF
 
 #define MIN_DECID  52                  /* can emulate VT52 */
-#define DFT_DECID 100                  /* default VT100 */
 #define MAX_DECID 420                  /* ...through VT420 */
 
+#ifndef DFT_DECID
+#define DFT_DECID 100                  /* default VT100 */
+#endif
+
 #define NMENUFONTS 9                   /* entries in fontMenu */
 
 #define        NBOX    5                       /* Number of Points in box      */
@@ -285,9 +288,15 @@
 
 /***====================================================================***/
 
+#ifndef OPT_ISO_COLORS
 #define OPT_ISO_COLORS  1 /* true if xterm is configured with ISO colors */
+#endif
+
 #define OPT_BLINK_CURS  0 /* FIXME: do this later (96/7/31) */
+
+#ifndef OPT_VT52_MODE
 #define OPT_VT52_MODE   1 /* true if xterm supports VT52 emulation */
+#endif
 
 /***====================================================================***/
 
Index: resize.c
--- xterm-37+/resize.c  Sat Jan 18 07:32:17 1997
+++ xterm-38/resize.c   Thu May 22 20:09:12 1997
@@ -29,6 +29,10 @@
 
 /* resize.c */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include <X11/Xos.h>
 #include <stdio.h>
 #include <ctype.h>
@@ -43,6 +47,7 @@
 #endif
 
 #ifdef SVR4
+#undef  SYSV                   /* predefined on Solaris 2.4 */
 #define SYSV
 #define ATT
 #endif
Index: screen.c
--- xterm-37+/screen.c  Sat Jan 18 07:32:17 1997
+++ xterm-38/screen.c   Wed May 21 21:30:22 1997
@@ -28,6 +28,10 @@
 
 /* screen.c */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"
 #include "error.h"
 #include "data.h"
Index: scrollbar.c
--- xterm-37+/scrollbar.c       Mon May 19 10:50:55 1997
+++ xterm-38/scrollbar.c        Wed May 21 21:30:22 1997
@@ -26,6 +26,10 @@
  * SOFTWARE.
  */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"              /* gets Xt headers, too */
 
 #ifndef X_NOT_STDC_ENV
Index: tabs.c
--- xterm-37+/tabs.c    Tue Aug 13 14:51:20 1996
+++ xterm-38/tabs.c     Wed May 21 21:30:22 1997
@@ -28,6 +28,10 @@
 
 /* tabs.c */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"
 
 #include "xterm.h"
Index: trace.c
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-38/trace.c    Wed May 21 21:30:22 1997
@@ -0,0 +1,82 @@
+/*
+ * $XFree86$
+ */
+
+/************************************************************
+
+Copyright 1997 by Thomas E. Dickey <dickey@clark.net>
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of the above listed
+copyright holder(s) not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior
+permission.
+
+THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+********************************************************/
+
+/*
+ * debugging support via TRACE macro.
+ */
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
+#include <stdio.h>
+#include "trace.h"
+
+#if __STDC__ || CC_HAS_PROTOS
+#define ANSI_VARARGS 1
+#include <stdarg.h>
+#else
+#define ANSI_VARARGS 0
+#include <varargs.h>
+#endif
+
+void
+#if    ANSI_VARARGS
+Trace(char *fmt, ...)
+#else
+Trace(va_alist)
+va_dcl
+#endif
+{
+#if    !ANSI_VARARGS
+       register char *fmt;
+#endif
+       static  FILE    *fp;
+       va_list ap;
+
+       if (!fp)
+               fp = fopen("Trace.out", "w");
+       if (!fp)
+               abort();
+
+#if    ANSI_VARARGS
+       va_start(ap,fmt);
+#else
+       va_start(ap);
+       fmt = va_arg(ap, char *);
+#endif
+       if (fmt != 0) {
+               vfprintf(fp, fmt, ap);
+               va_end(ap);
+               (void)fflush(fp);
+       } else {
+               (void)fclose(fp);
+               (void)fflush(stdout);
+               (void)fflush(stderr);
+       }
+}
Index: trace.h
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-38/trace.h    Wed May 21 21:30:22 1997
@@ -0,0 +1,45 @@
+/*
+ * $XFree86$
+ */
+
+/************************************************************
+
+Copyright 1997 by Thomas E. Dickey <dickey@clark.net>
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of the above listed
+copyright holder(s) not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior
+permission.
+
+THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+********************************************************/
+
+/*
+ * Common/useful definitions for XTERM application
+ */
+#ifndef        included_trace_h
+#define        included_trace_h
+
+#include "proto.h"
+
+extern void    Trace PROTO(( char *, ... ))
+#if __GNUC__
+       __attribute__ ((format(printf,1,2)))
+#endif
+       ;
+#define TRACE(p) Trace p;
+
+#endif /* included_trace_h */
Index: ttysvr.c
--- xterm-37+/ttysvr.c  Wed Sep 14 10:02:53 1994
+++ xterm-38/ttysvr.c   Wed May 21 21:30:22 1997
@@ -9,6 +9,10 @@
  *     Leendert van Doorn, 1992
  */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"
 #include "data.h"
 #include "error.h"
Index: util.c
--- xterm-37+/util.c    Wed Jan  8 18:18:35 1997
+++ xterm-38/util.c     Wed May 21 21:30:22 1997
@@ -28,6 +28,10 @@
 
 /* util.c */
 
+#ifdef HAVE_CONFIG_H
+#include <xtermcfg.h>
+#endif
+
 #include "ptyx.h"
 #include "data.h"
 #include "error.h"
@@ -1486,3 +1490,40 @@
        useCurBackground(FALSE);
 }
 #endif /* OPT_ISO_COLORS */
+
+#if USE_MY_MEMMOVE
+char * my_memmove(s1, s2, n)
+       char *  s1;
+       char *  s2;
+       size_t  n;
+{
+       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];
+       }
+       return s1;
+}
+#endif USE_MY_MEMMOVE
+
+#if !HAVE_STRERROR
+char *my_strerror(n)
+{
+       extern char *sys_errlist[];
+       extern int sys_nerr;
+       if (n > 0 && n < sys_nerr)
+               return sys_errlist[n];
+       return "?";
+}
+#endif
Index: xterm.h
--- xterm-37+/xterm.h   Wed Jan  8 18:18:35 1997
+++ xterm-38/xterm.h    Thu May 22 20:42:43 1997
@@ -223,6 +223,7 @@
                /* FIXME: Reverse-Video? */
 #define getXtermBackground(flags, color) term->core.background_pixel
 #define getXtermForeground(flags, color) term->screen.foreground
+#define xtermColorPair() 0
 
 #define useCurBackground(flag) /*nothing*/
 
Index: xtermcfg.hin
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-38/xtermcfg.hin       Thu May 22 15:53:22 1997
@@ -0,0 +1,56 @@
+/*
+ * $XFree86$
+ */
+
+/************************************************************
+
+Copyright 1997 by Thomas E. Dickey <dickey@clark.net>
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of the above listed
+copyright holder(s) not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior
+permission.
+
+THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+********************************************************/
+
+/* This is a template for <xtermcfg.h> */
+
+#undef CC_HAS_PROTOS   /* CF_ANSI_CC */
+#undef DFT_DECID       /* AC_ARG_WITH(default-terminal-id) */
+#undef HAVE_STRERROR   /* AC_CHECK_FUNCS(strerror) */
+#undef HAVE_TERMCAP_H  /* AC_CHECK_HEADERS(termcap.h) */
+#undef OPT_ISO_COLORS  /* CF_ARG_DISABLE(ansi-color) */
+#undef OPT_TRACE       /* CF_ARG_ENABLE(trace) */
+#undef OPT_VT52_MODE   /* CF_ARG_DISABLE(vt52) */
+#undef USE_MY_MEMMOVE  /* CF_FUNC_MEMMOVE */
+#undef USE_OK_BCOPY    /* CF_FUNC_MEMMOVE */
+#undef const           /* AC_CONST */
+#undef size_t          /* AC_TYPE_SIZE_T */
+#undef time_t          /* AC_CHECK_TYPE(time_t, long) */
+
+#if USE_OK_BCOPY
+#define memmove(d,s,n) bcopy(s,d,n)
+#endif
+
+#if !HAVE_STRERROR
+#define strerror(n) my_strerror(n)
+extern char *my_strerror();
+#endif
+
+#if !HAVE_TERMCAP_H && !defined(NO_TERMCAP_H)
+#define NO_TERMCAP_H
+#endif