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 debian/changelog | 11 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 39 files changed, 3058 insertions(+), 1968 deletions(-)
New commits: commit d8c08825d83e07dc45d0994507013fddb1fcadb6 Author: Julien Cristau <jcris...@debian.org> Date: Sat Jul 23 13:39:33 2011 +0200 Bump changelog diff --git a/debian/changelog b/debian/changelog index 1bd7d55..c984e60 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +xterm (271-1) UNRELEASED; urgency=low + + * New upstream release + - amend change for Debian #110226 so that "-h" or "-v" options cause an + exit, rather than simply printing to stdout while the window is + displayed (closes: #629358) + - handle special-case of KeyPress translated to popup-menu action + (LP: #756273) + + -- Julien Cristau <jcris...@debian.org> Sat, 23 Jul 2011 13:35:06 +0200 + xterm (270-1) unstable; urgency=low * New upstream release: commit 5d85c8906d416e1e4cb556d6313585b16b83b814 Author: Julien Cristau <jcris...@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;} -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1qkayj-0000ka...@vasks.debian.org