xterm: Changes to 'upstream-unstable'
INSTALL | 7
Imakefile | 7
MANIFEST | 3
Makefile.in | 48
Tekproc.c | 4
XTerm.ad | 4
aclocal.m4 | 138 +-
button.c | 30
charproc.c | 151 +-
configure | 3004 ++++++++++++++++++++++++-----------------------
configure.in | 15
ctlseqs.ms | 19
ctlseqs.txt | 20
data.h | 6
df-install.in | 20
fontutils.c | 61
main.c | 59
menu.c | 272 +++-
menu.h | 16
misc.c | 52
os2main.c | 25
package/debian/changelog | 6
package/debian/control | 4
package/debian/rules | 9
package/xterm.spec | 26
print.c | 239 ++-
ptyx.h | 40
terminfo | 30
trace.c | 18
trace.h | 6
version.h | 4
vttests/dynamic.pl | 131 ++
xterm.h | 11
xterm.log.html | 102 +
xterm.man | 388 ++++--
xterm_io.h | 6
xtermcap.c | 10
xutf8.c | 24
38 files changed, 3047 insertions(+), 1968 deletions(-)
New commits:
commit 5d85c8906d416e1e4cb556d6313585b16b83b814
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Jul 23 13:34:19 2011 +0200
Imported Upstream version 271
diff --git a/INSTALL b/INSTALL
index 0cdf04a..028375a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,4 +1,4 @@
--- $XTermId: INSTALL,v 1.124 2011/04/22 09:30:55 tom Exp $
+-- $XTermId: INSTALL,v 1.125 2011/07/07 01:01:14 tom Exp $
-------------------------------------------------------------------------------
-- Copyright 1997-2010,2011 by Thomas E. Dickey
--
@@ -499,6 +499,11 @@ The options (in alphabetic order):
Look for, compile and link with the Xaw Plus widget library.
+ --with-app-class=XXX X resource class (default: XTerm)
+
+ Rename the X resource class, e.g., for packaging a development version
+ of xterm with different result names.
+
--with-app-defaults=DIR directory in which to install resource files (default: EPREFIX/lib/X11/app-defaults)
autoconf scripts assume that all of the files should be installed
diff --git a/Imakefile b/Imakefile
index 5bfaba7..f65c300 100644
--- a/Imakefile
+++ b/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XTermId: Imakefile,v 1.103 2011/02/19 13:09:15 tom Exp $
+XCOMM $XTermId: Imakefile,v 1.104 2011/07/02 00:48:49 tom Exp $
XCOMM
XCOMM Attention xterm porters
XCOMM
@@ -143,11 +143,14 @@ module.o: ; $(CC) -c defines $(CFLAGS) module.c
OSMINORVERSION = OSMinorVersion
#if defined(NTOArchitecture) || \
- defined(LinuxArchitecture) || \
defined(OpenBSDArchitecture) || \
defined(SGIArchitecture) || \
defined(SunArchitecture)
TERMCAPDEFINES=-DUSE_TERMINFO -DHAVE_TIGETSTR
+#elif defined(LinuxArchitecture)
+# if LinuxUsesNcurses
+TERMCAPDEFINES=-DUSE_TERMINFO -DHAVE_TIGETSTR
+# endif
#endif
#if !defined(OS2Architecture) && !defined(__GNU__)
diff --git a/MANIFEST b/MANIFEST
index 58226e8..757e8e0 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,4 +1,4 @@
-MANIFEST for xterm-270, version xterm-270
+MANIFEST for xterm-271, version xterm-271
--------------------------------------------------------------------------------
MANIFEST this file
256colres.h resource-definitions for 256-color mode
@@ -155,6 +155,7 @@ vttests/88colors2.pl sample script showing 88-colors
vttests/8colors.sh test-script to illustrate 8-colors
vttests/acolors.sh demonstrate changing the ANSI colors
vttests/doublechars.sh test script to demonstrate doublesize chars
+vttests/dynamic.pl demo for dynamic colors
vttests/dynamic.sh script to illustrate the dynamic colors control sequence
vttests/dynamic2.sh complete example of dynamic colors
vttests/fonts.sh script to demonstrate font-switching sequences
diff --git a/Makefile.in b/Makefile.in
index 69cc21d..e3b746c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-## $XTermId: Makefile.in,v 1.177 2011/04/22 08:51:33 tom Exp $
+## $XTermId: Makefile.in,v 1.181 2011/07/14 22:13:45 tom Exp $
# -----------------------------------------------------------------------------
# this file is part of xterm
#
@@ -89,7 +89,7 @@ ICONDIR = $(DESTDIR)$(icondir)
INSTALL_DIRS = $(BINDIR) $(APPSDIR) $(ICONDIR) $(MANDIR)
-CLASS = XTerm
+CLASS = @APP_CLASS@
EXTRAHDR = @EXTRAHDRS@
EXTRASRC = @EXTRASRCS@
EXTRAOBJ = @EXTRAOBJS@
@@ -192,6 +192,8 @@ install-full :: xterm$x resize$x $(BINDIR)
@NOT_SETUID@ $(INSTALL_PROGRAM) xterm$x $(BINDIR)/$(binary_xterm)
$(INSTALL_PROGRAM) -m 755 resize$x $(BINDIR)/$(binary_resize)
+EDIT_SCRIPT = sed -e s,=xterm,=\$$name, -e s,XTerm,$(CLASS),
+
install \
install-bin \
install-scripts \
@@ -199,23 +201,15 @@ install-full ::
@$(SHELL) -c "name=\"$(binary_xterm)\"; \
dest=\"$(binary_uxterm)\"; \
echo \"... installing $(BINDIR)/\$$dest\"; \
- if test \"\$$name\" != \"xterm\"; then \
- sed -e \"s,=xterm,=\$$name,\" $(srcdir)/uxterm >uxterm.tmp; \
- $(INSTALL_SCRIPT) -m 755 uxterm.tmp $(BINDIR)/\$$dest; \
- rm -f uxterm.tmp; \
- else \
- $(INSTALL_SCRIPT) -m 755 $(srcdir)/uxterm $(BINDIR)/\$$dest; \
- fi"
+ $(EDIT_SCRIPT) $(srcdir)/uxterm >uxterm.tmp; \
+ $(INSTALL_SCRIPT) -m 755 uxterm.tmp $(BINDIR)/\$$dest; \
+ rm -f uxterm.tmp"
@$(SHELL) -c "name=\"$(binary_xterm)\"; \
dest=\"$(binary_k8term)\"; \
echo \"... installing $(BINDIR)/\$$dest\"; \
- if test \"\$$name\" != \"xterm\"; then \
- sed -e \"s,=xterm,=\$$name,\" $(srcdir)/koi8rxterm >k8term.tmp; \
- $(INSTALL_SCRIPT) -m 755 k8term.tmp $(BINDIR)/\$$dest; \
- rm -f k8term.tmp; \
- else \
- $(INSTALL_SCRIPT) -m 755 $(srcdir)/koi8rxterm $(BINDIR)/\$$dest; \
- fi"
+ $(EDIT_SCRIPT) $(srcdir)/koi8rxterm >k8term.tmp; \
+ $(INSTALL_SCRIPT) -m 755 k8term.tmp $(BINDIR)/\$$dest; \
+ rm -f k8term.tmp"
@-$(SHELL) -c "name=\"$(binary_xterm)\"; \
if test @XTERM_SYMLINK@ != NONE ; then \
cd $(BINDIR) && ( \
@@ -258,10 +252,10 @@ APP_NAMES = XTerm UXTerm KOI8RXTerm
@no_icondir@install \
@no_icondir@install-icon \
@no_icondir@install-full :: $(ICONDIR)
-@no_icondir@ @$(INSTALL_DATA) $(srcdir)/icons/xterm-color_32x32.xpm $(ICONDIR)
-@no_icondir@ @$(INSTALL_DATA) $(srcdir)/icons/xterm-color_48x48.xpm $(ICONDIR)
-@no_icondir@ @$(INSTALL_DATA) $(srcdir)/icons/xterm_32x32.xpm $(ICONDIR)
-@no_icondir@ @$(INSTALL_DATA) $(srcdir)/icons/xterm_48x48.xpm $(ICONDIR)
+@no_icondir@ @$(INSTALL_DATA) $(srcdir)/icons/xterm-color_32x32.xpm $(ICONDIR)/$(actual_xterm)-color_32x32.xpm
+@no_icondir@ @$(INSTALL_DATA) $(srcdir)/icons/xterm-color_48x48.xpm $(ICONDIR)/$(actual_xterm)-color_48x48.xpm
+@no_icondir@ @$(INSTALL_DATA) $(srcdir)/icons/xterm_32x32.xpm $(ICONDIR)/$(actual_xterm)_32x32.xpm
+@no_icondir@ @$(INSTALL_DATA) $(srcdir)/icons/xterm_48x48.xpm $(ICONDIR)/$(actual_xterm)_48x48.xpm
@no_icondir@ @echo "... installed icons"
install ::
@@ -321,17 +315,17 @@ uninstall-full ::
@no_icondir@uninstall \
@no_icondir@uninstall-icon \
@no_icondir@uninstall-full ::
-@no_icondir@ -$(RM) $(ICONDIR)/xterm-color_32x32.xpm
-@no_icondir@ -$(RM) $(ICONDIR)/xterm_32x32.xpm
-@no_icondir@ -$(RM) $(ICONDIR)/xterm-color_48x48.xpm
-@no_icondir@ -$(RM) $(ICONDIR)/xterm_48x48.xpm
+@no_icondir@ -$(RM) $(ICONDIR)/$(actual_xterm)-color_32x32.xpm
+@no_icondir@ -$(RM) $(ICONDIR)/$(actual_xterm)_32x32.xpm
+@no_icondir@ -$(RM) $(ICONDIR)/$(actual_xterm)-color_48x48.xpm
+@no_icondir@ -$(RM) $(ICONDIR)/$(actual_xterm)_48x48.xpm
################################################################################
# Desktop-utils does not provide an uninstall, and is not uniformly available.
@desktop_utils@DESKTOP_FLAGS = @DESKTOP_FLAGS@
@desktop_utils@install-desktop \
@desktop_utils@install-full ::
-@desktop_utils@ $(SHELL) df-install $(DESKTOP_FLAGS) $(srcdir)/xterm.desktop
-@desktop_utils@ $(SHELL) df-install $(DESKTOP_FLAGS) $(srcdir)/uxterm.desktop
+@desktop_utils@ $(SHELL) df-install $(actual_xterm) $(DESKTOP_FLAGS) $(srcdir)/xterm.desktop
+@desktop_utils@ $(SHELL) df-install $(actual_xterm) $(DESKTOP_FLAGS) $(srcdir)/uxterm.desktop
################################################################################
mostlyclean :
-$(RM) *$o *.[is] XtermLog.* .pure core *~ *.bak *.BAK *.out *.tmp
@@ -341,7 +335,7 @@ clean : mostlyclean
distclean :: clean
-$(RM) Makefile config.status config.cache config.log xtermcfg.h
-@desktop_utils@ -$(RM) df-install
+ -$(RM) df-install
distclean \
docs-clean ::
diff --git a/Tekproc.c b/Tekproc.c
index 57eaa02..f07831e 100644
--- a/Tekproc.c
+++ b/Tekproc.c
@@ -1,4 +1,4 @@
-/* $XTermId: Tekproc.c,v 1.188 2011/02/20 00:55:33 tom Exp $ */
+/* $XTermId: Tekproc.c,v 1.189 2011/07/10 22:19:32 tom Exp $ */
/*
* Copyright 2001-2010,2011 by Thomas E. Dickey
@@ -1895,7 +1895,7 @@ TekCopy(TekWidget tw)
TScreen *screen = TScreenOf(xw);
TekLink *Tp;
- char buf[32];
+ char buf[TIMESTAMP_LEN + 10];
char initbuf[5];
int tekcopyfd;
diff --git a/XTerm.ad b/XTerm.ad
index 8d34dd0..b127798 100644
--- a/XTerm.ad
+++ b/XTerm.ad
@@ -1,4 +1,4 @@
-! $XTermId: XTerm.ad,v 1.96 2011/04/22 22:48:00 tom Exp $
+! $XTermId: XTerm.ad,v 1.97 2011/07/11 10:52:16 tom Exp $
! -----------------------------------------------------------------------------
! this file is part of xterm
!
@@ -48,6 +48,8 @@
*mainMenu*allowsends*Label: Allow SendEvents
*mainMenu*redraw*Label: Redraw Window
*mainMenu*logging*Label: Log to File
+*mainMenu*print-immediate*Label: Print-All Immediately
+*mainMenu*print-on-error*Label: Print-All on Error
*mainMenu*print*Label: Print Window
*mainMenu*print-redir*Label: Redirect to Printer
*mainMenu*8-bit control*Label: 8-Bit Controls
diff --git a/aclocal.m4 b/aclocal.m4
index 110642c..9f3625a 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-dnl $XTermId: aclocal.m4,v 1.301 2011/04/22 09:18:49 tom Exp $
+dnl $XTermId: aclocal.m4,v 1.309 2011/07/14 23:36:54 tom Exp $
dnl
dnl ---------------------------------------------------------------------------
dnl
@@ -58,6 +58,31 @@ AC_DEFUN([AM_LANGINFO_CODESET],
fi
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_ACVERSION_CHECK version: 2 updated: 2011/05/08 11:22:03
+dnl ------------------
+dnl Conditionally generate script according to whether we're using a given autoconf.
+dnl
+dnl $1 = version to compare against
+dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
+dnl $3 = code to use if AC_ACVERSION is older than $1.
+define(CF_ACVERSION_CHECK,
+[
+ifdef([m4_version_compare],
+[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
+[CF_ACVERSION_COMPARE(
+AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
+AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ACVERSION_COMPARE version: 2 updated: 2011/04/14 20:56:50
+dnl --------------------
+dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
+dnl MAJOR2, MINOR2, TERNARY2,
+dnl PRINTABLE2, not FOUND, FOUND)
+define(CF_ACVERSION_COMPARE,
+[ifelse(builtin([eval], [$2 < $5]), 1,
+[ifelse([$8], , ,[$8])],
+[ifelse([$9], , ,[$9])])])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
dnl -------------
dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
@@ -175,12 +200,33 @@ LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s,$1 ,$1 $2 ," -e 's/ / /
CF_VERBOSE(...after $LIBS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32
+dnl CF_ANSI_CC_CHECK version: 11 updated: 2011/07/01 19:47:45
dnl ----------------
-dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
-dnl in the sharutils 4.2 distribution.
+dnl This was originally adapted from the macros 'fp_PROG_CC_STDC' and
+dnl 'fp_C_PROTOTYPES' in the sharutils 4.2 distribution.
AC_DEFUN([CF_ANSI_CC_CHECK],
[
+# This should have been defined by AC_PROG_CC
+: ${CC:=cc}
+
+# Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
+# into CC. This will not help with broken scripts that wrap the compiler with
+# options, but eliminates a more common category of user confusion.
+AC_MSG_CHECKING(\$CC variable)
+case "$CC" in #(vi
+*[[\ \ ]]-[[IUD]]*)
+ AC_MSG_RESULT(broken)
+ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
+ # humor him...
+ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
+ CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
+ CF_ADD_CFLAGS($cf_flags)
+ ;;
+*)
+ AC_MSG_RESULT(ok)
+ ;;
+esac
+
AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
cf_cv_ansi_cc=no
cf_save_CFLAGS="$CFLAGS"
@@ -528,7 +574,7 @@ int main() {
fi
])])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_TGETENT version: 15 updated: 2010/06/04 20:54:56
+dnl CF_FUNC_TGETENT version: 17 updated: 2011/07/14 19:34:47
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
@@ -545,7 +591,17 @@ AC_DEFUN([CF_FUNC_TGETENT],
# necessarily in /etc/termcap - unsetenv is not portable, so we cannot simply
# discard $TERMCAP.
cf_TERMVAR=vt100
-test -n "$TERMCAP" && cf_TERMVAR="$TERM"
+if test -n "$TERMCAP"
+then
+ cf_TERMCAP=`echo "$TERMCAP" | tr '\n' ' ' | sed -e 's/^..|//' -e 's/|.*//'`
+ case "$cf_TERMCAP" in #(vi
+ screen*.*) #(vi
+ ;;
+ *)
+ cf_TERMVAR="$cf_TERMCAP"
+ ;;
+ esac
+fi
test -z "$cf_TERMVAR" && cf_TERMVAR=vt100
AC_MSG_CHECKING(if we want full tgetent function)
@@ -602,8 +658,8 @@ LIBS="$cf_save_LIBS"
# (LIBS cannot be set inside AC_CACHE_CHECK; the commands there should
# not have side effects other than setting the cache variable, because
# they are not executed when a cached value exists.)
-if test "$cf_cv_lib_tgetent" != no ; then
- test "$cf_cv_lib_tgetent" != yes && CF_ADD_LIBS($cf_cv_lib_tgetent)
+if test "x$cf_cv_lib_tgetent" != xno ; then
+ test "x$cf_cv_lib_tgetent" != xyes && CF_ADD_LIBS($cf_cv_lib_tgetent)
AC_DEFINE(USE_TERMCAP)
if test "$cf_full_tgetent" = no ; then
AC_TRY_COMPILE([
@@ -1163,7 +1219,7 @@ AC_TRY_COMPILE([
test $cf_cv_path_lastlog != no && AC_DEFINE(USE_LASTLOG)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LD_RPATH_OPT version: 3 updated: 2010/06/02 05:03:05
+dnl CF_LD_RPATH_OPT version: 4 updated: 2011/06/04 20:09:13
dnl ---------------
dnl For the given system and compiler, find the compiler flags to pass to the
dnl loader to use the "rpath" feature.
@@ -1184,7 +1240,7 @@ irix*) #(vi
linux*|gnu*|k*bsd*-gnu) #(vi
LD_RPATH_OPT="-Wl,-rpath,"
;;
-openbsd[[2-9]].*) #(vi
+openbsd[[2-9]].*|mirbsd*) #(vi
LD_RPATH_OPT="-Wl,-rpath,"
;;
freebsd*) #(vi
@@ -1386,7 +1442,7 @@ case ".[$]$1" in #(vi
esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_PKG_CONFIG version: 6 updated: 2011/04/17 06:36:21
+dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
dnl -------------
dnl Check for the package-config program, unless disabled by command-line.
AC_DEFUN([CF_PKG_CONFIG],
@@ -1403,7 +1459,9 @@ no) #(vi
PKG_CONFIG=none
;;
yes) #(vi
- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)
+ CF_ACVERSION_CHECK(2.52,
+ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
+ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
;;
*)
PKG_CONFIG=$withval
@@ -2341,6 +2399,19 @@ if test $cf_cv_type_fd_set = sys/select.h ; then
fi
])
dnl ---------------------------------------------------------------------------
+dnl CF_UNDO_CFLAGS version: 1 updated: 2011/07/02 09:27:51
+dnl --------------
+dnl Remove flags from $CFLAGS or similar shell variable using sed.
+dnl $1 = variable
+dnl $2 = message
+dnl $3 = pattern to remove
+AC_DEFUN([CF_UNDO_CFLAGS],
+[
+ CF_VERBOSE(removing $2 flags from $1)
+ $1=`echo "[$]$1" | sed -e 's/$3//'`
+ CF_VERBOSE(...result [$]$1)
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
dnl --------
dnl Make an uppercase version of a variable
@@ -2642,6 +2713,37 @@ AC_DEFUN([CF_VERBOSE],
CF_MSG_LOG([$1])
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_WITH_APP_CLASS version: 1 updated: 2011/07/08 04:54:40
+dnl -----------------
+dnl Handle configure option "--with-app-class", setting the $APP_CLASS
+dnl variable, used for X resources.
+dnl
+dnl $1 = default value.
+AC_DEFUN(CF_WITH_APP_CLASS,[
+AC_MSG_CHECKING(for X applications class)
+AC_ARG_WITH(app-class,
+ [ --with-app-class=XXX override X applications class (default $1)],
+ [APP_CLASS=$withval],
+ [APP_CLASS=$1])
+
+case x$APP_CLASS in #(vi
+*[[/@,%]]*) #(vi
+ AC_MSG_WARN(X applications class cannot contain punctuation)
+ APP_CLASS=$1
+ ;;
+x[[A-Z]]*) #(vi
+ ;;
+*)
+ AC_MSG_WARN([X applications class must start with capital, ignoring $APP_CLASS])
+ APP_CLASS=$1
+ ;;
+esac
+
+AC_MSG_RESULT($APP_CLASS)
+
+AC_SUBST(APP_CLASS)
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_WITH_APP_DEFAULTS version: 1 updated: 2011/04/21 18:12:37
dnl --------------------
dnl Handle configure option "--with-app-defaults", setting these shell
@@ -2662,7 +2764,7 @@ test "$appsdir" = no && no_appsdir="#"
AC_SUBST(no_appsdir)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DESKTOP_CATEGORY version: 1 updated: 2011/04/22 05:17:37
+dnl CF_WITH_DESKTOP_CATEGORY version: 2 updated: 2011/07/02 10:22:07
dnl ------------------------
dnl Taking into account the absence of standardization of desktop categories
dnl take a look to see whether other applications on the current system are
@@ -2724,7 +2826,7 @@ then
read cf_desktop_this
test -z "$cf_desktop_this" && break
case $cf_desktop_this in #(vi
- Qt|GTK|KDE|GNOME) #(vi
+ Qt*|GTK*|KDE*|GNOME*|*XFCE*|*Xfce*) #(vi
;;
$3)
test "x$cf_desktop_last" != "x$cf_desktop_this" && echo $cf_desktop_this >>conftest.2
@@ -2916,7 +3018,7 @@ AC_TRY_LINK([
test "$cf_cv_xkb_bell_ext" = yes && AC_DEFINE(HAVE_XKB_BELL_EXT)
])
dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37
+dnl CF_XOPEN_SOURCE version: 36 updated: 2011/07/02 15:36:04
dnl ---------------
dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
dnl or adapt to the vendor's definitions to get equivalent functionality,
@@ -2932,7 +3034,7 @@ cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
cf_xopen_source=
case $host_os in #(vi
-aix[[456]]*) #(vi
+aix[[4-7]]*) #(vi
cf_xopen_source="-D_ALL_SOURCE"
;;
cygwin) #(vi
@@ -3223,13 +3325,14 @@ CF_TRY_PKG_CONFIG(Xext,,[
[CF_ADD_LIB(Xext)])])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_X_FONTCONFIG version: 3 updated: 2010/11/09 05:18:02
+dnl CF_X_FONTCONFIG version: 4 updated: 2011/07/04 10:01:31
dnl ---------------
dnl Check for fontconfig library, a dependency of the X FreeType library.
AC_DEFUN([CF_X_FONTCONFIG],
[
AC_REQUIRE([CF_X_FREETYPE])
+if test "$cf_cv_found_freetype" = yes ; then
AC_CACHE_CHECK(for usable Xft/fontconfig package,cf_cv_xft_compat,[
AC_TRY_LINK([
#include <X11/Xft/Xft.h>
@@ -3253,6 +3356,7 @@ then
;;
esac
fi
+fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_X_FREETYPE version: 23 updated: 2010/11/08 20:19:21
diff --git a/button.c b/button.c
index d29be18..2c2df45 100644
--- a/button.c
+++ b/button.c
@@ -1,4 +1,4 @@
-/* $XTermId: button.c,v 1.397 2011/02/13 20:09:31 tom Exp $ */
+/* $XTermId: button.c,v 1.398 2011/07/04 21:49:39 tom Exp $ */
/*
* Copyright 1999-2010,2011 by Thomas E. Dickey
@@ -1407,13 +1407,15 @@ allocUtf8Targets(Widget w, TScreen * screen)
} else {
int n = 0;
- result[n++] = XA_UTF8_STRING(XtDisplay(w));
+ if (XSupportsLocale()) {
+ result[n++] = XA_UTF8_STRING(XtDisplay(w));
#ifdef X_HAVE_UTF8_STRING
- if (screen->i18nSelections) {
- result[n++] = XA_TEXT(XtDisplay(w));
- result[n++] = XA_COMPOUND_TEXT(XtDisplay(w));
- }
+ if (screen->i18nSelections) {
+ result[n++] = XA_TEXT(XtDisplay(w));
+ result[n++] = XA_COMPOUND_TEXT(XtDisplay(w));
+ }
#endif
+ }
result[n++] = XA_STRING;
result[n] = None;
}
@@ -1441,12 +1443,14 @@ alloc8bitTargets(Widget w, TScreen * screen)
} else {
int n = 0;
+ if (XSupportsLocale()) {
#ifdef X_HAVE_UTF8_STRING
- result[n++] = XA_UTF8_STRING(XtDisplay(w));
+ result[n++] = XA_UTF8_STRING(XtDisplay(w));
#endif
- if (screen->i18nSelections) {
- result[n++] = XA_TEXT(XtDisplay(w));
- result[n++] = XA_COMPOUND_TEXT(XtDisplay(w));
+ if (screen->i18nSelections) {
+ result[n++] = XA_TEXT(XtDisplay(w));
+ result[n++] = XA_COMPOUND_TEXT(XtDisplay(w));
+ }
}
result[n++] = XA_STRING;
result[n] = None;
@@ -1931,7 +1935,7 @@ SelectionReceived(Widget w,
text_prop.nitems));
#if OPT_WIDE_CHARS
- if (screen->wide_chars) {
+ if (XSupportsLocale() && screen->wide_chars) {
if (*type == XA_UTF8_STRING(dpy) ||
*type == XA_STRING ||
*type == XA_COMPOUND_TEXT(dpy)) {
@@ -1939,7 +1943,7 @@ SelectionReceived(Widget w,
if (Xutf8TextPropertyToTextList(dpy, &text_prop,
&text_list,
&text_list_count) < 0) {
- TRACE(("Conversion failed\n"));
+ TRACE(("default Xutf8 Conversion failed\n"));
text_list = NULL;
}
}
@@ -1962,7 +1966,7 @@ SelectionReceived(Widget w,
&text_list, &text_list_count);
} else
#endif
- if (*type == XA_STRING && screen->brokenSelections) {
+ if (*type == XA_STRING && (!XSupportsLocale() || screen->brokenSelections)) {
rc = XTextPropertyToStringList(&text_prop,
&text_list, &text_list_count);
} else {
diff --git a/charproc.c b/charproc.c
index 5e0cb2f..ac780d3 100644
--- a/charproc.c
+++ b/charproc.c
@@ -1,4 +1,4 @@
-/* $XTermId: charproc.c,v 1.1121 2011/04/24 22:57:13 tom Exp $ */
+/* $XTermId: charproc.c,v 1.1126 2011/07/10 23:19:26 tom Exp $ */
/*
* Copyright 1999-2010,2011 by Thomas E. Dickey
@@ -138,6 +138,9 @@ typedef void (*BitFunc) (unsigned * /* p */ ,
static IChar doinput(void);
static int set_character_class(char * /*s */ );
static void FromAlternate(XtermWidget /* xw */ );
+static void ReallyReset(XtermWidget /* xw */ ,
+ Bool /* full */ ,
+ Bool /* saved */ );
static void RequestResize(XtermWidget /* xw */ ,
int /* rows */ ,
int /* cols */ ,
@@ -364,6 +367,8 @@ static XtActionsRec actionsList[] = {
};
/* *INDENT-ON* */
+#define SPS screen.printer_state
+
static XtResource xterm_resources[] =
{
Bres(XtNallowSendEvents, XtCAllowSendEvents, screen.allowSendEvent0, False),
@@ -411,10 +416,10 @@ static XtResource xterm_resources[] =
Bres(XtNmultiScroll, XtCMultiScroll, screen.multiscroll, False),
Bres(XtNoldXtermFKeys, XtCOldXtermFKeys, screen.old_fkeys, False),
Bres(XtNpopOnBell, XtCPopOnBell, screen.poponbell, False),
- Bres(XtNprinterAutoClose, XtCPrinterAutoClose, screen.printer_autoclose, False),
- Bres(XtNprinterExtent, XtCPrinterExtent, screen.printer_extent, False),
- Bres(XtNprinterFormFeed, XtCPrinterFormFeed, screen.printer_formfeed, False),
- Bres(XtNprinterNewLine, XtCPrinterNewLine, screen.printer_newline, True),
+ Bres(XtNprinterAutoClose, XtCPrinterAutoClose, SPS.printer_autoclose, False),
+ Bres(XtNprinterExtent, XtCPrinterExtent, SPS.printer_extent, False),
+ Bres(XtNprinterFormFeed, XtCPrinterFormFeed, SPS.printer_formfeed, False),
+ Bres(XtNprinterNewLine, XtCPrinterNewLine, SPS.printer_newline, True),
Bres(XtNquietGrab, XtCQuietGrab, screen.quiet_grab, False),
Bres(XtNreverseVideo, XtCReverseVideo, misc.re_verse, False),
Bres(XtNreverseWrap, XtCReverseWrap, misc.reverseWrap, False),
@@ -438,7 +443,7 @@ static XtResource xterm_resources[] =
Ires(XtNnMarginBell, XtCColumn, screen.nmarginbell, N_MARGINBELL),
Ires(XtNpointerMode, XtCPointerMode, screen.pointer_mode, DEF_POINTER_MODE),
Ires(XtNprinterControlMode, XtCPrinterControlMode,
- screen.printer_controlmode, 0),
+ SPS.printer_controlmode, 0),
Ires(XtNtitleModes, XtCTitleModes, screen.title_modes, DEF_TITLE_MODES),
Ires(XtNvisualBellDelay, XtCVisualBellDelay, screen.visualBellDelay, 100),
Ires(XtNsaveLines, XtCSaveLines, screen.savelines, SAVELINES),
@@ -471,7 +476,7 @@ static XtResource xterm_resources[] =
Sres(XtNfont, XtCFont, misc.default_font.f_n, DEFFONT),
Sres(XtNgeometry, XtCGeometry, misc.geo_metry, NULL),
Sres(XtNkeyboardDialect, XtCKeyboardDialect, screen.keyboard_dialect, DFT_KBD_DIALECT),
- Sres(XtNprinterCommand, XtCPrinterCommand, screen.printer_command, ""),
+ Sres(XtNprinterCommand, XtCPrinterCommand, SPS.printer_command, ""),
Sres(XtNtekGeometry, XtCGeometry, misc.T_geometry, NULL),
Tres(XtNcursorColor, XtCCursorColor, TEXT_CURSOR, XtDefaultForeground),
@@ -526,7 +531,7 @@ static XtResource xterm_resources[] =
#endif
#if OPT_BROKEN_ST
- Bres(XtNbrokenStringTerm, XtCBrokenStringTerm, screen.brokenStringTerm, True),
+ Bres(XtNbrokenStringTerm, XtCBrokenStringTerm, screen.brokenStringTerm, False),
#endif
#if OPT_C1_PRINT
@@ -626,7 +631,7 @@ static XtResource xterm_resources[] =
#endif
#if OPT_PRINT_COLORS
- Ires(XtNprintAttributes, XtCPrintAttributes, screen.print_attributes, 1),
+ Ires(XtNprintAttributes, XtCPrintAttributes, SPS.print_attributes, 1),
#endif
#if OPT_SHIFT_FONTS
@@ -1324,6 +1329,20 @@ illegal_parse(XtermWidget xw, unsigned c, struct ParseState *sp)
Bell(xw, XkbBI_MinorError, 0);
}
+static void
+init_parser(XtermWidget xw, struct ParseState *sp)
+{
+ TScreen *screen = TScreenOf(xw);
+
+ memset(sp, 0, sizeof(*sp));
+ sp->scssize = 94; /* number of printable/nonspace ASCII */
+ sp->lastchar = -1; /* not a legal IChar */
+ sp->nextstate = -1; /* not a legal state */
+
+ init_groundtable(screen, sp);
+ ResetState(sp);
+}
+
static Boolean
doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
{
@@ -1384,7 +1403,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
#endif
/* Intercept characters for printer controller mode */
- if (screen->printer_controlmode == 2) {
+ if (PrinterOf(screen).printer_controlmode == 2) {
if ((c = (unsigned) xtermPrinterControl(xw, (int) c)) == 0)
continue;
}
@@ -2621,7 +2640,8 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
* reset (RIS). VT220 manual states that it is a soft reset.
* Perhaps both are right (unlikely). Kermit says it's soft.
*/
- VTReset(xw, False, False);
+ ReallyReset(xw, False, False);
+ init_parser(xw, sp);
screen->vtXX_level = param[0] - 60;
if (param[0] > 61) {
switch (zero_if_default(1)) {
@@ -3256,18 +3276,9 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
static void
VTparse(XtermWidget xw)
{
- TScreen *screen;
-
/* We longjmp back to this point in VTReset() */
(void) setjmp(vtjmpbuf);
- screen = TScreenOf(xw);
- memset(&myState, 0, sizeof(myState));
- myState.scssize = 94; /* number of printable/nonspace ASCII */
- myState.lastchar = -1; /* not a legal IChar */
- myState.nextstate = -1; /* not a legal state */
-
- init_groundtable(screen, &myState);
- myState.parsestate = myState.groundtable;
+ init_parser(xw, &myState);
do {
} while (doparsing(xw, doinput(), &myState));
@@ -3446,6 +3457,28 @@ v_write(int f, const Char * data, unsigned len)
}
}
+static void
+updateCursor(TScreen * screen)
+{
+ if (screen->cursor_set != screen->cursor_state) {
+ if (screen->cursor_set)
+ ShowCursor();
+ else
+ HideCursor();
+ }
+}
+
+static void
+reallyStopBlinking(TScreen * screen)
+{
+ if (screen->cursor_state == BLINKED_OFF) {
+ /* force cursor to display if it is enabled */
+ screen->cursor_state = !screen->cursor_set;
+ updateCursor(screen);
+ xevents();
+ }
+}
+
#ifdef VMS
#define ptymask() (v_bufptr > v_bufstr ? pty_mask : 0)
@@ -3509,11 +3542,8 @@ in_put(XtermWidget xw)
#if OPT_INPUT_METHOD
PreeditPosition(screen);
#endif
- } else if (screen->cursor_set != screen->cursor_state) {
- if (screen->cursor_set)
- ShowCursor();
- else
- HideCursor();
+ } else {
+ updateCursor(screen);
}
if (QLength(screen->display)) {
@@ -3613,11 +3643,8 @@ in_put(XtermWidget xw)
#if OPT_INPUT_METHOD
PreeditPosition(screen);
#endif
- } else if (screen->cursor_set != screen->cursor_state) {
- if (screen->cursor_set)
- ShowCursor();
- else
- HideCursor();
+ } else {
+ updateCursor(screen);
}
XFlush(screen->display); /* always flush writes before waiting */
@@ -4020,7 +4047,9 @@ SetCursorBlink(TScreen * screen, Bool enable)
StartBlinking(screen);
} else {
/* EMPTY */
-#if !OPT_BLINK_TEXT
+#if OPT_BLINK_TEXT
+ reallyStopBlinking(screen);
+#else
StopBlinking(screen);
#endif
}
@@ -4191,10 +4220,10 @@ dpmodes(XtermWidget xw, BitFunc func)
break;
#endif
case 18: /* DECPFF: print form feed */
- set_bool_mode(screen->printer_formfeed);
+ set_bool_mode(PrinterOf(screen).printer_formfeed);
break;
case 19: /* DECPEX: print extent */
- set_bool_mode(screen->printer_extent);
+ set_bool_mode(PrinterOf(screen).printer_extent);
break;
case 25: /* DECTCEM: Show/hide cursor (VT200) */
set_bool_mode(screen->cursor_set);
@@ -4485,10 +4514,10 @@ savemodes(XtermWidget xw)
break;
#endif
case 18: /* DECPFF: print form feed */
- DoSM(DP_PRN_FORMFEED, screen->printer_formfeed);
+ DoSM(DP_PRN_FORMFEED, PrinterOf(screen).printer_formfeed);
break;
case 19: /* DECPEX: print extent */
- DoSM(DP_PRN_EXTENT, screen->printer_extent);
+ DoSM(DP_PRN_EXTENT, PrinterOf(screen).printer_extent);
break;
case 25: /* DECTCEM: Show/hide cursor (VT200) */
DoSM(DP_CRS_VISIBLE, screen->cursor_set);
@@ -4638,10 +4667,10 @@ restoremodes(XtermWidget xw)
break;
#endif
case 18: /* DECPFF: print form feed */
- DoRM(DP_PRN_FORMFEED, screen->printer_formfeed);
+ DoRM(DP_PRN_FORMFEED, PrinterOf(screen).printer_formfeed);
break;
case 19: /* DECPEX: print extent */
- DoRM(DP_PRN_EXTENT, screen->printer_extent);
+ DoRM(DP_PRN_EXTENT, PrinterOf(screen).printer_extent);
break;
case 25: /* DECTCEM: Show/hide cursor (VT200) */
DoRM(DP_CRS_VISIBLE, screen->cursor_set);
@@ -6084,14 +6113,20 @@ VTInitialize(Widget wrequest,
wnew->dft_foreground = MyBlackPixel(TScreenOf(wnew)->display);
wnew->dft_background = MyWhitePixel(TScreenOf(wnew)->display);
}
+
init_Tres(TEXT_FG);
init_Tres(TEXT_BG);
+ wnew->old_foreground = T_COLOR(TScreenOf(wnew), TEXT_FG);
+ wnew->old_background = T_COLOR(TScreenOf(wnew), TEXT_BG);
+
TRACE(("Color resource initialization:\n"));
- TRACE((" Default foreground %#lx\n", wnew->dft_foreground));
- TRACE((" Default background %#lx\n", wnew->dft_background));
- TRACE((" Screen foreground %#lx\n", T_COLOR(TScreenOf(wnew), TEXT_FG)));
- TRACE((" Screen background %#lx\n", T_COLOR(TScreenOf(wnew), TEXT_BG)));
+ TRACE((" Default foreground 0x%06lx\n", wnew->dft_foreground));
+ TRACE((" Default background 0x%06lx\n", wnew->dft_background));
+ TRACE((" Screen foreground 0x%06lx\n", T_COLOR(TScreenOf(wnew), TEXT_FG)));
+ TRACE((" Screen background 0x%06lx\n", T_COLOR(TScreenOf(wnew), TEXT_BG)));
+ TRACE((" Actual foreground 0x%06lx\n", wnew->old_foreground));
+ TRACE((" Actual background 0x%06lx\n", wnew->old_background));
TScreenOf(wnew)->mouse_button = -1;
TScreenOf(wnew)->mouse_row = -1;
@@ -6231,14 +6266,14 @@ VTInitialize(Widget wrequest,
init_Sres(screen.answer_back);
- init_Sres(screen.printer_command);
- init_Bres(screen.printer_autoclose);
- init_Bres(screen.printer_extent);
- init_Bres(screen.printer_formfeed);
- init_Bres(screen.printer_newline);
- init_Ires(screen.printer_controlmode);
+ init_Sres(SPS.printer_command);
+ init_Bres(SPS.printer_autoclose);
+ init_Bres(SPS.printer_extent);
+ init_Bres(SPS.printer_formfeed);
+ init_Bres(SPS.printer_newline);
+ init_Ires(SPS.printer_controlmode);
#if OPT_PRINT_COLORS
- init_Ires(screen.print_attributes);
+ init_Ires(SPS.print_attributes);
#endif
init_Sres(screen.keyboard_dialect);
@@ -8135,9 +8170,13 @@ StartBlinking(TScreen * screen)
static void
StopBlinking(TScreen * screen)
{
- if (screen->blink_timer)
+ if (screen->blink_timer) {
XtRemoveTimeOut(screen->blink_timer);
- screen->blink_timer = 0;
+ screen->blink_timer = 0;
+ reallyStopBlinking(screen);
+ } else {
+ screen->blink_timer = 0;
+ }
}
#if OPT_BLINK_TEXT
@@ -8282,8 +8321,8 @@ RestartBlinking(TScreen * screen GCC_UNUSED)
* + the popup menu offers a choice of resetting the savedLines, or not.
* (but the control sequence does this anyway).
*/
-void
-VTReset(XtermWidget xw, Bool full, Bool saved)
+static void
+ReallyReset(XtermWidget xw, Bool full, Bool saved)
{
static char empty[1];
@@ -8414,6 +8453,12 @@ VTReset(XtermWidget xw, Bool full, Bool saved)
screen->sc[screen->whichBuf].row =
screen->sc[screen->whichBuf].col = 0;
}
+}
+
+void
+VTReset(XtermWidget xw, Bool full, Bool saved)
+{
+ ReallyReset(xw, full, saved);
longjmp(vtjmpbuf, 1); /* force ground state in parser */
}
diff --git a/configure b/configure
index 2219c01..b2ce8e4 100755
--- a/configure
+++ b/configure
@@ -683,6 +683,7 @@ Optional Packages:
Compile/Install Options:
--disable-full-tgetent disable check for full tgetent function
+ --with-app-class=XXX override X applications class (default XTerm)
--with-app-defaults=DIR directory in which to install resource files (default: EPREFIX/lib/X11/app-defaults)
--with-icondir=DIR directory in which to install icons (default: EPREFIX/share/pixmaps)
--disable-desktop disable install of xterm desktop files
@@ -959,7 +960,7 @@ if test -z "$CONFIG_SITE"; then
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
- { echo "$as_me:962: loading site script $ac_site_file" >&5
+ { echo "$as_me:963: loading site script $ac_site_file" >&5
echo "$as_me: loading site script $ac_site_file" >&6;}
cat "$ac_site_file" >&5
. "$ac_site_file"
@@ -970,7 +971,7 @@ if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special
# files actually), so we avoid doing that.
if test -f "$cache_file"; then
- { echo "$as_me:973: loading cache $cache_file" >&5
+ { echo "$as_me:974: loading cache $cache_file" >&5
echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . $cache_file;;
@@ -978,7 +979,7 @@ echo "$as_me: loading cache $cache_file" >&6;}
esac
fi
else
- { echo "$as_me:981: creating cache $cache_file" >&5
+ { echo "$as_me:982: creating cache $cache_file" >&5
echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
@@ -994,21 +995,21 @@ for ac_var in `(set) 2>&1 |
eval ac_new_val="\$ac_env_${ac_var}_value"
case $ac_old_set,$ac_new_set in
set,)
- { echo "$as_me:997: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ { echo "$as_me:998: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { echo "$as_me:1001: error: \`$ac_var' was not set in the previous run" >&5
+ { echo "$as_me:1002: error: \`$ac_var' was not set in the previous run" >&5
echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:1007: error: \`$ac_var' has changed since the previous run:" >&5
+ { echo "$as_me:1008: error: \`$ac_var' has changed since the previous run:" >&5
echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
Reply to: