[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xterm: Changes to 'debian-unstable'



 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 <jcristau@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 <jcristau@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 <jcristau@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 <jcristau@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)


Reply to: