INSTALL | 24 MANIFEST | 2 Tekproc.c | 192 +++-- VTPrsTbl.c | 4 VTparse.def | 4 VTparse.h | 4 XTerm.ad | 8 aclocal.m4 | 42 - charproc.c | 385 +++++++---- configure | 1244 ++++++++++++++++++++------------------ configure.in | 19 ctlseqs.ms | 10 ctlseqs.txt | 4 debian/changelog | 14 debian/patches/902_windowops.diff | 2 doublechr.c | 4 fontutils.c | 22 fontutils.h | 4 input.c | 8 main.c | 21 main.h | 10 menu.c | 140 ++-- misc.c | 85 +- os2main.c | 17 plink.sh | 6 print.c | 4 ptydata.c | 17 ptyx.h | 24 screen.c | 9 scrollbar.c | 14 trace.c | 4 trace.h | 4 util.c | 4 uxterm.desktop | 4 version.h | 4 vms.c | 4 xterm.desktop | 4 xterm.h | 20 xterm.log.html | 47 + xterm.man | 127 +++ xtermcap.c | 6 41 files changed, 1520 insertions(+), 1051 deletions(-)
New commits: commit 43798791b4903e496e1e8960c999437d9308f061 Author: Julien Cristau <jcris...@debian.org> Date: Wed Jun 23 15:55:43 2010 +0100 Refresh 902_windowops.diff diff --git a/debian/patches/902_windowops.diff b/debian/patches/902_windowops.diff index 52ff570..0681ce6 100644 --- a/debian/patches/902_windowops.diff +++ b/debian/patches/902_windowops.diff @@ -2,7 +2,7 @@ Index: xterm/xterm.man =================================================================== --- xterm.orig/xterm.man +++ xterm/xterm.man -@@ -2115,8 +2115,9 @@ +@@ -2165,8 +2165,9 @@ from \fIdtterm\fP the operation number). The default value is .RS commit 61b946f36774bef658a11f69ae5e6a07aeb3f948 Author: Julien Cristau <jcris...@debian.org> Date: Wed Jun 23 15:21:54 2010 +0100 Bump changelog diff --git a/debian/changelog b/debian/changelog index 04b950f..1196b20 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,17 @@ +xterm (260-1) UNRELEASED; urgency=low + + * New upstream release + + extend renderFont resource to allow deferred switch to TrueType fonts + without affecting existing resource settings (closes: #585620) + + change configure script default for --enable-broken-st (i.e., the + brokenStringTerm feature) to normally enable it. If the corresponding + resource is enabled, this feature eliminates an apparent freeze of xterm + when sending mis-encoded data to the screen (closes: #584801) + + undo a change to limit-check in ScrnRefresh in patch #257, which broke + fastScroll feature (closes: #584841) + + -- Julien Cristau <jcris...@debian.org> Wed, 23 Jun 2010 15:19:03 +0100 + xterm (259-1) unstable; urgency=low * README.Debian: drop obsolete content, including a link to the old Debian X commit 17deb5faec7299f1fe7d849319dfe64f9a1ed05e Author: Julien Cristau <jcris...@debian.org> Date: Wed Jun 23 15:18:55 2010 +0100 Imported Upstream version 260 diff --git a/INSTALL b/INSTALL index d2afa33..4f1cd8c 100644 --- a/INSTALL +++ b/INSTALL @@ -1,4 +1,4 @@ --- $XTermId: INSTALL,v 1.122 2010/04/14 10:56:29 tom Exp $ +-- $XTermId: INSTALL,v 1.123 2010/06/14 08:57:22 tom Exp $ ------------------------------------------------------------------------------- -- Copyright 1997-2009,2010 by Thomas E. Dickey -- @@ -105,6 +105,19 @@ The options (in alphabetic order): e.g., to make boxes. When xterm loads a font, it checks if those characters are present, and draws its own if they are missing. + --disable-broken-st disallow broken string-terminators], + + Do not compile-in code that works around a bug in some ISDN routers + (and possibly other applications written by the same people): they + send an unterminated control string in their banner text, making xterm + freeze. + + The workaround tells xterm to stop processing the control string when + it receives one of the whitespace control characters such as newline. + That was the behavior before patch #171. + + See also --enable-broken-osc + --disable-c1-print disallow -k8 option for printable 128-159], Use this option to suppress support for nonstandard use of codes @@ -344,15 +357,6 @@ The options (in alphabetic order): appear to freeze. This workaround makes xterm ignore the strings, and is compiled-in by default for Linux. - --enable-broken-st allow broken string-terminators], - - Compile-in code that works around a bug in some ISDN routers (and - possibly other applications written by the same people): they send an - unterminated control string in their banner text, making xterm freeze. - The workaround tells xterm to stop processing the control string when - it receives one of the whitespace control characters such as newline. - That was the behavior before patch #171. - --enable-dabbrev enable dynamic-abbreviation support Compile-in support for "dabbrev-expand()" action and related key diff --git a/MANIFEST b/MANIFEST index f56b8fd..e956b9a 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,4 +1,4 @@ -MANIFEST for xterm-259, version xterm-259 +MANIFEST for xterm-260, version xterm-260 -------------------------------------------------------------------------------- MANIFEST this file 256colres.h resource-definitions for 256-color mode diff --git a/Tekproc.c b/Tekproc.c index f12aa5c..920d1c3 100644 --- a/Tekproc.c +++ b/Tekproc.c @@ -1,61 +1,57 @@ -/* $XTermId: Tekproc.c,v 1.178 2010/06/04 09:39:15 tom Exp $ */ +/* $XTermId: Tekproc.c,v 1.182 2010/06/20 21:34:37 tom Exp $ */ /* - * Warning, there be crufty dragons here. - */ - -/* - -Copyright 2001-2008,2009 by Thomas E. Dickey - - All Rights Reserved - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name(s) of the above copyright -holders shall not be used in advertising or otherwise to promote the -sale, use or other dealings in this Software without prior written -authorization. - -Copyright 1988 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - + * + * Copyright 2001-2009,2010 by Thomas E. Dickey + * + * All Rights Reserved + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name(s) of the above copyright + * holders shall not be used in advertising or otherwise to promote the + * sale, use or other dealings in this Software without prior written + * authorization. + * + * Copyright 1988 The Open Group + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of The Open Group shall not be + * used in advertising or otherwise to promote the sale, use or other dealings + * in this Software without prior written authorization from The Open Group. + * * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. * * All Rights Reserved @@ -103,6 +99,7 @@ in this Software without prior written authorization from The Open Group. #endif /* OPT_TOOLBAR */ +#include <assert.h> #include <stdio.h> #include <ctype.h> #include <signal.h> @@ -413,7 +410,8 @@ TekPtyData(void) static void Tekparse(TekWidget tw) { - TScreen *screen = TScreenOf(term); + XtermWidget xw = term; + TScreen *screen = TScreenOf(xw); TekScreen *tekscr = TekScreenOf(tw); int x, y; IChar c = 0; @@ -457,7 +455,7 @@ Tekparse(TekWidget tw) TRACE(("case: special return to vt102 mode\n")); Tparsestate = curstate; TekRecord->ptr[-1] = ANSI_NAK; /* remove from recording */ - FlushLog(TScreenOf(term)); + FlushLog(xw); return; case CASE_SPT_STATE: @@ -486,7 +484,7 @@ Tekparse(TekWidget tw) if (tekscr->TekGIN) TekGINoff(tw); if (!tekRefreshList) - Bell(XkbBI_TerminalBell, 0); + Bell(xw, XkbBI_TerminalBell, 0); Tparsestate = curstate; /* clear bypass condition */ break; @@ -763,7 +761,7 @@ Tekparse(TekWidget tw) buf2[len] = 0; if (!nested++) { if (c2 == ANSI_BEL) - do_osc(term, buf2, len, ANSI_BEL); + do_osc(xw, buf2, len, ANSI_BEL); } --nested; } @@ -780,8 +778,9 @@ static PtySelect Tselect_mask; static IChar Tinput(TekWidget tw) { + XtermWidget xw = term; TekScreen *tekscr = TekScreenOf(tw); - TScreen *screen = TScreenOf(term); + TScreen *screen = TScreenOf(xw); TekLink *tek; if (Tpushback > Tpushb) @@ -819,7 +818,7 @@ Tinput(TekWidget tw) &Tselect_mask, NULL, NULL, &crocktimeout); #endif - if (readPtyData(screen, &Tselect_mask, VTbuffer)) { + if (readPtyData(xw, &Tselect_mask, VTbuffer)) { break; } if (Ttoggled && curstate == Talptable) { @@ -899,8 +898,9 @@ TekConfigure(Widget w) { TekWidget tw = getTekWidget(w); if (tw != 0) { + XtermWidget xw = term; TekScreen *tekscr = TekScreenOf(tw); - TScreen *screen = TScreenOf(term); + TScreen *screen = TScreenOf(xw); int border = 2 * screen->border; double d; @@ -960,8 +960,9 @@ void TekRefresh(TekWidget tw) { if (tw != 0) { + XtermWidget xw = term; + TScreen *screen = TScreenOf(xw); TekScreen *tekscr = TekScreenOf(tw); - TScreen *screen = TScreenOf(term); static Cursor wait_cursor = None; if (wait_cursor == None) @@ -1155,8 +1156,9 @@ TCursorDown(TekWidget tw) static void AddToDraw(TekWidget tw, int x1, int y1, int x2, int y2) { + XtermWidget xw = term; + TScreen *screen = TScreenOf(xw); TekScreen *tekscr = TekScreenOf(tw); - TScreen *screen = TScreenOf(term); XSegment *lp; TRACE(("AddToDraw (%d,%d) (%d,%d)\n", x1, y1, x2, y2)); @@ -1226,8 +1228,9 @@ TekGINoff(TekWidget tw) void TekEnqMouse(TekWidget tw, int c) /* character pressed */ { + XtermWidget xw = term; + TScreen *screen = TScreenOf(xw); TekScreen *tekscr = TekScreenOf(tw); - TScreen *screen = TScreenOf(term); int mousex, mousey, rootx, rooty; unsigned int mask; /* XQueryPointer */ Window root, subw; @@ -1257,8 +1260,9 @@ TekEnq(TekWidget tw, int x, int y) { + XtermWidget xw = term; + TScreen *screen = TScreenOf(xw); TekScreen *tekscr = TekScreenOf(tw); - TScreen *screen = TScreenOf(term); Char cplot[7]; int len = 5; int adj = (status != 0) ? 0 : 1; @@ -1285,13 +1289,16 @@ TekEnq(TekWidget tw, void TekRun(void) { + XtermWidget xw = term; + + assert(xw != 0); if (tekWidget == 0) { TekInit(); } if (tekWidget != 0) { TRACE(("TekRun ...\n")); - if (!TEK4014_SHOWN(term)) { + if (!TEK4014_SHOWN(xw)) { set_tek_visibility(True); } update_vttekmode(); @@ -1307,10 +1314,10 @@ TekRun(void) TCursorToggle(tekWidget, TOGGLE); Ttoggled = True; } - TEK4014_ACTIVE(term) = False; + TEK4014_ACTIVE(xw) = False; } else { - TEK4014_ACTIVE(term) = False; - if (VWindow(TScreenOf(term)) == 0) { + TEK4014_ACTIVE(xw) = False; + if (VWindow(TScreenOf(xw)) == 0) { Exit(ERROR_TINIT); } } @@ -1386,9 +1393,10 @@ TekRealize(Widget gw, XtValueMask * valuemaskp, XSetWindowAttributes * values) { + XtermWidget xw = term; + TScreen *screen = TScreenOf(xw); TekWidget tw = (TekWidget) gw; TekScreen *tekscr = TekScreenOf(tw); - TScreen *screen = TScreenOf(term); int i; TekLink *tek; double d; @@ -1407,7 +1415,7 @@ TekRealize(Widget gw, tekscr->whichTwin = &tekscr->fullTwin; #endif /* NO_ACTIVE_ICON */ - BorderPixel(tw) = BorderPixel(term); + BorderPixel(tw) = BorderPixel(xw); tekscr->arrow = make_colored_cursor(XC_left_ptr, T_COLOR(screen, MOUSE_FG), @@ -1428,10 +1436,10 @@ TekRealize(Widget gw, if (!TekPtyData()) return; - if (term->misc.T_geometry == NULL) { + if (xw->misc.T_geometry == NULL) { int defwidth, defheight; - if (term->misc.tekSmall) { + if (xw->misc.tekSmall) { defwidth = TEKMINWIDTH; defheight = TEKMINHEIGHT; } else { @@ -1439,7 +1447,7 @@ TekRealize(Widget gw, defheight = TEKDEFHEIGHT; } sprintf(Tdefault, "=%dx%d", defwidth + border, defheight + border); - term->misc.T_geometry = Tdefault; + xw->misc.T_geometry = Tdefault; } winX = 1; @@ -1447,8 +1455,8 @@ TekRealize(Widget gw, width = (unsigned) (TEKDEFWIDTH + border); height = (unsigned) (TEKDEFHEIGHT + border); - TRACE(("parsing T_geometry %s\n", NonNull(term->misc.T_geometry))); - pr = XParseGeometry(term->misc.T_geometry, + TRACE(("parsing T_geometry %s\n", NonNull(xw->misc.T_geometry))); + pr = XParseGeometry(xw->misc.T_geometry, &winX, &winY, &width, @@ -1456,10 +1464,10 @@ TekRealize(Widget gw, TRACE(("... position %d,%d size %dx%d\n", winY, winX, height, width)); if ((pr & XValue) && (pr & XNegative)) winX += DisplayWidth(XtDisplay(tw), DefaultScreen(XtDisplay(tw))) - - (int) width - (BorderWidth(SHELL_OF(term)) * 2); + - (int) width - (BorderWidth(SHELL_OF(xw)) * 2); if ((pr & YValue) && (pr & YNegative)) winY += DisplayHeight(XtDisplay(tw), DefaultScreen(XtDisplay(tw))) - - (int) height - (BorderWidth(SHELL_OF(term)) * 2); + - (int) height - (BorderWidth(SHELL_OF(xw)) * 2); /* set up size hints */ tw->hints.min_width = TEKMINWIDTH + border; @@ -1656,6 +1664,7 @@ void TekSetFontSize(TekWidget tw, Bool fromMenu, int newitem) { if (tw != 0) { + XtermWidget xw = term; TekScreen *tekscr = TekScreenOf(tw); int oldsize = tekscr->cur.fontsize; int newsize = MI2FS(newitem); @@ -1663,7 +1672,7 @@ TekSetFontSize(TekWidget tw, Bool fromMenu, int newitem) TRACE(("TekSetFontSize(%d) size %d ->%d\n", newitem, oldsize, newsize)); if (newsize < 0 || newsize >= TEKNUMFONTS) { - Bell(XkbBI_MinorError, 0); + Bell(xw, XkbBI_MinorError, 0); } else if (oldsize != newsize) { if (!Ttoggled) TCursorToggle(tw, TOGGLE); @@ -1752,7 +1761,8 @@ ChangeTekColors(TekWidget tw, TScreen * screen, ScrnColors * pNew) void TekReverseVideo(TekWidget tw) { - TScreen *screen = TScreenOf(term); + XtermWidget xw = term; + TScreen *screen = TScreenOf(xw); TekScreen *tekscr = TekScreenOf(tw); int i; Pixel tmp; @@ -1803,12 +1813,13 @@ TekBackground(TekWidget tw, TScreen * screen) void TCursorToggle(TekWidget tw, int toggle) /* TOGGLE or CLEAR */ { + XtermWidget xw = term; TekScreen *tekscr = TekScreenOf(tw); - TScreen *screen = TScreenOf(term); + TScreen *screen = TScreenOf(xw); int c, x, y; unsigned int cellwidth, cellheight; - if (!TEK4014_SHOWN(term)) + if (!TEK4014_SHOWN(xw)) return; TRACE(("TCursorToggle %s\n", (toggle == TOGGLE) ? "toggle" : "clear")); @@ -1865,8 +1876,9 @@ void TekCopy(TekWidget tw) { if (tw != 0) { + XtermWidget xw = term; TekScreen *tekscr = TekScreenOf(tw); - TScreen *screen = TScreenOf(term); + TScreen *screen = TScreenOf(xw); TekLink *Tp; char buf[32]; @@ -1876,12 +1888,12 @@ TekCopy(TekWidget tw) timestamp_filename(buf, "COPY"); if (access(buf, F_OK) >= 0 && access(buf, W_OK) < 0) { - Bell(XkbBI_MinorError, 0); + Bell(xw, XkbBI_MinorError, 0); return; } #ifndef VMS if (access(".", W_OK) < 0) { /* can't write in directory */ - Bell(XkbBI_MinorError, 0); + Bell(xw, XkbBI_MinorError, 0); return; } #endif @@ -1909,7 +1921,9 @@ HandleGINInput(Widget w, String * param_list, Cardinal *nparamsp) { + XtermWidget xw = term; TekWidget tw = getTekWidget(w); + if (tw != 0) { TekScreen *tekscr = TekScreenOf(tw); @@ -1924,13 +1938,13 @@ HandleGINInput(Widget w, case 'R': break; default: - Bell(XkbBI_MinorError, 0); /* let them know they goofed */ + Bell(xw, XkbBI_MinorError, 0); /* let them know they goofed */ c = 'l'; /* provide a default */ } TekEnqMouse(tw, c | 0x80); TekGINoff(tw); } else { - Bell(XkbBI_MinorError, 0); + Bell(xw, XkbBI_MinorError, 0); } } } diff --git a/VTPrsTbl.c b/VTPrsTbl.c index 095b3c1..4ab9701 100644 --- a/VTPrsTbl.c +++ b/VTPrsTbl.c @@ -1,8 +1,8 @@ -/* $XTermId: VTPrsTbl.c,v 1.57 2010/04/10 00:19:56 tom Exp $ */ +/* $XTermId: VTPrsTbl.c,v 1.58 2010/06/15 10:58:13 tom Exp $ */ /* * - * Copyright 1999-2008,2009 by Thomas E. Dickey + * Copyright 1999-2009,2010 by Thomas E. Dickey * * All Rights Reserved * diff --git a/VTparse.def b/VTparse.def index 8e8d629..a62f153 100644 --- a/VTparse.def +++ b/VTparse.def @@ -1,10 +1,10 @@ -# $XTermId: VTparse.def,v 1.38 2010/04/09 10:47:24 tom Exp $ +# $XTermId: VTparse.def,v 1.39 2010/06/15 10:58:13 tom Exp $ # # vile:confmode rs=lf # ----------------------------------------------------------------------------- # this file is part of xterm # -# Copyright 1996-2008,2009 by Thomas E. Dickey +# Copyright 1996-2009,2010 by Thomas E. Dickey # # All Rights Reserved # diff --git a/VTparse.h b/VTparse.h index 0fd5110..162d13c 100644 --- a/VTparse.h +++ b/VTparse.h @@ -1,7 +1,7 @@ -/* $XTermId: VTparse.h,v 1.51 2010/04/09 22:29:17 tom Exp $ */ +/* $XTermId: VTparse.h,v 1.52 2010/06/15 10:58:13 tom Exp $ */ /* - * Copyright 2002-2008,2009 by Thomas E. Dickey + * Copyright 2002-2009,2010 by Thomas E. Dickey * * All Rights Reserved * diff --git a/XTerm.ad b/XTerm.ad index 5f74416..975f7cd 100644 --- a/XTerm.ad +++ b/XTerm.ad @@ -1,4 +1,4 @@ -! $XTermId: XTerm.ad,v 1.92 2010/01/04 22:16:17 tom Exp $ +! $XTermId: XTerm.ad,v 1.93 2010/06/15 10:55:59 tom Exp $ ! ----------------------------------------------------------------------------- ! this file is part of xterm ! @@ -220,6 +220,12 @@ ! vt100 widget: *SimpleMenu*borderWidth: 2 +! xterm can switch at runtime between bitmap (default) and TrueType fonts. +! The "faceSize" resource controls the size of the latter. However, it was +! originally given with a size that makes the two types of fonts different +! sizes. Uncomment this line to use the same size as "fixed". +!*faceSize: 8 + ! Here is a pattern that is useful for double-clicking on a URL: !*charClass: 33:48,35:48,37-38:48,43-47:48,58:48,61:48,63-64:48,95:48,126:48 ! diff --git a/aclocal.m4 b/aclocal.m4 index f9efe05..0a05548 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,4 +1,4 @@ -dnl $XTermId: aclocal.m4,v 1.284 2010/06/05 15:31:37 tom Exp $ +dnl $XTermId: aclocal.m4,v 1.285 2010/06/14 21:44:02 tom Exp $ dnl dnl --------------------------------------------------------------------------- dnl @@ -31,6 +31,9 @@ dnl sale, use or other dealings in this Software without prior written dnl authorization. dnl dnl --------------------------------------------------------------------------- +dnl See +dnl http://invisible-island.net/autoconf/autoconf.html +dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42 dnl ------------------- @@ -2053,7 +2056,7 @@ foo.c_ospeed = B9600; test "$cf_cv_termio_c_ispeed" = yes && AC_DEFINE(HAVE_TERMIO_C_ISPEED) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_TRY_PKG_CONFIG version: 3 updated: 2010/06/02 05:03:05 +dnl CF_TRY_PKG_CONFIG version: 4 updated: 2010/06/14 17:42:30 dnl ----------------- dnl This is a simple wrapper to use for pkg-config, for libraries which may be dnl available in that form. @@ -2068,6 +2071,8 @@ if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then CF_VERBOSE(found package $1) cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`" cf_pkgconfig_libs="`$PKG_CONFIG --libs $1 2>/dev/null`" + CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs) + CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs) CF_ADD_CFLAGS($cf_pkgconfig_incs) CF_ADD_LIBS($cf_pkgconfig_libs) ifelse([$2],,:,[$2]) @@ -2817,7 +2822,7 @@ if test -n "$cf_xopen_source" ; then fi ]) dnl --------------------------------------------------------------------------- -dnl CF_X_ATHENA version: 15 updated: 2010/06/02 05:03:05 +dnl CF_X_ATHENA version: 16 updated: 2010/06/14 17:42:30 dnl ----------- dnl Check for Xaw (Athena) libraries dnl @@ -2871,17 +2876,11 @@ if test "$PKG_CONFIG" != none ; then lib${cf_x_athena} \ lib${cf_x_athena}-devel do - if "$PKG_CONFIG" --exists $cf_athena_pkg; then - CF_VERBOSE(found package $cf_athena_pkg) - cf_x_athena_inc="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`" - cf_x_athena_lib="`$PKG_CONFIG --libs $cf_athena_pkg 2>/dev/null`" - CF_ADD_CFLAGS($cf_x_athena_inc) - CF_ADD_LIBS($cf_x_athena_lib) - + CF_TRY_PKG_CONFIG($cf_athena_pkg,[ + cf_x_athena_lib="$cf_pkgconfig_libs" CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena) AC_DEFINE_UNQUOTED($cf_x_athena_LIBS) - break - fi + break]) done fi @@ -3120,7 +3119,7 @@ AC_SUBST(HAVE_TYPE_FCCHAR32) AC_SUBST(HAVE_TYPE_XFTCHARSPEC) ]) dnl --------------------------------------------------------------------------- -dnl CF_X_TOOLKIT version: 14 updated: 2010/06/02 05:03:05 +dnl CF_X_TOOLKIT version: 15 updated: 2010/06/14 17:42:30 dnl ------------ dnl Check for X Toolkit libraries dnl @@ -3132,6 +3131,23 @@ AC_REQUIRE([CF_CHECK_CACHE]) cf_have_X_LIBS=no CF_TRY_PKG_CONFIG(xt,[ + + # workaround for broken ".pc" files used for X Toolkit. + case "x$X_PRE_LIBS" in #(vi + *-lICE*) + case "x$LIBS" in #(vi + *-lICE*) #(vi + ;; + *) + CF_VERBOSE(work around broken package) + CF_VERBOSE(...before $LIBS) + LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s,-lXt ,-lXt $X_PRE_LIBS ," -e 's/ / /g'` + CF_VERBOSE(...after $LIBS) + ;; + esac + ;; + esac + cf_have_X_LIBS=yes ],[ diff --git a/charproc.c b/charproc.c index b0a6b3a..a0b2d7f 100644 --- a/charproc.c +++ b/charproc.c @@ -1,4 +1,4 @@ -/* $XTermId: charproc.c,v 1.1061 2010/06/04 09:29:09 tom Exp $ */ +/* $XTermId: charproc.c,v 1.1070 2010/06/20 21:39:59 tom Exp $ */ /* @@ -216,7 +216,7 @@ static void HandleStructNotify PROTO_XT_EV_HANDLER_ARGS; #endif #endif -static char *_Font_Selected_ = "yes"; /* string is arbitrary */ +static String _Font_Selected_ = "yes"; /* string is arbitrary */ static char defaultTranslations[] = "\ @@ -752,7 +752,7 @@ static XtResource xterm_resources[] = Dres(XtNfaceSize, XtCFaceSize, misc.face_size[0], DEFFACESIZE), Sres(XtNfaceName, XtCFaceName, misc.face_name, DEFFACENAME), Sres(XtNfaceNameDoublesize, XtCFaceNameDoublesize, misc.face_wide_name, DEFFACENAME), - Bres(XtNrenderFont, XtCRenderFont, misc.render_font, True), + Sres(XtNrenderFont, XtCRenderFont, misc.render_font_s, "default"), #endif }; @@ -1347,6 +1347,22 @@ one_if_default(int which) return result; } +#if OPT_C1_PRINT || OPT_WIDE_CHARS +#define ParseSOS(screen) ((screen)->c1_printable == 0) +#else +#define ParseSOS(screen) 0 +#endif + +#define ResetState(sp) (sp)->parsestate = (sp)->groundtable + +static void +illegal_parse(XtermWidget xw, unsigned c, struct ParseState *sp) +{ + ResetState(sp); + sp->nextstate = sp->parsestate[E2A(c)]; + Bell(xw, XkbBI_MinorError, 0); +} + static Boolean doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) { @@ -1487,8 +1503,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) break; /* FALLTHRU */ case 'R': - sp->parsestate = sp->groundtable; - sp->nextstate = sp->parsestate[E2A(c)]; + illegal_parse(xw, c, sp); TRACE(("Reset to ground state (brokenLinuxOSC)\n")); break; } @@ -1507,18 +1522,18 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) && sp->parsestate == sos_table && c < 32) { switch (c) { - case 5: /* FALLTHRU */ - case 8: /* FALLTHRU */ - case 9: /* FALLTHRU */ - case 10: /* FALLTHRU */ - case 11: /* FALLTHRU */ - case 12: /* FALLTHRU */ - case 13: /* FALLTHRU */ - case 14: /* FALLTHRU */ - case 15: /* FALLTHRU */ - case 24: - sp->parsestate = sp->groundtable; - sp->nextstate = sp->parsestate[E2A(c)]; + case ANSI_EOT: /* FALLTHRU */ + case ANSI_BS: /* FALLTHRU */ + case ANSI_HT: /* FALLTHRU */ + case ANSI_LF: /* FALLTHRU */ + case ANSI_VT: /* FALLTHRU */ + case ANSI_FF: /* FALLTHRU */ + case ANSI_CR: /* FALLTHRU */ + case ANSI_SO: /* FALLTHRU */ + case ANSI_SI: /* FALLTHRU */ + case ANSI_XON: /* FALLTHRU */ + case ANSI_CAN: + illegal_parse(xw, c, sp); TRACE(("Reset to ground state (brokenStringTerm)\n")); break; } @@ -1645,7 +1660,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) case CASE_GROUND_STATE: TRACE(("CASE_GROUND_STATE - exit ignore mode\n")); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_IGNORE: @@ -1665,10 +1680,10 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) if (sp->string_used) sp->string_area[--(sp->string_used)] = '\0'; do_osc(xw, sp->string_area, sp->string_used, (int) c); - sp->parsestate = sp->groundtable; + ResetState(sp); } else { /* bell */ - Bell(XkbBI_TerminalBell, 0); + Bell(xw, XkbBI_TerminalBell, 0); } break; @@ -1721,7 +1736,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) count = 1; while ((count-- > 0) && (TabToPrevStop(xw))) ; - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_CHT: @@ -1730,7 +1745,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) count = 1; while ((count-- > 0) && (TabToNextStop(xw))) ; - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_TAB: @@ -1741,30 +1756,30 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) case CASE_SI: screen->curgl = 0; if_OPT_VT52_MODE(screen, { - sp->parsestate = sp->groundtable; + ResetState(sp); }); break; case CASE_SO: screen->curgl = 1; if_OPT_VT52_MODE(screen, { - sp->parsestate = sp->groundtable; + ResetState(sp); }); break; case CASE_DECDHL: xterm_DECDHL(xw, c == '3'); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_DECSWL: xterm_DECSWL(xw); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_DECDWL: xterm_DECDWL(xw); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_SCR_STATE: @@ -1853,7 +1868,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) if ((row = param[0]) < 1) row = 1; InsertChar(xw, (unsigned) row); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_CUU: @@ -1861,7 +1876,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) if ((row = param[0]) < 1) row = 1; CursorUp(screen, row); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_CUD: @@ -1869,7 +1884,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) if ((row = param[0]) < 1) row = 1; CursorDown(screen, row); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_CUF: @@ -1877,7 +1892,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) if ((col = param[0]) < 1) col = 1; CursorForward(screen, col); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_CUB: @@ -1885,7 +1900,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) if ((col = param[0]) < 1) col = 1; CursorBack(xw, col); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_CUP: @@ -1898,7 +1913,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) if (nparam < 2 || (col = param[1]) < 1) col = 1; CursorSet(screen, row - 1, col - 1, xw->flags); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_VPA: @@ -1906,7 +1921,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) if ((row = param[0]) < 1) row = 1; CursorSet(screen, row - 1, screen->cur_col, xw->flags); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_HPA: @@ -1914,7 +1929,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) if ((col = param[0]) < 1) col = 1; CursorSet(screen, screen->cur_row, col - 1, xw->flags); - sp->parsestate = sp->groundtable; + ResetState(sp); break; case CASE_HP_BUGGY_LL: @@ -1924,26 +1939,26 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) the screen, regardless of what terminfo says. */ if (screen->hp_ll_bc) -- 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/e1orroz-0005v7...@alioth.debian.org