# ------------------------------------------------------------------------------
# Makefile.in | 2
# aclocal.m4 | 95 +++++++++++--
# button.c | 9 -
# charproc.c | 8 -
# configure | 385 +++++++++++++++++++------------------------------------
# ctlseqs.ms | 4
# fontutils.c | 7 -
# install.sh | 16 +-
# main.c | 261 +++++++++++++++++++++----------------
# mkdirs.sh | 2
# os2main.c | 21 ---
# termcap | 24 ++-
# terminfo | 56 +++++++-
# version.h | 2
# xterm.h | 2
# xterm.log.html | 39 +++++
# xterm.man | 4
# 17 files changed, 506 insertions, 431 deletions
# ------------------------------------------------------------------------------
Index: Makefile.in
--- xterm-113+/Makefile.in Sun Aug 22 14:20:13 1999
+++ xterm-114/Makefile.in Wed Sep 15 05:40:45 1999
@@ -9,7 +9,7 @@
CPP = @CPP@
LINK = $(CC) $(CFLAGS)
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ @XTERM_USR@ @XTERM_GRP@
INSTALL_DATA = @INSTALL_DATA@
X_CFLAGS = @X_CFLAGS@
Index: aclocal.m4
--- xterm-113+/aclocal.m4 Sun Aug 22 14:20:13 1999
+++ xterm-114/aclocal.m4 Wed Sep 15 22:08:52 1999
@@ -693,23 +693,34 @@
[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
])dnl
dnl ---------------------------------------------------------------------------
-dnl Check if xterm is installed setuid, assume we want to do the same on a
+dnl Check if xterm is installed setuid/setgid, assume we want to do the same on a
dnl new install
AC_DEFUN([CF_XTERM_MODE],[
AC_PATH_PROG(XTERM_PATH,xterm)
XTERM_MODE=755
+XTERM_USR=
+XTERM_GRP=
AC_MSG_CHECKING(for presumed installation-mode)
if test -f "$XTERM_PATH" ; then
- ls -Ll $XTERM_PATH >conftest.out
- read cf_mode cf_rest <conftest.out
+ ls -Llg $XTERM_PATH >conftest.out
+ read cf_mode cf_links XTERM_USR XTERM_GRP cf_rest <conftest.out
case ".$cf_mode" in #(vi
- .???s*)
+ .???s*) #(vi
XTERM_MODE=4711
;;
+ .??????s*)
+ XTERM_MODE=2711
+ ;;
esac
fi
-AC_MSG_RESULT($XTERM_MODE)
+test "$XTERM_USR" = "root" && XTERM_USR=""
+test "$XTERM_GRP" = "root" && XTERM_GRP=""
+AC_MSG_RESULT($XTERM_MODE $XTERM_USR $XTERM_GRP)
+test -n "$XTERM_USR" && XTERM_USR="-o $XTERM_USR"
+test -n "$XTERM_GRP" && XTERM_GRP="-g $XTERM_GRP"
AC_SUBST(XTERM_MODE)
+AC_SUBST(XTERM_USR)
+AC_SUBST(XTERM_GRP)
])dnl
dnl ---------------------------------------------------------------------------
dnl Check for Xaw (Athena) libraries
@@ -726,21 +737,77 @@
[ --with-neXtaw link with neXT Athena library],
[cf_x_athena=neXtaw])
-AC_CHECK_HEADERS(X11/$cf_x_athena/SimpleMenu.h)
AC_CHECK_LIB(Xext,XextCreateExtension,
[LIBS="-lXext $LIBS"])
-AC_CHECK_LIB(Xmu, XmuClientWindow,,[
-AC_CHECK_LIB(Xmu_s, XmuClientWindow)])
+cf_x_athena_include=""
+cf_x_athena_lib=""
+
+for cf_path in default \
+ /usr/contrib/X11R6 \
+ /usr/contrib/X11R5 \
+ /usr/lib/X11R5
+do
+
+ if test -z "$cf_x_athena_include" ; then
+ cf_save="$CFLAGS"
+ cf_test=X11/$cf_x_athena/SimpleMenu.h
+ if test $cf_path != default ; then
+ CFLAGS="-I$cf_path/include $cf_save"
+ AC_MSG_CHECKING(for $cf_test in $cf_path)
+ else
+ AC_MSG_CHECKING(for $cf_test)
+ fi
+ AC_TRY_COMPILE([
+#include <X11/Intrinsic.h>
+#include <$cf_test>],[],
+ [cf_result=yes],
+ [cf_result=no])
+ AC_MSG_RESULT($cf_result)
+ if test "$cf_result" = yes ; then
+ cf_x_athena_include=$cf_path
+ else
+ CFLAGS="$cf_save"
+ fi
+ fi
+
+ for cf_lib in "-l$cf_x_athena -lXmu" "-l${cf_x_athena}_s -lXmu_s"
+ do
+ if test -z "$cf_x_athena_lib" ; then
+ cf_save="$LIBS"
+ cf_test=XawSimpleMenuAddGlobalActions
+ if test $cf_path != default ; then
+ LIBS="-L$cf_path/lib $cf_lib $LIBS"
+ AC_MSG_CHECKING(for $cf_lib in $cf_path)
+ else
+ LIBS="$cf_lib $LIBS"
+ AC_MSG_CHECKING(for $cf_test in $cf_lib)
+ fi
+ AC_TRY_LINK([],[$cf_test()],
+ [cf_result=yes],
+ [cf_result=no],
+ [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
+ AC_MSG_RESULT($cf_result)
+ if test "$cf_result" = yes ; then
+ cf_x_athena_lib="$cf_lib"
+ else
+ LIBS="$cf_save"
+ fi
+ fi
+ done
+done
+
+if test -z "$cf_x_athena_include" ; then
+ AC_MSG_WARN(
+[Unable to successfully find Athena header files with test program])
+fi
-AC_CHECK_LIB($cf_x_athena, XawSimpleMenuAddGlobalActions,
- [LIBS="-l$cf_x_athena $LIBS"],[
-AC_CHECK_LIB(${cf_x_athena}_s, XawSimpleMenuAddGlobalActions,
- [LIBS="-l${cf_x_athena}_s $LIBS"],
+if test -z "$cf_x_athena_lib" ; then
AC_ERROR(
-[Unable to successfully link Athena library (-l$cf_x_athena) with test program]),
- [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
+[Unable to successfully link Athena library (-l$cf_x_athena) with test program])
+fi
+
CF_UPPER(CF_X_ATHENA_LIBS,HAVE_LIB_$cf_x_athena)
AC_DEFINE_UNQUOTED($CF_X_ATHENA_LIBS)
])dnl
Index: button.c
--- xterm-113+/button.c Sun Aug 22 14:20:13 1999
+++ xterm-114/button.c Wed Sep 15 21:50:53 1999
@@ -1745,20 +1745,21 @@
case XA_CUT_BUFFER7: cutbuffer = 7; break;
default: cutbuffer = -1;
}
- if (cutbuffer >= 0)
+ if (cutbuffer >= 0) {
if ( termw->screen.selection_length >
- 4*XMaxRequestSize(XtDisplay((Widget)termw))-32)
+ 4*XMaxRequestSize(XtDisplay((Widget)termw))-32) {
fprintf(stderr,
"%s: selection too big (%d bytes), not storing in CUT_BUFFER%d\n",
xterm_name, termw->screen.selection_length, cutbuffer);
- else
+ } else {
/* Cutbuffers are untyped, so in the wide chars case, we
just store the raw UTF-8 data. It is unlikely it
will be useful to anyone. */
XStoreBuffer( XtDisplay((Widget)termw),
termw->screen.selection_data,
termw->screen.selection_length, cutbuffer );
- else if (!replyToEmacs) {
+ }
+ } else if (!replyToEmacs) {
have_selection |=
XtOwnSelection( (Widget)termw, atoms[i],
termw->screen.selection_time,
Index: charproc.c
--- xterm-113+/charproc.c Sun Aug 22 14:20:13 1999
+++ xterm-114/charproc.c Wed Sep 15 06:18:54 1999
@@ -1583,12 +1583,12 @@
case 8:
term->flags |= INVISIBLE;
break;
- case 24:
- term->flags &= ~UNDERLINE;
- if_OPT_ISO_COLORS(screen,{setExtendedFG();})
- break;
case 22: /* reset 'bold' */
term->flags &= ~BOLD;
+ if_OPT_ISO_COLORS(screen,{setExtendedFG();})
+ break;
+ case 24:
+ term->flags &= ~UNDERLINE;
if_OPT_ISO_COLORS(screen,{setExtendedFG();})
break;
case 25: /* reset 'blink' */
Index: configure
--- xterm-113+/configure Sun Aug 22 14:20:13 1999
+++ xterm-114/configure Wed Sep 15 22:09:10 1999
@@ -3522,49 +3522,9 @@
fi
-for ac_hdr in X11/$cf_x_athena/SimpleMenu.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3530: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3535 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
-echo "configure:3568: checking for XextCreateExtension in -lXext" >&5
+echo "configure:3528: 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
@@ -3572,7 +3532,7 @@
ac_save_LIBS="$LIBS"
LIBS="-lXext $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3576 "configure"
+#line 3536 "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
@@ -3583,7 +3543,7 @@
XextCreateExtension()
; return 0; }
EOF
-if { (eval echo configure:3587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3604,182 +3564,102 @@
fi
-echo $ac_n "checking for XmuClientWindow in -lXmu""... $ac_c" 1>&6
-echo "configure:3609: checking for XmuClientWindow in -lXmu" >&5
-ac_lib_var=`echo Xmu'_'XmuClientWindow | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lXmu $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3617 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XmuClientWindow();
-
-int main() {
-XmuClientWindow()
-; return 0; }
-EOF
-if { (eval echo configure:3628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo Xmu | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lXmu $LIBS"
+cf_x_athena_include=""
+cf_x_athena_lib=""
-else
- echo "$ac_t""no" 1>&6
+for cf_path in default \
+ /usr/contrib/X11R6 \
+ /usr/contrib/X11R5 \
+ /usr/lib/X11R5
+do
-echo $ac_n "checking for XmuClientWindow in -lXmu_s""... $ac_c" 1>&6
-echo "configure:3655: checking for XmuClientWindow in -lXmu_s" >&5
-ac_lib_var=`echo Xmu_s'_'XmuClientWindow | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lXmu_s $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3663 "configure"
+ if test -z "$cf_x_athena_include" ; then
+ cf_save="$CFLAGS"
+ cf_test=X11/$cf_x_athena/SimpleMenu.h
+ if test $cf_path != default ; then
+ CFLAGS="-I$cf_path/include $cf_save"
+ echo $ac_n "checking for $cf_test in $cf_path""... $ac_c" 1>&6
+echo "configure:3583: checking for $cf_test in $cf_path" >&5
+ else
+ echo $ac_n "checking for $cf_test""... $ac_c" 1>&6
+echo "configure:3586: checking for $cf_test" >&5
+ fi
+ cat > conftest.$ac_ext <<EOF
+#line 3589 "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
- builtin and then its argument prototype would still apply. */
-char XmuClientWindow();
+#include <X11/Intrinsic.h>
+#include <$cf_test>
int main() {
-XmuClientWindow()
-; return 0; }
-EOF
-if { (eval echo configure:3674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo Xmu_s | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lXmu_s $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-
-echo $ac_n "checking for XawSimpleMenuAddGlobalActions in -l$cf_x_athena""... $ac_c" 1>&6
-echo "configure:3705: checking for XawSimpleMenuAddGlobalActions in -l$cf_x_athena" >&5
-ac_lib_var=`echo $cf_x_athena'_'XawSimpleMenuAddGlobalActions | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-l$cf_x_athena $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3713 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XawSimpleMenuAddGlobalActions();
-
-int main() {
-XawSimpleMenuAddGlobalActions()
; return 0; }
EOF
-if { (eval echo configure:3724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
+ cf_result=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
+ cf_result=no
fi
rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="-l$cf_x_athena $LIBS"
-else
- echo "$ac_t""no" 1>&6
+ echo "$ac_t""$cf_result" 1>&6
+ if test "$cf_result" = yes ; then
+ cf_x_athena_include=$cf_path
+ else
+ CFLAGS="$cf_save"
+ fi
+ fi
-echo $ac_n "checking for XawSimpleMenuAddGlobalActions in -l${cf_x_athena}_s""... $ac_c" 1>&6
-echo "configure:3744: checking for XawSimpleMenuAddGlobalActions in -l${cf_x_athena}_s" >&5
-ac_lib_var=`echo ${cf_x_athena}_s'_'XawSimpleMenuAddGlobalActions | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-l${cf_x_athena}_s $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3752 "configure"
+ for cf_lib in "-l$cf_x_athena -lXmu" "-l${cf_x_athena}_s -lXmu_s"
+ do
+ if test -z "$cf_x_athena_lib" ; then
+ cf_save="$LIBS"
+ cf_test=XawSimpleMenuAddGlobalActions
+ if test $cf_path != default ; then
+ LIBS="-L$cf_path/lib $cf_lib $LIBS"
+ echo $ac_n "checking for $cf_lib in $cf_path""... $ac_c" 1>&6
+echo "configure:3624: checking for $cf_lib in $cf_path" >&5
+ else
+ LIBS="$cf_lib $LIBS"
+ echo $ac_n "checking for $cf_test in $cf_lib""... $ac_c" 1>&6
+echo "configure:3628: checking for $cf_test in $cf_lib" >&5
+ fi
+ cat > conftest.$ac_ext <<EOF
+#line 3631 "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
- builtin and then its argument prototype would still apply. */
-char XawSimpleMenuAddGlobalActions();
int main() {
-XawSimpleMenuAddGlobalActions()
+$cf_test()
; return 0; }
EOF
-if { (eval echo configure:3763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
+ cf_result=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
+ cf_result=no
fi
rm -f conftest*
-LIBS="$ac_save_LIBS"
+ echo "$ac_t""$cf_result" 1>&6
+ if test "$cf_result" = yes ; then
+ cf_x_athena_lib="$cf_lib"
+ else
+ LIBS="$cf_save"
+ fi
+ fi
+ done
+done
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="-l${cf_x_athena}_s $LIBS"
-else
- echo "$ac_t""no" 1>&6
-{ echo "configure: error: Unable to successfully link Athena library (-l$cf_x_athena) with test program" 1>&2; exit 1; }
+if test -z "$cf_x_athena_include" ; then
+ echo "configure: warning: Unable to successfully find Athena header files with test program" 1>&2
fi
+if test -z "$cf_x_athena_lib" ; then
+ { echo "configure: error: Unable to successfully link Athena library (-l$cf_x_athena) with test program" 1>&2; exit 1; }
fi
@@ -3800,12 +3680,12 @@
for ac_func in grantpt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3804: checking for $ac_func" >&5
+echo "configure:3684: 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 3809 "configure"
+#line 3689 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3828,7 +3708,7 @@
; return 0; }
EOF
-if { (eval echo configure:3832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3850,7 +3730,7 @@
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6
-echo "configure:3854: checking for openpty in -lutil" >&5
+echo "configure:3734: checking for openpty in -lutil" >&5
ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3858,7 +3738,7 @@
ac_save_LIBS="$LIBS"
LIBS="-lutil $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3862 "configure"
+#line 3742 "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
@@ -3869,7 +3749,7 @@
openpty()
; return 0; }
EOF
-if { (eval echo configure:3873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3904,7 +3784,7 @@
# Extract the first word of "xterm", so it can be a program name with args.
set dummy xterm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3908: checking for $ac_word" >&5
+echo "configure:3788: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XTERM_PATH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3937,18 +3817,29 @@
fi
XTERM_MODE=755
+XTERM_USR=
+XTERM_GRP=
echo $ac_n "checking for presumed installation-mode""... $ac_c" 1>&6
-echo "configure:3942: checking for presumed installation-mode" >&5
+echo "configure:3824: checking for presumed installation-mode" >&5
if test -f "$XTERM_PATH" ; then
- ls -Ll $XTERM_PATH >conftest.out
- read cf_mode cf_rest <conftest.out
+ ls -Llg $XTERM_PATH >conftest.out
+ read cf_mode cf_links XTERM_USR XTERM_GRP cf_rest <conftest.out
case ".$cf_mode" in #(vi
- .???s*)
+ .???s*) #(vi
XTERM_MODE=4711
;;
+ .??????s*)
+ XTERM_MODE=2711
+ ;;
esac
fi
-echo "$ac_t""$XTERM_MODE" 1>&6
+test "$XTERM_USR" = "root" && XTERM_USR=""
+test "$XTERM_GRP" = "root" && XTERM_GRP=""
+echo "$ac_t""$XTERM_MODE $XTERM_USR $XTERM_GRP" 1>&6
+test -n "$XTERM_USR" && XTERM_USR="-o $XTERM_USR"
+test -n "$XTERM_GRP" && XTERM_GRP="-g $XTERM_GRP"
+
+
@@ -3957,12 +3848,12 @@
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3961: checking for $ac_func" >&5
+echo "configure:3852: 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 3966 "configure"
+#line 3857 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3985,7 +3876,7 @@
; return 0; }
EOF
-if { (eval echo configure:3989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4011,7 +3902,7 @@
echo $ac_n "checking if we should use imake to help""... $ac_c" 1>&6
-echo "configure:4015: checking if we should use imake to help" >&5
+echo "configure:3906: 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
@@ -4036,7 +3927,7 @@
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4040: checking for $ac_word" >&5
+echo "configure:3931: 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
@@ -4175,7 +4066,7 @@
echo $ac_n "checking for default terminal-id""... $ac_c" 1>&6
-echo "configure:4179: checking for default terminal-id" >&5
+echo "configure:4070: 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
@@ -4196,7 +4087,7 @@
echo $ac_n "checking for default terminal-type""... $ac_c" 1>&6
-echo "configure:4200: checking for default terminal-type" >&5
+echo "configure:4091: checking for default terminal-type" >&5
# Check whether --with-terminal-type or --without-terminal-type was given.
if test "${with_terminal_type+set}" = set; then
@@ -4213,7 +4104,7 @@
echo $ac_n "checking for private terminfo-directory""... $ac_c" 1>&6
-echo "configure:4217: checking for private terminfo-directory" >&5
+echo "configure:4108: checking for private terminfo-directory" >&5
# Check whether --with-own-terminfo or --without-own-terminfo was given.
if test "${with_own_terminfo+set}" = set; then
@@ -4250,7 +4141,7 @@
### checks for optional features
echo $ac_n "checking if you want active-icons""... $ac_c" 1>&6
-echo "configure:4254: checking if you want active-icons" >&5
+echo "configure:4145: checking if you want active-icons" >&5
# Check whether --enable-active-icon or --disable-active-icon was given.
if test "${enable_active_icon+set}" = set; then
@@ -4276,7 +4167,7 @@
fi
echo $ac_n "checking if you want ANSI color""... $ac_c" 1>&6
-echo "configure:4280: checking if you want ANSI color" >&5
+echo "configure:4171: 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
@@ -4302,7 +4193,7 @@
if test $enable_ansi_color = yes ; then
echo $ac_n "checking if you want 16 colors like aixterm""... $ac_c" 1>&6
-echo "configure:4306: checking if you want 16 colors like aixterm" >&5
+echo "configure:4197: 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
@@ -4326,7 +4217,7 @@
echo $ac_n "checking if you want 256 colors""... $ac_c" 1>&6
-echo "configure:4330: checking if you want 256 colors" >&5
+echo "configure:4221: checking if you want 256 colors" >&5
# Check whether --enable-256-color or --disable-256-color was given.
if test "${enable_256_color+set}" = set; then
@@ -4356,7 +4247,7 @@
fi
echo $ac_n "checking if you want blinking cursor""... $ac_c" 1>&6
-echo "configure:4360: checking if you want blinking cursor" >&5
+echo "configure:4251: checking if you want blinking cursor" >&5
# Check whether --enable-blink-cursor or --disable-blink-cursor was given.
if test "${enable_blink_cursor+set}" = set; then
@@ -4382,7 +4273,7 @@
if test $enable_ansi_color = yes ; then
echo $ac_n "checking if you want bold colors mapped like IBM PC""... $ac_c" 1>&6
-echo "configure:4386: checking if you want bold colors mapped like IBM PC" >&5
+echo "configure:4277: checking if you want bold colors mapped like IBM PC" >&5
# Check whether --enable-bold-color or --disable-bold-color was given.
if test "${enable_bold_color+set}" = set; then
@@ -4406,7 +4297,7 @@
echo $ac_n "checking if you want color-mode enabled by default""... $ac_c" 1>&6
-echo "configure:4410: checking if you want color-mode enabled by default" >&5
+echo "configure:4301: checking if you want color-mode enabled by default" >&5
# Check whether --enable-color-mode or --disable-color-mode was given.
if test "${enable_color_mode+set}" = set; then
@@ -4432,7 +4323,7 @@
fi
echo $ac_n "checking if you want support for color highlighting""... $ac_c" 1>&6
-echo "configure:4436: checking if you want support for color highlighting" >&5
+echo "configure:4327: checking if you want support for color highlighting" >&5
# Check whether --enable-highlighting or --disable-highlighting was given.
if test "${enable_highlighting+set}" = set; then
@@ -4456,7 +4347,7 @@
echo $ac_n "checking if you want support for doublesize characters""... $ac_c" 1>&6
-echo "configure:4460: checking if you want support for doublesize characters" >&5
+echo "configure:4351: checking if you want support for doublesize characters" >&5
# Check whether --enable-doublechars or --disable-doublechars was given.
if test "${enable_doublechars+set}" = set; then
@@ -4480,7 +4371,7 @@
echo $ac_n "checking if you want fallback-support for box characters""... $ac_c" 1>&6
-echo "configure:4484: checking if you want fallback-support for box characters" >&5
+echo "configure:4375: checking if you want fallback-support for box characters" >&5
# Check whether --enable-boxchars or --disable-boxchars was given.
if test "${enable_boxchars+set}" = set; then
@@ -4504,7 +4395,7 @@
echo $ac_n "checking if you want support for HP-style function keys""... $ac_c" 1>&6
-echo "configure:4508: checking if you want support for HP-style function keys" >&5
+echo "configure:4399: checking if you want support for HP-style function keys" >&5
# Check whether --enable-hp-fkeys or --disable-hp-fkeys was given.
if test "${enable_hp_fkeys+set}" = set; then
@@ -4530,7 +4421,7 @@
fi
echo $ac_n "checking if you want support for internationalization""... $ac_c" 1>&6
-echo "configure:4534: checking if you want support for internationalization" >&5
+echo "configure:4425: checking if you want support for internationalization" >&5
# Check whether --enable-i18n or --disable-i18n was given.
if test "${enable_i18n+set}" = set; then
@@ -4556,7 +4447,7 @@
fi
echo $ac_n "checking if you want support for initial-erase setup""... $ac_c" 1>&6
-echo "configure:4560: checking if you want support for initial-erase setup" >&5
+echo "configure:4451: checking if you want support for initial-erase setup" >&5
# Check whether --enable-initial-erase or --disable-initial-erase was given.
if test "${enable_initial_erase+set}" = set; then
@@ -4582,7 +4473,7 @@
fi
echo $ac_n "checking if you want support for input-method""... $ac_c" 1>&6
-echo "configure:4586: checking if you want support for input-method" >&5
+echo "configure:4477: checking if you want support for input-method" >&5
# Check whether --enable-input-method or --disable-input-method was given.
if test "${enable_input_method+set}" = set; then
@@ -4602,13 +4493,13 @@
echo "$ac_t""$enable_ximp" 1>&6
echo $ac_n "checking if X libraries support input-method""... $ac_c" 1>&6
-echo "configure:4606: checking if X libraries support input-method" >&5
+echo "configure:4497: checking if X libraries support input-method" >&5
if eval "test \"`echo '$''{'cf_cv_input_method'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4612 "configure"
+#line 4503 "configure"
#include "confdefs.h"
#include <X11/IntrinsicP.h>
@@ -4635,7 +4526,7 @@
; return 0; }
EOF
-if { (eval echo configure:4639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cf_cv_input_method=yes
else
@@ -4658,7 +4549,7 @@
fi
echo $ac_n "checking if you want support for logging""... $ac_c" 1>&6
-echo "configure:4662: checking if you want support for logging" >&5
+echo "configure:4553: checking if you want support for logging" >&5
# Check whether --enable-logging or --disable-logging was given.
if test "${enable_logging+set}" = set; then
@@ -4682,7 +4573,7 @@
EOF
echo $ac_n "checking if you want to allow logging via a pipe""... $ac_c" 1>&6
-echo "configure:4686: checking if you want to allow logging via a pipe" >&5
+echo "configure:4577: checking if you want to allow logging via a pipe" >&5
# Check whether --enable-logfile-exec or --disable-logfile-exec was given.
if test "${enable_logfile_exec+set}" = set; then
@@ -4709,7 +4600,7 @@
fi
echo $ac_n "checking if you want support for iconify/maximize translations""... $ac_c" 1>&6
-echo "configure:4713: checking if you want support for iconify/maximize translations" >&5
+echo "configure:4604: checking if you want support for iconify/maximize translations" >&5
# Check whether --enable-maximize or --disable-maximize was given.
if test "${enable_maximize+set}" = set; then
@@ -4733,7 +4624,7 @@
echo $ac_n "checking if you want NumLock to override keyboard tables""... $ac_c" 1>&6
-echo "configure:4737: checking if you want NumLock to override keyboard tables" >&5
+echo "configure:4628: checking if you want NumLock to override keyboard tables" >&5
# Check whether --enable-num-lock or --disable-num-lock was given.
if test "${enable_num_lock+set}" = set; then
@@ -4757,7 +4648,7 @@
echo $ac_n "checking if you want support for right-scrollbar""... $ac_c" 1>&6
-echo "configure:4761: checking if you want support for right-scrollbar" >&5
+echo "configure:4652: checking if you want support for right-scrollbar" >&5
# Check whether --enable-rightbar or --disable-rightbar was given.
if test "${enable_rightbar+set}" = set; then
@@ -4783,7 +4674,7 @@
fi
echo $ac_n "checking if you want check for redundant name-change""... $ac_c" 1>&6
-echo "configure:4787: checking if you want check for redundant name-change" >&5
+echo "configure:4678: checking if you want check for redundant name-change" >&5
# Check whether --enable-samename or --disable-samename was given.
if test "${enable_samename+set}" = set; then
@@ -4807,7 +4698,7 @@
echo $ac_n "checking if you want support for tek4014""... $ac_c" 1>&6
-echo "configure:4811: checking if you want support for tek4014" >&5
+echo "configure:4702: checking if you want support for tek4014" >&5
# Check whether --enable-tek4014 or --disable-tek4014 was given.
if test "${enable_tek4014+set}" = set; then
@@ -4837,7 +4728,7 @@
fi
echo $ac_n "checking if you want pulldown menus with a toolbar""... $ac_c" 1>&6
-echo "configure:4841: checking if you want pulldown menus with a toolbar" >&5
+echo "configure:4732: checking if you want pulldown menus with a toolbar" >&5
# Check whether --enable-toolbar or --disable-toolbar was given.
if test "${enable_toolbar+set}" = set; then
@@ -4861,7 +4752,7 @@
echo $ac_n "checking if you want VT52 emulation""... $ac_c" 1>&6
-echo "configure:4865: checking if you want VT52 emulation" >&5
+echo "configure:4756: checking if you want VT52 emulation" >&5
# Check whether --enable-vt52 or --disable-vt52 was given.
if test "${enable_vt52+set}" = set; then
@@ -4885,7 +4776,7 @@
echo $ac_n "checking if you want wide-character support""... $ac_c" 1>&6
-echo "configure:4889: checking if you want wide-character support" >&5
+echo "configure:4780: checking if you want wide-character support" >&5
# Check whether --enable-wide-chars or --disable-wide-chars was given.
if test "${enable_wide_chars+set}" = set; then
@@ -4914,7 +4805,7 @@
fi
echo $ac_n "checking if you want -ziconbeep option""... $ac_c" 1>&6
-echo "configure:4918: checking if you want -ziconbeep option" >&5
+echo "configure:4809: checking if you want -ziconbeep option" >&5
# Check whether --enable-ziconbeep or --disable-ziconbeep was given.
if test "${enable_ziconbeep+set}" = set; then
@@ -4939,7 +4830,7 @@
# development/testing aids
echo $ac_n "checking if you want debugging traces""... $ac_c" 1>&6
-echo "configure:4943: checking if you want debugging traces" >&5
+echo "configure:4834: checking if you want debugging traces" >&5
# Check whether --enable-trace or --disable-trace was given.
if test "${enable_trace+set}" = set; then
@@ -4968,7 +4859,7 @@
echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6
-echo "configure:4972: checking if you want to see long compiling messages" >&5
+echo "configure:4863: checking if you want to see long compiling messages" >&5
# Check whether --enable-echo or --disable-echo was given.
if test "${enable_echo+set}" = set; then
@@ -5008,7 +4899,7 @@
echo $ac_n "checking if you want magic cookie emulation""... $ac_c" 1>&6
-echo "configure:5012: checking if you want magic cookie emulation" >&5
+echo "configure:4903: checking if you want magic cookie emulation" >&5
# Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
if test "${enable_xmc_glitch+set}" = set; then
@@ -5037,7 +4928,7 @@
if test -n "$GCC" ; then
echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
-echo "configure:5041: checking if you want to turn on gcc warnings" >&5
+echo "configure:4932: 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
@@ -5077,9 +4968,9 @@
if test -n "$GCC"
then
echo "checking for gcc __attribute__ directives" 1>&6
-echo "configure:5081: checking for gcc __attribute__ directives" >&5
+echo "configure:4972: checking for gcc __attribute__ directives" >&5
cat > conftest.$ac_ext <<EOF
-#line 5083 "configure"
+#line 4974 "configure"
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
@@ -5117,7 +5008,7 @@
EOF
;;
esac
- if { (eval echo configure:5121: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:5012: \"$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
@@ -5134,11 +5025,11 @@
if test -n "$GCC"
then
cat > conftest.$ac_ext <<EOF
-#line 5138 "configure"
+#line 5029 "configure"
int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
EOF
echo "checking for gcc warning options" 1>&6
-echo "configure:5142: checking for gcc warning options" >&5
+echo "configure:5033: checking for gcc warning options" >&5
cf_save_CFLAGS="$CFLAGS"
EXTRA_CFLAGS="-W -Wall"
cf_warn_CONST=""
@@ -5156,7 +5047,7 @@
Wstrict-prototypes $cf_warn_CONST
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo configure:5160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:5051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
@@ -5334,6 +5225,8 @@
s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
s%@XTERM_PATH@%$XTERM_PATH%g
s%@XTERM_MODE@%$XTERM_MODE%g
+s%@XTERM_USR@%$XTERM_USR%g
+s%@XTERM_GRP@%$XTERM_GRP%g
s%@IMAKE@%$IMAKE%g
s%@IMAKE_CFLAGS@%$IMAKE_CFLAGS%g
s%@IMAKE_LOADFLAGS@%$IMAKE_LOADFLAGS%g
Index: ctlseqs.ms
--- xterm-113+/ctlseqs.ms Sun Jul 18 16:29:08 1999
+++ xterm-114/ctlseqs.ms Sun Aug 29 07:44:02 1999
@@ -1139,7 +1139,7 @@
0 0 \*(S3\*p
1 1 \*(S3\*q
2 2 \*(S3\*r
-3 3 \*(S3\*s
+3 3 \*(S3\*(cs
4 4 \*(S3\*t
5 5 \*(S3\*u
6 6 \*(S3\*v
@@ -1206,7 +1206,7 @@
0 0 \*(Es\*?\*p
1 1 \*(Es\*?\*q
2 2 \*(Es\*?\*r
-3 3 \*(Es\*?\*s
+3 3 \*(Es\*?\*(cs
4 4 \*(Es\*?\*t
5 5 \*(Es\*?\*u
6 6 \*(Es\*?\*v
Index: fontutils.c
--- xterm-113+/fontutils.c Sun Jul 4 15:08:14 1999
+++ xterm-114/fontutils.c Wed Sep 15 19:52:41 1999
@@ -562,10 +562,11 @@
#if OPT_BOX_CHARS
/*
- * Xterm uses the first 32 character positions of a font for the
- * line-drawing characters. Check that they are all present.
+ * Xterm uses character positions 1-31 of a font for the line-drawing
+ * characters. Check that they are all present. The null character
+ * (0) is special, and is not used.
*/
- for (ch = 0; ch < 32; ch++) {
+ for (ch = 1; ch < 32; ch++) {
if (xtermMissingChar(ch, nfs)
|| xtermMissingChar(ch, bfs)) {
screen->fnt_boxes = False;
Index: install.sh
--- xterm-113+/install.sh Wed Jun 23 07:02:33 1999
+++ xterm-114/install.sh Tue Sep 14 20:13:55 1999
@@ -1,4 +1,4 @@
-#!/bin/sh
+#! /bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5.
@@ -103,7 +103,7 @@
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
-
+
if [ -d $dst ]; then
instcmd=:
else
@@ -112,7 +112,7 @@
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
+# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
@@ -122,7 +122,7 @@
echo "install: $src does not exist"
exit 1
fi
-
+
if [ x"$dst" = x ]
then
echo "install: no destination specified"
@@ -189,17 +189,17 @@
# If we're going to rename the final executable, determine the name now.
- if [ x"$transformarg" = x ]
+ if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
- dstfile=`basename $dst $transformbasename |
+ dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
- if [ x"$dstfile" = x ]
+ if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
@@ -230,7 +230,7 @@
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
Index: main.c
--- xterm-113+/main.c Sun Aug 22 14:20:13 1999
+++ xterm-114/main.c Wed Sep 15 21:51:12 1999
@@ -3,7 +3,7 @@
#endif /* lint */
/*
- * W A R N I N G
+ * W A R N I N G
*
* If you think you know what all of this code is doing, you are
* probably very mistaken. There be serious and nasty dragons here.
@@ -565,9 +565,9 @@
static SIGNAL_T reapchild (int n);
static char *base_name (char *name);
static int pty_search (int *pty);
-static int remove_termcap_entry (char *buf, char *str);
static int spawn (void);
static void get_terminal (void);
+static void remove_termcap_entry (char *buf, char *str);
static void resize (TScreen *s, char *oldtc, char *newtc);
static Bool added_utmp_entry = False;
@@ -594,6 +594,7 @@
#endif
#endif /* USE_SYSV_TERMIO */
+#define TERMCAP_ERASE "kb="
#define VAL_INITIAL_ERASE A2E(127)
/* allow use of system default characters if defined and reasonable */
@@ -664,15 +665,15 @@
static struct termios d_tio;
#else /* !USE_SYSV_TERMIO && !USE_POSIX_TERMIOS */
static struct sgttyb d_sg = {
- 0, 0, 0177, CKILL, EVENP|ODDP|ECHO|XTABS|CRMOD
+ 0, 0, 0177, CKILL, EVENP|ODDP|ECHO|XTABS|CRMOD
};
static struct tchars d_tc = {
- CINTR, CQUIT, CSTART,
- CSTOP, CEOF, CBRK
+ CINTR, CQUIT, CSTART,
+ CSTOP, CEOF, CBRK
};
static struct ltchars d_ltc = {
- CSUSP, CDSUSP, CRPRNT,
- CFLUSH, CWERASE, CLNEXT
+ CSUSP, CDSUSP, CRPRNT,
+ CFLUSH, CWERASE, CLNEXT
};
static int d_disipline = NTTYDISC;
static long int d_lmode = LCRTBS|LCRTERA|LCRTKIL|LCTLECH;
@@ -861,7 +862,7 @@
{"ptyInitialErase", "PtyInitialErase", XtRBoolean, sizeof (Boolean),
offset(ptyInitialErase), XtRString, "false"},
{"backarrowKeyIsErase", "BackarrowKeyIsErase", XtRBoolean, sizeof(Boolean),
- offset(backarrow_is_erase), XtRString, "false"},
+ offset(backarrow_is_erase), XtRString, "false"},
#endif
{"waitForMap", "WaitForMap", XtRBoolean, sizeof (Boolean),
offset(wait_for_map), XtRString, "false"},
@@ -1245,12 +1246,12 @@
Cardinal *num_params GCC_UNUSED)
{
#if OPT_TEK4014
- if (w == toplevel)
+ if (w == toplevel) {
if (term->screen.Tshow)
hide_vt_window();
else
do_hangup(w, (XtPointer)0, (XtPointer)0);
- else
+ } else
if (term->screen.Vshow)
hide_tek_window();
else
@@ -1312,7 +1313,7 @@
#endif
{
fprintf (stderr,
- "%s: unable to allocate memory for ttydev or ptydev\n",
+ "%s: unable to allocate memory for ttydev or ptydev\n",
ProgramName);
exit (1);
}
@@ -1355,12 +1356,12 @@
#ifdef ONLCR
d_tio.c_oflag = OPOST|ONLCR;
#else
- d_tio.c_oflag = OPOST;
+ d_tio.c_oflag = OPOST;
#endif
#endif
#if defined(macII) || defined(ATT) || defined(CRAY) /* { */
- d_tio.c_cflag = B9600|CS8|CREAD|PARENB|HUPCL;
- d_tio.c_lflag = ISIG|ICANON|ECHO|ECHOE|ECHOK;
+ d_tio.c_cflag = B9600|CS8|CREAD|PARENB|HUPCL;
+ d_tio.c_lflag = ISIG|ICANON|ECHO|ECHOE|ECHOK;
#ifdef ECHOKE
d_tio.c_lflag |= ECHOKE|IEXTEN;
#endif
@@ -1376,7 +1377,7 @@
d_tio.c_cc[VQUIT] = CQUIT;
d_tio.c_cc[VERASE] = CERASE;
d_tio.c_cc[VKILL] = CKILL;
- d_tio.c_cc[VEOF] = CEOF;
+ d_tio.c_cc[VEOF] = CEOF;
d_tio.c_cc[VEOL] = CNUL;
d_tio.c_cc[VEOL2] = CNUL;
#ifdef VSWTCH
@@ -1396,12 +1397,12 @@
d_tio.c_cc[VTIME] = 0;
#endif /* } */
#ifdef HAS_LTCHARS /* { */
- d_ltc.t_suspc = CSUSP; /* t_suspc */
- d_ltc.t_dsuspc = CDSUSP; /* t_dsuspc */
- d_ltc.t_rprntc = CRPRNT;
- d_ltc.t_flushc = CFLUSH;
- d_ltc.t_werasc = CWERASE;
- d_ltc.t_lnextc = CLNEXT;
+ d_ltc.t_suspc = CSUSP; /* t_suspc */
+ d_ltc.t_dsuspc = CDSUSP; /* t_dsuspc */
+ d_ltc.t_rprntc = CRPRNT;
+ d_ltc.t_flushc = CFLUSH;
+ d_ltc.t_werasc = CWERASE;
+ d_ltc.t_lnextc = CLNEXT;
#endif /* } HAS_LTCHARS */
#ifdef TIOCLSET /* { */
d_lmode = 0;
@@ -1409,16 +1410,16 @@
#else /* }{ else !macII, ATT, CRAY */
#ifndef USE_POSIX_TERMIOS
#ifdef BAUD_0 /* { */
- d_tio.c_cflag = CS8|CREAD|PARENB|HUPCL;
+ d_tio.c_cflag = CS8|CREAD|PARENB|HUPCL;
#else /* }{ !BAUD_0 */
- d_tio.c_cflag = B9600|CS8|CREAD|PARENB|HUPCL;
+ d_tio.c_cflag = B9600|CS8|CREAD|PARENB|HUPCL;
#endif /* } !BAUD_0 */
#else /* USE_POSIX_TERMIOS */
d_tio.c_cflag = CS8|CREAD|PARENB|HUPCL;
cfsetispeed(&d_tio, B9600);
cfsetospeed(&d_tio, B9600);
#endif
- d_tio.c_lflag = ISIG|ICANON|ECHO|ECHOE|ECHOK;
+ d_tio.c_lflag = ISIG|ICANON|ECHO|ECHOE|ECHOK;
#ifdef ECHOKE
d_tio.c_lflag |= ECHOKE|IEXTEN;
#endif
@@ -1427,20 +1428,20 @@
#endif
#ifndef USE_POSIX_TERMIOS
#ifdef NTTYDISC
- d_tio.c_line = NTTYDISC;
+ d_tio.c_line = NTTYDISC;
#else
d_tio.c_line = 0;
#endif
#endif /* USE_POSIX_TERMIOS */
#ifdef __sgi
- d_tio.c_cflag &= ~(HUPCL|PARENB);
- d_tio.c_iflag |= BRKINT|ISTRIP|IGNPAR;
+ d_tio.c_cflag &= ~(HUPCL|PARENB);
+ d_tio.c_iflag |= BRKINT|ISTRIP|IGNPAR;
#endif
d_tio.c_cc[VINTR] = CONTROL('C'); /* '^C' */
d_tio.c_cc[VERASE] = 0x7f; /* DEL */
d_tio.c_cc[VKILL] = CONTROL('U'); /* '^U' */
d_tio.c_cc[VQUIT] = CQUIT; /* '^\' */
- d_tio.c_cc[VEOF] = CEOF; /* '^D' */
+ d_tio.c_cc[VEOF] = CEOF; /* '^D' */
d_tio.c_cc[VEOL] = CEOL; /* '^@' */
d_tio.c_cc[VMIN] = 1;
d_tio.c_cc[VTIME] = 0;
@@ -1543,12 +1544,12 @@
}
}
#ifdef HAS_LTCHARS /* { */
- d_ltc.t_suspc = '\000'; /* t_suspc */
- d_ltc.t_dsuspc = '\000'; /* t_dsuspc */
- d_ltc.t_rprntc = '\377'; /* reserved...*/
- d_ltc.t_flushc = '\377';
- d_ltc.t_werasc = '\377';
- d_ltc.t_lnextc = '\377';
+ d_ltc.t_suspc = '\000'; /* t_suspc */
+ d_ltc.t_dsuspc = '\000'; /* t_dsuspc */
+ d_ltc.t_rprntc = '\377'; /* reserved...*/
+ d_ltc.t_flushc = '\377';
+ d_ltc.t_werasc = '\377';
+ d_ltc.t_lnextc = '\377';
#endif /* } HAS_LTCHARS */
#if defined(USE_TERMIOS) || defined(USE_POSIX_TERMIOS) /* { */
d_tio.c_cc[VSUSP] = CSUSP;
@@ -1659,7 +1660,7 @@
}
#endif /* OPT_ZICONBEEP */
#if OPT_SAME_NAME
- sameName = resource.sameName;
+ sameName = resource.sameName;
#endif
xterm_name = resource.xterm_name;
sunFunctionKeys = resource.sunFunctionKeys;
@@ -1742,7 +1743,7 @@
SetupMenus(toplevel, &form_top, &menu_top);
- term = (XtermWidget) XtVaCreateManagedWidget(
+ term = (XtermWidget) XtVaCreateManagedWidget(
"vt100", xtermWidgetClass, form_top,
#if OPT_TOOLBAR
XtNmenuBar, menu_top,
@@ -1755,7 +1756,7 @@
0);
/* this causes the initialize method to be called */
- screen = &term->screen;
+ screen = &term->screen;
inhibit = 0;
#ifdef ALLOWLOGGING
@@ -1958,7 +1959,7 @@
int tty;
return (openpty(pty, &tty, ttydev, NULL, NULL));
#elif defined(SYSV) && defined(i386) && !defined(SVR4)
- /*
+ /*
The order of this code is *important*. On SYSV/386 we want to open
a /dev/ttyp? first if at all possible. If none are available, then
we'll try to open a /dev/pts??? device.
@@ -2278,6 +2279,18 @@
#ifndef AMOEBA
extern char **environ;
+static void
+set_owner(char *device, int uid, int gid, int mode)
+{
+ if (chown (device, uid, gid) < 0) {
+ if (getuid() == 0) {
+ fprintf(stderr, "Cannot chown %s to %d,%d: %s\n",
+ device, uid, gid, strerror(errno));
+ }
+ }
+ chmod (device, mode);
+}
+
static int
spawn (void)
/*
@@ -2375,7 +2388,7 @@
signal(SIGALRM, hungtty);
alarm(2); /* alarm(1) might return too soon */
- if (! sigsetjmp(env, 1)) {
+ if (! sigsetjmp(env, 1)) {
tty = open ("/dev/tty", O_RDWR, 0);
alarm(0);
tty_got_hung = False;
@@ -2471,6 +2484,11 @@
if (initial_erase == 0177) { /* see input.c */
term->keyboard.flags &= ~MODE_DECBKM;
}
+ TRACE(("%s @%d, ptyInitialErase:%d, backspace_is_erase:%d, initial_erase:%d\n",
+ __FILE__, __LINE__,
+ resource.ptyInitialErase,
+ resource.backarrow_is_erase,
+ initial_erase))
#endif
#ifdef MINIX
@@ -2484,7 +2502,7 @@
tty = -1;
}
-#ifdef PUCC_PTYD
+#ifdef PUCC_PTYD
if(-1 == (screen->respond = openrpty(ttydev, ptydev,
(resource.utmpInhibit ? OPTY_NOP : OPTY_LOGIN),
getuid(), XDisplayString(screen->display))))
@@ -2579,8 +2597,12 @@
}
#if OPT_INITIAL_ERASE
+ TRACE(("%s @%d, resource ptyInitialErase:%d, backspace_is_erase:%d\n",
+ __FILE__, __LINE__,
+ resource.ptyInitialErase,
+ resource.backarrow_is_erase))
if (!resource.ptyInitialErase && *newtc) {
- char *s = strstr(newtc, "kD=");
+ char *s = strstr(newtc, TERMCAP_ERASE);
TRACE(("extracting initial_erase value from termcap\n"))
if (s != 0) {
s += 3;
@@ -2600,6 +2622,7 @@
}
initial_erase = CharOf(initial_erase);
}
+ TRACE(("... initial_erase:%d\n", initial_erase))
}
#endif
@@ -2655,7 +2678,7 @@
#ifdef USE_USG_PTYS
#if defined(SYSV) && defined(i386) && !defined(SVR4)
- if (IsPts) { /* SYSV386 supports both, which did we open? */
+ if (IsPts) { /* SYSV386 supports both, which did we open? */
#endif /* SYSV && i386 && !SVR4 */
int ptyfd;
@@ -2686,24 +2709,24 @@
tty = ptyfd;
close (screen->respond);
#ifdef TIOCSWINSZ
- /* tell tty how big window is */
+ /* tell tty how big window is */
#if OPT_TEK4014
- if(TEK4014_ACTIVE(screen)) {
- ws.ws_row = 24;
- ws.ws_col = 80;
- ws.ws_xpixel = TFullWidth(screen);
- ws.ws_ypixel = TFullHeight(screen);
- } else
+ if(TEK4014_ACTIVE(screen)) {
+ ws.ws_row = 24;
+ ws.ws_col = 80;
+ ws.ws_xpixel = TFullWidth(screen);
+ ws.ws_ypixel = TFullHeight(screen);
+ } else
#endif
{
- ws.ws_row = screen->max_row + 1;
- ws.ws_col = screen->max_col + 1;
- ws.ws_xpixel = FullWidth(screen);
- ws.ws_ypixel = FullHeight(screen);
- }
+ ws.ws_row = screen->max_row + 1;
+ ws.ws_col = screen->max_col + 1;
+ ws.ws_xpixel = FullWidth(screen);
+ ws.ws_ypixel = FullHeight(screen);
+ }
#endif
#if defined(SYSV) && defined(i386) && !defined(SVR4)
- } else { /* else pty, not pts */
+ } else { /* else pty, not pts */
#endif /* SYSV && i386 && !SVR4 */
#endif /* USE_USG_PTYS */
@@ -2825,7 +2848,7 @@
(void) strcpy(ttydev, ptr);
}
#if defined(SYSV) && defined(i386) && !defined(SVR4)
- } /* end of IsPts else clause */
+ } /* end of IsPts else clause */
#endif /* SYSV && i386 && !SVR4 */
#endif /* USE_HANDSHAKE -- from near fork */
@@ -2835,22 +2858,17 @@
struct group *ttygrp;
if ((ttygrp = getgrnam("tty")) != 0) {
/* change ownership of tty to real uid, "tty" gid */
- chown (ttydev, screen->uid, ttygrp->gr_gid);
- chmod (ttydev, 0620);
+ set_owner (ttydev, screen->uid, ttygrp->gr_gid, 0620);
}
else {
/* change ownership of tty to real group and user id */
- chown (ttydev, screen->uid, screen->gid);
- chmod (ttydev, 0622);
+ set_owner (ttydev, screen->uid, screen->gid, 0622);
}
endgrent();
}
#else /* else !USE_TTY_GROUP */
/* change ownership of tty to real group and user id */
- chown (ttydev, screen->uid, screen->gid);
-
- /* change protection of tty */
- chmod (ttydev, 0622);
+ set_owner (ttydev, screen->uid, screen->gid, 0622);
#endif /* USE_TTY_GROUP */
/*
@@ -3126,6 +3144,11 @@
signal (SIGTERM, SIG_DFL);
#if OPT_INITIAL_ERASE
+ TRACE(("%s @%d, ptyInitialErase:%d, overide_tty_modes:%d, XTTYMODE_erase:%d\n",
+ __FILE__, __LINE__,
+ resource.ptyInitialErase,
+ override_tty_modes,
+ ttymodelist[XTTYMODE_erase].set))
if (! resource.ptyInitialErase
&& !override_tty_modes
&& !ttymodelist[XTTYMODE_erase].set) {
@@ -3520,24 +3543,24 @@
resize (screen, termcap, newtc);
}
if (term->misc.titeInhibit) {
- remove_termcap_entry (newtc, ":ti=");
- remove_termcap_entry (newtc, ":te=");
+ remove_termcap_entry (newtc, "ti=");
+ remove_termcap_entry (newtc, "te=");
}
/*
* work around broken termcap entries */
if (resource.useInsertMode) {
- remove_termcap_entry (newtc, ":ic=");
+ remove_termcap_entry (newtc, "ic=");
/* don't get duplicates */
- remove_termcap_entry (newtc, ":im=");
- remove_termcap_entry (newtc, ":ei=");
- remove_termcap_entry (newtc, ":mi");
+ remove_termcap_entry (newtc, "im=");
+ remove_termcap_entry (newtc, "ei=");
+ remove_termcap_entry (newtc, "mi");
if(*newtc)
strcat (newtc, ":im=\\E[4h:ei=\\E[4l:mi:");
}
#if OPT_INITIAL_ERASE
- remove_termcap_entry (newtc, ":kD=");
if (*newtc) {
- sprintf(newtc + strlen(newtc), ":kD=\\%03o", initial_erase & 0377);
+ remove_termcap_entry (newtc, TERMCAP_ERASE);
+ sprintf(newtc + strlen(newtc), ":%s\\%03o", TERMCAP_ERASE, initial_erase & 0377);
}
#endif
if(*newtc)
@@ -3728,7 +3751,7 @@
signal (SIGINT, Exit);
signal (SIGQUIT, Exit);
signal (SIGTERM, Exit);
- signal (SIGPIPE, Exit);
+ signal (SIGPIPE, Exit);
#endif /* USE_SYSV_SIGNALS and not SIGTSTP */
return 0;
@@ -3776,11 +3799,11 @@
char programpath[1024];
if ((path = getenv("PATH")) == NULL)
- path = DEF_PATH;
+ path = DEF_PATH;
if ((name = strrchr(program, '/')) != NULL)
- name++;
+ name++;
else
- name = program;
+ name = program;
do {
register char *p = programpath;
@@ -3974,16 +3997,16 @@
resize (screen, termcap, newtc);
}
if (term->misc.titeInhibit) {
- remove_termcap_entry (newtc, ":ti=");
- remove_termcap_entry (newtc, ":te=");
+ remove_termcap_entry (newtc, "ti=");
+ remove_termcap_entry (newtc, "te=");
}
/* work around broken termcap entries */
if (resource.useInsertMode) {
- remove_termcap_entry (newtc, ":ic=");
+ remove_termcap_entry (newtc, "ic=");
/* don't get duplicates */
- remove_termcap_entry (newtc, ":im=");
- remove_termcap_entry (newtc, ":ei=");
- remove_termcap_entry (newtc, ":mi");
+ remove_termcap_entry (newtc, "im=");
+ remove_termcap_entry (newtc, "ei=");
+ remove_termcap_entry (newtc, "mi");
if (*newtc)
strcat (newtc, ":im=\\E[4h:ei=\\E[4l:mi:");
}
@@ -4016,11 +4039,11 @@
char *argvec[2];
if ((shell = getenv("SHELL")) == NULL)
- shell = DEF_SHELL; /* "cannot happen" */
+ shell = DEF_SHELL; /* "cannot happen" */
if ((shname = strrchr(shell, '/')) != NULL)
- shname++;
+ shname++;
else
- shname = shell;
+ shname = shell;
shname_minus = malloc(strlen(shname) + 2);
(void) strcpy(shname_minus, "-");
@@ -4193,7 +4216,7 @@
#endif /* USE_SYSV_UTMP */
#endif /* UTMP */
#ifndef AMOEBA
- close(screen->respond); /* close explicitly to avoid race with slave side */
+ close(screen->respond); /* close explicitly to avoid race with slave side */
#endif
#ifdef ALLOWLOGGING
if(screen->logging)
@@ -4203,15 +4226,9 @@
#ifndef AMOEBA
if (!am_slave) {
/* restore ownership of tty and pty */
- chown (ttydev, 0, 0);
+ set_owner (ttydev, 0, 0, 0666);
#if (!defined(__sgi) && !defined(__osf__) && !defined(__hpux))
- chown (ptydev, 0, 0);
-#endif
-
- /* restore modes of tty and pty */
- chmod (ttydev, 0666);
-#if (!defined(__sgi) && !defined(__osf__) && !defined(__hpux))
- chmod (ptydev, 0666);
+ set_owner (ptydev, 0, 0, 0666);
#endif
}
#endif /* AMOEBA */
@@ -4273,7 +4290,7 @@
nonblocking_wait(void)
{
#ifdef USE_POSIX_WAIT
- pid_t pid;
+ pid_t pid;
pid = waitpid(-1, NULL, WNOHANG);
#elif defined(USE_SYSV_SIGNALS) && (defined(CRAY) || !defined(SIGTSTP))
@@ -4318,24 +4335,42 @@
SIGNAL_RETURN;
}
-static int
+static void
remove_termcap_entry (char *buf, char *str)
{
- register char *strinbuf;
+ char *base = buf;
+ char *first = base;
+ int count = 0;
+ size_t len = strlen(str);
+
+ TRACE(("*** remove_termcap_entry('%s', '%s')\n", str, buf))
- strinbuf = strindex (buf, str);
- if (strinbuf) {
- register char *colonPtr = strchr(strinbuf+1, ':');
- if (colonPtr) {
- while (*colonPtr) {
- *strinbuf++ = *colonPtr++; /* copy down */
- }
- *strinbuf = '\0';
- } else {
- strinbuf[1] = '\0';
- }
+ while (*buf != 0) {
+ if (!count && !strncmp(buf, str, len)) {
+ while (*buf != 0) {
+ if (*buf == '\\')
+ buf++;
+ else if (*buf == ':')
+ break;
+ if (*buf != 0)
+ buf++;
+ }
+ while ((*first++ = *buf++) != 0)
+ ;
+ TRACE(("...removed_termcap_entry('%s', '%s')\n", str, base))
+ return;
+ } else if (*buf == '\\') {
+ buf++;
+ } else if (*buf == ':') {
+ first = buf;
+ count = 0;
+ } else if (!isspace(*buf)) {
+ count++;
+ }
+ if (*buf != 0)
+ buf++;
}
- return 0;
+ TRACE(("...cannot remove\n"))
}
/*
@@ -4431,9 +4466,9 @@
* much cheaper than called nbio_select.
*/
if (nbio_isinprogress(fd, ASIO_READ))
- return 0;
+ return 0;
else
- return 1;
+ return 1;
#elif defined(FIORDCK)
return (ioctl (fd, FIORDCHK, NULL));
#else /* !FIORDCK */
@@ -4469,7 +4504,7 @@
int A2E(int x)
{
char c;
- c=x;
+ c = x;
__atoe_l(&c,1);
return c;
}
@@ -4477,7 +4512,7 @@
int E2A(int x)
{
char c;
- c=x;
+ c = x;
__etoa_l(&c,1);
return c;
}
Index: mkdirs.sh
--- xterm-113+/mkdirs.sh Sat Dec 13 18:30:40 1997
+++ xterm-114/mkdirs.sh Mon Feb 2 10:07:50 1998
@@ -1,4 +1,4 @@
-#!/bin/sh
+#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
Index: os2main.c
--- xterm-113+/os2main.c Sun Aug 22 14:20:13 1999
+++ xterm-114/os2main.c Wed Sep 15 07:03:41 1999
@@ -107,7 +107,6 @@
static SIGNAL_T reapchild (int n);
static char *base_name (char *name);
-static int remove_termcap_entry (char *buf, char *str);
static int spawn (void);
static void get_terminal (void);
static void resize (TScreen *s, char *oldtc, char *newtc);
@@ -1767,26 +1766,6 @@
} while ( (pid=nonblocking_wait()) > 0);
SIGNAL_RETURN;
-}
-
-static int
-remove_termcap_entry (char *buf, char *str)
-{
- register char *strinbuf;
-
- strinbuf = strindex (buf, str);
- if (strinbuf) {
- register char *colonPtr = strchr(strinbuf+1, ':');
- if (colonPtr) {
- while (*colonPtr) {
- *strinbuf++ = *colonPtr++; /* copy down */
- }
- *strinbuf = '\0';
- } else {
- strinbuf[1] = '\0';
- }
- }
- return 0;
}
/*
Index: termcap
--- xterm-113+/termcap Mon May 3 21:18:34 1999
+++ xterm-114/termcap Sun Aug 29 16:05:34 1999
@@ -44,6 +44,21 @@
:up=\E[A:us=\E[4m:ue=\E[24m:xn:\
:ut:Co#8:op=\E[39;49m:AB=\E[4%dm:AF=\E[3%dm:\
:pa#64:Sf=\E[3%dm:Sb=\E[4%dm:
+#
+# The xterm-xfree86 description has all of the features, but is not completely
+# compatible with vt220. If you are using a Sun or PC keyboard, set the
+# sunKeyboard resource to true:
+# + maps the editing keypad
+# + interprets control-function-key as a second array of keys, so a
+# 12-fkey keyboard can support vt220's 20-fkeys.
+# + maps numeric keypad "+" to ",".
+# + uses DEC-style control sequences for the application keypad.
+#
+vt|xterm-vt220|xterm emulating vt220:\
+ :kH=\E[4~::@7=\E[4~:*6=\E[4~:
+ :kh=\E[1~:\
+ :tc=xterm-xfree86:
+
v1|xterm-24|xterms|vs100|24x80 xterm:\
:li#24:\
:tc=xterm:
@@ -59,6 +74,11 @@
:kn#20:\
:st@:ut@:Co@:NC@:op@:AB@:AF@:pa@:Sf@:Sb@:tc=xterm:
#
+# Alternate terminal description that "works" for interactive shells such as
+# tcsh and bash.
+xterm-noapp|xterm with cursor keys in normal mode:\
+ kl=\E[D:kd=\E[B:kr=\E[C:ku=\E[A:ks=\E=:ke=\E>:ti@:te@:tc=xterm:
+#
# This should work for the commonly used "color xterm" variations (XFree86
# xterm, color_xterm, nxterm, rxvt). You may have trouble with this using
# conventional termcap because ncurses reports it is longer than 1023
@@ -66,10 +86,6 @@
# (you can suppress it with "ac@").
vc|xterm-color|generic "ANSI" color xterm:\
:Co#8:NC@:pa#64:op=\E[m:AB=\E[4%dm:AF=\E[3%dm:tc=xterm-r6:
-vt|xterm-vt220|xterm emulating vt220:\
- :kH=\E[4~::@7=\E[4~:*6=\E[4~:
- :kh=\E[1~:\
- :tc=xterm-xfree86:
#
# vi may work better with this entry, because vi doesn't use insert mode much.
# |xterm-ic|xterm-vi|xterm with insert character instead of insert mode:\
Index: terminfo
--- xterm-113+/terminfo Mon Jul 12 13:43:45 1999
+++ xterm-114/terminfo Sun Aug 29 16:08:07 1999
@@ -333,6 +333,10 @@
smso=\E[7m,
smul=\E[1m,
use=xterm,
+xterm-boldso|xterm with bold for standout (X Window System),
+ rmso=\E[m,
+ smso=\E[1m,
+ use=xterm,
xterm-mono|monochrome xterm (X Window System),
colors@,
ncv@,
@@ -345,8 +349,52 @@
sgr@,
use=xterm,
#
+# VTxxx terminals are usually set up so that full-screen applications will use
+# the cursor application mode strings. This is good for full-screen
+# applications, including legacy applications which may have hard-coded
+# behavior, but bad for interactive shells (e.g., tcsh, bash) which use arrow
+# keys to scroll through a history of command strings.
+#
+# To see the difference between normal/application modes, consider this example:
+# + In normal (non-application) mode, the terminal transmits a down-arrow
+# as \E[C, which happens to echo as a down-arrow.
+# + In application mode the terminal transmits \EOC, which echoes as C.
+# That is because the \EO is the SS3 control, which says to use the
+# character from the G3 character set for the next cell.
+#
+# One example of hard-coded behavior would be for applications written to work
+# with VT52 and VT100 terminals. If the application's parser ignores 'O' and
+# '?' characters after the escape, then the cursor and keypad strings for the
+# two terminals are the same. (Indeed, one of the first curses applications
+# which I used did something like this to cover "ANSI" terminals -TD).
+#
+# To make this work (leaving the cursor keys in normal mode), we have to adjust
+# the terminal initialization sequences:
+#
+# smkx/rmkx set/reset the cursor and keypad application modes. We retain
+# the latter (otherwise many applications fail).
+#
+# smcup/rmcup set/restore cursor-addressing mode for full-screen
+# applications. For xterm, this normally means the alternate
+# screen, which is not compatible with interactive shells. Some
+# programs are "smart" and disable these.
+#
+xterm-noapp|xterm with cursor keys in normal mode,
+ kcub1=\E[D,
+ kcud1=\E[B,
+ kcuf1=\E[C,
+ kcuu1=\E[A,
+ rmcup@,
+ rmkx=\E>,
+ smcup@,
+ smkx=\E=,
+ use=xterm,
+#
# This should work for the commonly used "color xterm" variations (XFree86
-# xterm, color_xterm, nxterm, rxvt):
+# xterm, color_xterm, nxterm, rxvt). Note that it does not set 'bce', so for
+# XFree86 and and rxvt, some applications that use colors will be less
+# efficient, and in a few special cases (with "smart" optimization) the wrong
+# color will be painted in spots.
xterm-color|generic "ANSI" color xterm (X Window System),
colors#8,
ncv@,
@@ -356,11 +404,6 @@
setaf=\E[3%p1%dm,
use=xterm-r6,
#
-xterm-boldso|xterm with bold for standout (X Window System),
- rmso=\E[m,
- smso=\E[1m,
- use=xterm,
-#
# vi may work better with this entry, because vi
# doesn't use insert mode much
xterm-ic|xterm-vi|xterm with insert character instead of insert mode,
@@ -413,6 +456,7 @@
setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
use=xterm-xfree86,
+#
# OPT_PC_MODE should be settable with OSC, and the init for this
# should turn it off; then ncv could be 0
# this uses RGB values 0..255; terminfo(5) says they're terminal-dependant
Index: version.h
--- xterm-113+/version.h Sun Aug 22 14:20:13 1999
+++ xterm-114/version.h Wed Sep 15 20:51:01 1999
@@ -6,5 +6,5 @@
* XFree86 to which this version of xterm has been built. The number in
* parentheses is my patch number (T.Dickey).
*/
-#define XTERM_PATCH 113
+#define XTERM_PATCH 114
#define XFREE86_VERSION "XFree86 3.9.15b"
Index: xterm.h
--- xterm-113+/xterm.h Sun Aug 22 14:20:13 1999
+++ xterm-114/xterm.h Wed Sep 15 05:13:46 1999
@@ -108,7 +108,7 @@
#endif
#include <errno.h>
-#ifdef DECL_ERRNO
+#if defined(DECL_ERRNO) && !defined(errno)
extern int errno;
#endif
Index: xterm.log.html
--- xterm-113+/xterm.log.html Sun Aug 22 14:20:13 1999
+++ xterm-114/xterm.log.html Wed Sep 15 21:08:41 1999
@@ -41,6 +41,7 @@
xc/programs/Xserver/hw/xfree86).
<UL>
+<LI><A HREF="#xterm_114">Patch #114 - 1999/9/15 - XFree86 3.9.16</A>
<LI><A HREF="#xterm_113">Patch #113 - 1999/8/15 - XFree86 3.9.15b</A>
<LI><A HREF="#xterm_112">Patch #112 - 1999/7/17 - XFree86 3.9Pw</A>
<LI><A HREF="#xterm_111">Patch #111 - 1999/7/10 - XFree86 3.9Pw</A>
@@ -156,6 +157,44 @@
<LI><A HREF="#xterm_02">Patch #2 - 1996/1/7</A>
<LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
</UL>
+
+<H1><A NAME="xterm_114">Patch #114 - 1999/9/15 - XFree86 3.9.16</A></H1>
+<ul>
+
+ <li>add configure script checks for Athena headers and libraries under
+ /usr/contrib to work on HPUX (reported by several people:
+ David Nixon <djn@csc.liv.ac.uk>
+ Aryeh Koenigsberg <aryeh.koenigsberg@telrad.co.il>
+ Johannes Mähner <johanm@camline.com>
+ Andrew Gaylard <andrew.gaylard@bsw.co.za>).
+
+ <li>add check to configure script if xterm is installed setgid rather
+ than setuid, since wtmp and utmp may be installed with group-writable
+ permissions other than root (based on Debian bug report #7112 by Bo
+ Branten <bosse@ing.umu.se>).
+
+ <li>rewrote logic that removes data from termcap entry, e.g., for
+ titeInhibit, to make it less likely to remove the wrong data.
+
+ <li>correct logic which checks for missing characters used for line
+ drawing. The 0 character was tested unnecessarily, leading to
+ some inefficiency when rendering.
+
+ <li>change termcap capability which is used as input or output of
+ ptyInitialErase logic from <em>kD</em> to <em>kb</em>.
+ Christian Weisgerber <naddy@mips.rhein-neckar.de> pointed out
+ in effect that <em>kD</em> (in terminfo <em>kdch1</em>) should
+ correspond to the control sequence for <em>dch1</em>, which deletes
+ from the current position toward the right.
+
+ <li>check for failure to change ownership of the PTY device and warn
+ when xterm is running setuid'd to root. This was reported to happen
+ on the FreeBSD/NetBSD/OpenBSD systems as a result of the chflags()
+ call.
+
+ <li>add xterm-noapp terminfo entry to illustate a nominally
+ bash-compatible terminal description.
+</ul>
<H1><A NAME="xterm_113">Patch #113 - 1999/8/15 - XFree86 3.9.15b</A></H1>
Several fixes. The main one is a first draft of pulldown menus. It's not
Index: xterm.man
--- xterm-113+/xterm.man Sun Jul 18 16:29:08 1999
+++ xterm-114/xterm.man Wed Sep 15 20:41:17 1999
@@ -357,7 +357,7 @@
.TP 8
.B \+ie
Turn off the \fBptyInitialErase\fP resource, i.e.,
-set the stty erase value using the \fBkD\fP string from the termcap entry as
+set the stty erase value using the \fBkb\fP string from the termcap entry as
a reference, if available.
.TP 8
.B \-im
@@ -723,7 +723,7 @@
If ``true'', \fIxterm\fP will use the pseudo-terminal's sense of the stty erase
value.
If ``false'', \fIxterm\fP will set the stty erase value to match its own
-configuration, using the \fBkD\fP string from the termcap entry as
+configuration, using the \fBkb\fP string from the termcap entry as
a reference, if available.
In either case, the result is applied to the TERMCAP variable
which \fIxterm\fP sets.