XFree86 3.2Xh - patch 1997/5/22 - T.Dickey 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 +#endif + #include "ptyx.h" #include #include 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 +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 < conftest.$ac_ext <&AC_FD_CC + case $cf_attribute in + scanf|printf) + cat >conftest.h <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 </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 +#endif + #include "ptyx.h" /* Xlib headers included here. */ #include @@ -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 +#endif + #include "ptyx.h" #include #include @@ -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 +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 +#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 +#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 +#endif + #include "ptyx.h" /* gets Xt headers, too */ #include #include @@ -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 +#endif + #include "ptyx.h" #include #include 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 +#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 +#endif + #include "ptyx.h" /* X headers included here. */ #include 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 +# 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 +#endif + #include #include #include @@ -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 +#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 +#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 +#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 + + 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 +#endif + +#include +#include "trace.h" + +#if __STDC__ || CC_HAS_PROTOS +#define ANSI_VARARGS 1 +#include +#else +#define ANSI_VARARGS 0 +#include +#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 + + 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 +#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 +#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 + + 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 */ + +#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