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

xterm: Changes to 'upstream-unstable'



 MANIFEST       |    2 
 XTerm-col.ad   |    5 -
 XTerm.ad       |    8 +--
 configure      |    4 -
 configure.in   |    4 -
 ptyx.h         |   11 +++-
 screen.c       |  146 +++++++++++++++++++++++++++------------------------------
 util.c         |   13 +----
 version.h      |    4 -
 xterm.log.html |   61 +++++++++++++++++++++++
 xterm.man      |    6 +-
 11 files changed, 157 insertions(+), 107 deletions(-)

New commits:
commit d61ca8392fc732381c31aa8a02b34471707ffd1d
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Aug 17 10:22:36 2009 +0200

    Import xterm 246

diff --git a/MANIFEST b/MANIFEST
index 6fe78c4..bcd71a7 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,4 +1,4 @@
-MANIFEST for xterm-245, version xterm-245
+MANIFEST for xterm-246, version xterm-246
 --------------------------------------------------------------------------------
 MANIFEST                        this file
 256colres.h                     resource-definitions for 256-color mode
diff --git a/XTerm-col.ad b/XTerm-col.ad
index a21fee9..9de5098 100644
--- a/XTerm-col.ad
+++ b/XTerm-col.ad
@@ -1,5 +1,4 @@
-! $XTermId: XTerm-col.ad,v 1.20 2006/06/24 14:57:29 tom Exp $
-! $XFree86: xc/programs/xterm/XTerm-col.ad,v 3.7 2005/09/18 23:48:12 dickey Exp $
+! $XTermId: XTerm-col.ad,v 1.21 2009/08/15 15:56:29 tom Exp $
 
 #include "XTerm"
 
@@ -20,7 +19,7 @@
 ! leave the foreground/background colors alone (at the mercy of your desktop
 ! designer).
 
-! Color the popup/pulldown menu border to match the text widget's foreground.
+! Color the popup/pulldown menu border to match the text widget foreground.
 !*SimpleMenu*borderColor: gray15
 
 ! Uncomment this to use color for underline attribute
diff --git a/XTerm.ad b/XTerm.ad
index b5659fc..f186e66 100644
--- a/XTerm.ad
+++ b/XTerm.ad
@@ -1,4 +1,4 @@
-! $XTermId: XTerm.ad,v 1.88 2009/02/13 00:14:13 tom Exp $
+! $XTermId: XTerm.ad,v 1.89 2009/08/15 15:58:44 tom Exp $
 
 *saveLines: 1024
 
@@ -148,7 +148,7 @@
 !			vt100/VT100
 !			tektronix/TopLevelShell
 !				shellext/VendorShellExt
-!					tek4014/Tek4014 
+!					tek4014/Tek4014
 !
 ! If built without a toolbar, the widget hierarchy is simpler, because there
 ! is no form, and the popup menu widgets are created only when they are first
@@ -163,7 +163,7 @@
 !		vt100/VT100
 !		tektronix/TopLevelShell
 !			shellext/VendorShellExt
-!				tek4014/Tek4014 
+!				tek4014/Tek4014
 !
 ! A more complete list of the widget/class names can be obtained using editres
 ! to dump a file.  Some widget names are not available until the corresponding
@@ -193,7 +193,7 @@
 ! Alternatively,
 !*on2Clicks: regex [[:alpha:]]+://([[:alnum:]!#+,./=?@_~-]|(%[[:xdigit:]][[:xdigit:]]))+
 
-! vt100's and similar terminals recognize escape sequences and control
+! VT100s and similar terminals recognize escape sequences and control
 ! characters to which they reply to the host with other escape sequences,
 ! to provide information.  The "resize" program uses this feature.
 !
diff --git a/configure b/configure
index 6ee07ab..c28534d 100755
--- a/configure
+++ b/configure
@@ -11948,11 +11948,11 @@ if test "${enable_16bit_chars+set}" = set; then
   if test "$enableval" != "no" ; then
     enable_16bit_chars=yes
   else
-    enable_16bit_chars=$no
+    enable_16bit_chars=no
   fi
 else
   enableval=no
-  enable_16bit_chars=$no
+  enable_16bit_chars=no
 
 fi;
 echo "$as_me:11958: result: $enable_16bit_chars" >&5
diff --git a/configure.in b/configure.in
index 622b7c4..53dcf69 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-dnl $XTermId: configure.in,v 1.251 2009/08/06 00:37:38 tom Exp $
+dnl $XTermId: configure.in,v 1.252 2009/08/13 19:41:01 tom Exp $
 dnl
 dnl ---------------------------------------------------------------------------
 dnl
@@ -812,7 +812,7 @@ AC_MSG_CHECKING(if you want only 16-bit character support)
 CF_ARG_ENABLE(16bit-chars,
 	[  --enable-16bit-chars    enable 16-bit character support],
 	[enable_16bit_chars=yes],
-	[enable_16bit_chars=$no])
+	[enable_16bit_chars=no])
 AC_MSG_RESULT($enable_16bit_chars)
 
 if test "$enable_16bit_chars" = yes ; then
diff --git a/ptyx.h b/ptyx.h
index 28085df..909e9c6 100644
--- a/ptyx.h
+++ b/ptyx.h
@@ -1,4 +1,4 @@
-/* $XTermId: ptyx.h,v 1.623 2009/08/08 14:24:27 tom Exp $ */
+/* $XTermId: ptyx.h,v 1.625 2009/08/14 23:14:26 tom Exp $ */
 
 /*
  * Copyright 1999-2008,2009 by Thomas E. Dickey
@@ -1126,7 +1126,7 @@ typedef struct {
 #if OPT_ISO_COLORS
 #if OPT_256_COLORS || OPT_88_COLORS
 #define COLOR_BITS 8
-typedef unsigned CellColor;
+typedef unsigned short CellColor;
 #else
 #define COLOR_BITS 4
 typedef Char CellColor;
@@ -1148,7 +1148,12 @@ typedef Char RowData;		/* wrap/blink, and DEC single-double chars */
 #define LINEFLAG_MASK         BITS2MASK(LINEFLAG_BITS)
 
 #define GetLineFlags(ld)      ((ld)->bufHead & LINEFLAG_MASK)
-#define SetLineFlags(ld,xx)   (ld)->bufHead |= (RowData) (xx & LINEFLAG_MASK)
+
+#if OPT_DEC_CHRSET
+#define SetLineFlags(ld,xx)   (ld)->bufHead = (RowData) ((ld->bufHead & (DBLCS_MASK << LINEFLAG_BITS)) | (xx & LINEFLAG_MASK))
+#else
+#define SetLineFlags(ld,xx)   (ld)->bufHead = (RowData) (xx & LINEFLAG_MASK)
+#endif
 
 typedef IChar CharData;
 
diff --git a/screen.c b/screen.c
index 31a32e9..26ad604 100644
--- a/screen.c
+++ b/screen.c
@@ -1,4 +1,4 @@
-/* $XTermId: screen.c,v 1.389 2009/08/13 00:30:01 tom Exp $ */
+/* $XTermId: screen.c,v 1.394 2009/08/16 18:16:45 tom Exp $ */
 
 /*
  * Copyright 1999-2008,2009 by Thomas E. Dickey
@@ -100,19 +100,32 @@
 #define VisBuf(screen) scrnHeadAddr(screen, screen->saveBuf_index, (unsigned) savelines)
 #endif
 
+/*
+ * ScrnPtr's can point to different types of data.
+ */
+#define SizeofScrnPtr(name) \
+	sizeof(*((LineData *)0)->name)
+
+/*
+ * The pointers in LineData point into a block of text allocated as a single
+ * chunk for the given number of rows.  Ensure that these pointers are aligned
+ * at least to int-boundaries.
+ */
+#define AlignMask()      (sizeof(int) - 1)
+#define IsAligned(value) (((unsigned long) (value) & AlignMask()) == 0)
+
+#define AlignValue(value) \
+		if (!IsAligned(value)) \
+		    value = (value | AlignMask()) + 1
+
 #define SetupScrnPtr(dst,src,type) \
 		dst = (type *) src; \
-		src += ((unsigned) ncol * sizeof(*dst))
+		assert(IsAligned(dst)); \
+		src += skipNcol##type
 
 #define ScrnBufAddr(ptrs, offset)  (ScrnBuf)    ((char *) (ptrs) + (offset))
 #define LineDataAddr(ptrs, offset) (LineData *) ((char *) (ptrs) + (offset))
 
-#if OPT_WIDE_CHARS
-#define ExtraScrnSize(screen) ((screen)->wide_chars ? (unsigned) (screen)->max_combining : 0)
-#else
-#define ExtraScrnSize(screen) 0
-#endif
-
 #if OPT_TRACE > 1
 static void
 traceScrnBuf(const char *tag, TScreen * screen, ScrnBuf sb, unsigned len)
@@ -175,6 +188,18 @@ setupLineData(TScreen * screen, ScrnBuf base, Char * data, unsigned nrow, unsign
 #if OPT_WIDE_CHARS
     unsigned j;
 #endif
+    /* these names are based on types */
+    unsigned skipNcolChar = (ncol * SizeofScrnPtr(attribs));
+    unsigned skipNcolCharData = (ncol * SizeofScrnPtr(charData));
+#if OPT_ISO_COLORS
+    unsigned skipNcolCellColor = (ncol * SizeofScrnPtr(color));
+#endif
+
+    AlignValue(skipNcolChar);
+#if OPT_ISO_COLORS
+    AlignValue(skipNcolCellColor);
+#endif
+    AlignValue(skipNcolCharData);
 
     for (i = 0; i < nrow; i++, offset += jump) {
 	ptr = LineDataAddr(base, offset);
@@ -188,13 +213,14 @@ setupLineData(TScreen * screen, ScrnBuf base, Char * data, unsigned nrow, unsign
 #if OPT_ISO_COLORS
 	SetupScrnPtr(ptr->color, data, CellColor);
 #endif
-	SetupScrnPtr(ptr->charData, data, IChar);
+	SetupScrnPtr(ptr->charData, data, CharData);
 #if OPT_WIDE_CHARS
 	if (screen->wide_chars) {
-	    unsigned extra = ExtraScrnSize(screen);
+	    unsigned extra = (unsigned) screen->max_combining;
 
+	    ptr->combSize = (Char) extra;
 	    for (j = 0; j < extra; ++j) {
-		SetupScrnPtr(ptr->combData[j], data, IChar);
+		SetupScrnPtr(ptr->combData[j], data, CharData);
 	    }
 	}
 #endif
@@ -250,32 +276,38 @@ allocScrnHead(TScreen * screen, unsigned nrow)
 }
 
 /*
- * ScrnPtr's can point to different types of data.
- */
-#define SizeofScrnPtr(name) \
-	sizeof(*((LineData *)0)->name)
-
-/*
  * Return the size of a line's data.
  */
 static unsigned
 sizeofScrnRow(TScreen * screen, unsigned ncol)
 {
-    unsigned result = (SizeofScrnPtr(attribs)
+    unsigned result = 1;
+    unsigned sizeAttribs;
 #if OPT_ISO_COLORS
-		       + SizeofScrnPtr(color)
+    unsigned sizeColors;
 #endif
-		       + SizeofScrnPtr(charData));
 
     (void) screen;
 
 #if OPT_WIDE_CHARS
     if (screen->wide_chars) {
-	result += (SizeofScrnPtr(combData[0]) * ExtraScrnSize(screen));
+	result += (unsigned) screen->max_combining;
     }
 #endif
+    result = (ncol * result * sizeof(CharData));
+    AlignValue(result);
+
+    sizeAttribs = (ncol * SizeofScrnPtr(attribs));
+    AlignValue(sizeAttribs);
+    result += sizeAttribs;
+
+#if OPT_ISO_COLORS
+    sizeColors = (ncol * SizeofScrnPtr(color));
+    AlignValue(sizeColors);
+    result += sizeColors;
+#endif
 
-    return ncol * result;
+    return result;
 }
 
 Char *
@@ -392,7 +424,6 @@ Reallocate(XtermWidget xw,
 	   unsigned oldcol)
 {
     TScreen *screen = TScreenOf(xw);
-    LineData *ptrs;
     ScrnBuf oldBufHead;
     ScrnBuf newBufHead;
     Char *newBufData;
@@ -401,12 +432,6 @@ Reallocate(XtermWidget xw,
     Char *oldBufData;
     int move_down = 0, move_up = 0;
 
-    /* save/restore row-flags */
-    RowData *saveFlags;
-    int saveFlagLo = -1;
-    int saveFlagHi = -1;
-    unsigned jump = scrnHeadSize(screen, 1);
-
     if (sbuf == NULL || *sbuf == NULL) {
 	return 0;
     }
@@ -416,30 +441,6 @@ Reallocate(XtermWidget xw,
     TRACE(("Reallocate %dx%d -> %dx%d\n", oldrow, oldcol, nrow, ncol));
 
     /*
-     * Save the row flags, to reapply after calling setupLineData.
-     */
-    saveFlags = TypeCallocN(RowData, nrow + oldrow);
-    if (saveFlags != NULL) {
-	int j;
-
-	ptrs = (LineData *) (*sbuf);
-	for (j = 0; j < (int) oldrow; ++j) {
-	    RowData thisFlag = ptrs->bufHead;
-	    if (GetLineFlags(ptrs) != 0) {
-		if (saveFlagLo < 0)
-		    saveFlagLo = j;
-		saveFlagHi = j;
-		saveFlags[j] = thisFlag;
-	    }
-	    ptrs = LineDataAddr(ptrs, jump);
-	}
-	if (saveFlagHi < 0) {
-	    free(saveFlags);
-	    saveFlags = 0;
-	}
-    }
-
-    /*
      * realloc sbuf, the pointers to all the lines.
      * If the screen shrinks, remove lines off the top of the buffer
      * if resizeGravity resource says to do so.
@@ -498,27 +499,6 @@ Reallocate(XtermWidget xw,
 	);
     free(oldBufHead);
 
-    if (saveFlags != NULL) {
-	int j, k;
-	int adjust = 0;
-
-	if (move_down) {
-	    adjust = move_down;
-	} else if (move_up) {
-	    adjust = -move_up;
-	}
-
-	ptrs = LineDataAddr(newBufHead, jump * (unsigned) (saveFlagLo + adjust));
-	for (j = saveFlagLo; j <= saveFlagHi; ++j) {
-	    k = j + adjust;
-	    if (k >= 0 && k < (int) nrow) {
-		ptrs->bufHead = saveFlags[j];
-	    }
-	    ptrs = LineDataAddr(ptrs, jump);
-	}
-	free(saveFlags);
-    }
-
     /* Now free the old data */
     free(oldBufData);
 
@@ -1343,6 +1323,10 @@ ScrnRefresh(XtermWidget xw,
 
 	if ((ld = getLineData(screen, ROW2INX(screen, lastind))) == 0)
 	    break;
+	if (maxcol >= ld->lineSize) {
+	    maxcol = ld->lineSize - 1;
+	    hi_col = maxcol;
+	}
 
 	chars = ld->charData;
 	attrs = ld->attribs;
diff --git a/util.c b/util.c
index a110397..7f59053 100644
--- a/util.c
+++ b/util.c
@@ -1,4 +1,4 @@
-/* $XTermId: util.c,v 1.485 2009/08/09 12:30:47 tom Exp $ */
+/* $XTermId: util.c,v 1.486 2009/08/15 00:40:38 tom Exp $ */
 
 /*
  * Copyright 1999-2008,2009 by Thomas E. Dickey
@@ -3483,15 +3483,10 @@ extract_bg(XtermWidget xw, CellColor color, unsigned flags)
 CellColor
 makeColorPair(int fg, int bg)
 {
-    if (fg == -1)
-	fg = 0;
-    if (bg == -1)
-	bg = 0;
+    unsigned my_bg = (bg >= 0) && (bg < NUM_ANSI_COLORS) ? (unsigned) bg : 0;
+    unsigned my_fg = (fg >= 0) && (fg < NUM_ANSI_COLORS) ? (unsigned) fg : my_bg;
 
-    assert(fg >= 0 && fg < (1 << COLOR_BITS));
-    assert(bg >= 0 && bg < (1 << COLOR_BITS));
-
-    return (CellColor) (fg | (bg << COLOR_BITS));
+    return (CellColor) (my_fg | (my_bg << COLOR_BITS));
 }
 
 /*
diff --git a/version.h b/version.h
index cd5390e..51ae53a 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
-/* $XTermId: version.h,v 1.301 2009/08/13 00:46:46 tom Exp $ */
+/* $XTermId: version.h,v 1.302 2009/08/14 09:04:02 tom Exp $ */
 
 /*
  * These definitions are used to build the string that's printed in response to
@@ -6,7 +6,7 @@
  * version of X to which this version of xterm has been built.  The number in
  * parentheses is my patch number (Thomas E. Dickey).
  */
-#define XTERM_PATCH   245
+#define XTERM_PATCH   246
 
 #ifndef __vendorversion__
 #define __vendorversion__ "XTerm"
diff --git a/xterm.log.html b/xterm.log.html
index 606da7e..132314f 100644
--- a/xterm.log.html
+++ b/xterm.log.html
@@ -20,7 +20,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   *
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.            *
  *****************************************************************************
-  $XTermId: xterm.log.html,v 1.772 2009/08/13 01:23:33 tom Exp $
+  $XTermId: xterm.log.html,v 1.781 2009/08/16 22:51:21 tom Exp $
   -->
 <HTML>
 <HEAD>
@@ -45,6 +45,7 @@ Most of these are summarized in the XFree86 CHANGELOG
 is the latest version of this file.
 
 <UL>
+<LI><A HREF="#xterm_246">Patch #246 - 2009/8/16</A>
 <LI><A HREF="#xterm_245">Patch #245 - 2009/8/12</A>
 <LI><A HREF="#xterm_244">Patch #244 - 2009/8/9</A>
 <LI><A HREF="#xterm_243">Patch #243 - 2009/3/28</A>
@@ -293,6 +294,44 @@ is the latest version of this file.
 <LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
 </UL>
 
+<H1><A NAME="xterm_246">Patch #246 - 2009/8/16</A></H1>
+<ul>
+	<li>remove obsolete logic for saving/restoring wrapping flags, which
+	    did not work on 64-bit platform.  Wrapping flags (stored in the
+	    line-index) are now copied with line-data (Debian #541160).
+
+	<li>modify comments in app-defaults files to avoid problem with
+	    C preprocessor used by <code>xrdb</code> (Debian #541603).
+
+	<li>restore special case in <code>makeColorPair</code>,
+	    needed for <code>colorBDMode</code> resource (Debian #541089).
+
+	<li>correct <code>SetLineFlags()</code> macro, broken in
+	    <a href="#xterm_244">patch #244</a>
+	    when recoding to avoid gcc-specific bitfields (Debian #541236).
+
+	<li>modify initialization of screen buffers to ensure that pointers
+	    align to int-boundaries.
+	    This fixes a problem introduced in
+	    <a href="#xterm_244">patch #244</a>
+	    where the color- and character-arrays
+	    (stored after the video-attributes in each row)
+	    might be misaligned (report by Rajeev V Pillai).
+
+	<li>add limit-check in <code>ScrnRefresh</code> for handling
+	    saved-lines from the circular buffer which are repainted on a
+	    screen whose width has increased.  To improve performance, circular
+	    buffer entries are not resized (report by Rajeev V Pillai).
+
+	<li>correct type for <code>CellColor</code> (a late change in
+	    <a href="#xterm_244">patch #244</a>
+	    to avoid gcc-specifc enums made that unsigned
+	    rather than unsigned short, for the 256-color option).
+
+	<li>fix typo in configure option --enable-16bit-chars (report by
+	    Rajeev V. Pillai).
+</ul>
+
 <H1><A NAME="xterm_245">Patch #245 - 2009/8/12</A></H1>
 <ul>
 	<li>correct a special case in saving FIFO-lines from
@@ -359,7 +398,7 @@ is the latest version of this file.
 	    when vt52 support is not compiled (report by Olaf 'Rhialto'
 	    Seibert).
 
-	<li>save/restore line-wrapping flags when converting from ISL-8859-1
+	<li>save/restore line-wrapping flags when converting from ISO-8859-1
 	    encoding to UTF-8 encoding, as well as when resizing screen.
 
 	<li>remove extra adjustment of position in fix for Debian #418324.

commit 15c5ad38380354f6efaee4bd2227f0eefff6e92b
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Aug 17 10:21:56 2009 +0200

    Import xterm 245

diff --git a/MANIFEST b/MANIFEST
index d311717..6fe78c4 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,4 +1,4 @@
-MANIFEST for xterm-244, version xterm-244
+MANIFEST for xterm-245, version xterm-245
 --------------------------------------------------------------------------------
 MANIFEST                        this file
 256colres.h                     resource-definitions for 256-color mode
diff --git a/screen.c b/screen.c
index 0b7e3d5..31a32e9 100644
--- a/screen.c
+++ b/screen.c
@@ -1,4 +1,4 @@
-/* $XTermId: screen.c,v 1.388 2009/08/07 23:20:07 tom Exp $ */
+/* $XTermId: screen.c,v 1.389 2009/08/13 00:30:01 tom Exp $ */
 
 /*
  * Copyright 1999-2008,2009 by Thomas E. Dickey
@@ -1787,8 +1787,17 @@ ScreenResize(XtermWidget xw,
 		    ScrnBuf dst = screen->saveBuf_index;
 
 #if OPT_FIFO_LINES
-		    /* move line-data from visible-buffer to save-buffer */
-		    saveEditBufLines(screen, dst, move_up);
+		    int amount = ((MaxRows(screen) - (int) move_up - 1)
+				  - screen->cur_row);
+
+		    if (amount < 0) {
+			/* move line-data from visible-buffer to save-buffer */
+			saveEditBufLines(screen, dst, -amount);
+			move_up = -amount;
+			move_down_by = amount;
+		    } else {
+			move_down_by = 0;
+		    }
 #else /* !OPT_FIFO_LINES */
 		    int amount = screen->savelines - (int) move_up;
 
@@ -1898,6 +1907,7 @@ ScreenResize(XtermWidget xw,
 
 		    /* copy line-data from save-buffer to visible-buffer */
 		    unsaveEditBufLines(screen, dst, move_down);
+		    TRACE_SCRNBUF("copied", screen, dst, rows);
 
 #if OPT_FIFO_LINES
 		    unsave_fifo = (long) move_down;
diff --git a/version.h b/version.h
index 90d7b19..cd5390e 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
-/* $XTermId: version.h,v 1.300 2009/03/29 13:49:44 tom Exp $ */
+/* $XTermId: version.h,v 1.301 2009/08/13 00:46:46 tom Exp $ */
 
 /*
  * These definitions are used to build the string that's printed in response to
@@ -6,7 +6,7 @@
  * version of X to which this version of xterm has been built.  The number in
  * parentheses is my patch number (Thomas E. Dickey).
  */
-#define XTERM_PATCH   244
+#define XTERM_PATCH   245
 
 #ifndef __vendorversion__
 #define __vendorversion__ "XTerm"
diff --git a/xterm.log.html b/xterm.log.html
index 9702d95..606da7e 100644
--- a/xterm.log.html
+++ b/xterm.log.html
@@ -20,7 +20,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   *
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.            *
  *****************************************************************************
-  $XTermId: xterm.log.html,v 1.770 2009/08/09 20:50:21 tom Exp $
+  $XTermId: xterm.log.html,v 1.772 2009/08/13 01:23:33 tom Exp $
   -->
 <HTML>
 <HEAD>
@@ -45,6 +45,7 @@ Most of these are summarized in the XFree86 CHANGELOG
 is the latest version of this file.
 
 <UL>
+<LI><A HREF="#xterm_245">Patch #245 - 2009/8/12</A>
 <LI><A HREF="#xterm_244">Patch #244 - 2009/8/9</A>
 <LI><A HREF="#xterm_243">Patch #243 - 2009/3/28</A>
 <LI><A HREF="#xterm_242">Patch #242 - 2009/2/15</A>
@@ -292,6 +293,23 @@ is the latest version of this file.
 <LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
 </UL>
 
+<H1><A NAME="xterm_245">Patch #245 - 2009/8/12</A></H1>
+<ul>
+	<li>correct a special case in saving FIFO-lines from
+	    <a href="#xterm_244">patch #244</a>.
+	    If the screen was shrunk, xterm used the wrong amount for copying
+	    to FIFO-lines, and then used this amount to adjust the current
+	    row on the screen.  That was both a visible defect (Debian #541109)
+	    as well as a potential addressing error (Debian #541132, #541160,
+	    and #541236).
+
+	<li>add clarification in xterm manual about the
+	    various <code>allow<em>XXX</em>Ops</code> resources, which
+	    are disabled when the 
+	    <code>allowSendEvents</code> resource is active (patch by
+	    Julien Cristau, Debian #531597).
+</ul>
+
 <H1><A NAME="xterm_244">Patch #244 - 2009/8/9</A></H1>
 <ul>
 	<li>refactored storage of saved-lines, providing a configure option
diff --git a/xterm.man b/xterm.man
index 132d23d..f7a41aa 100644
--- a/xterm.man
+++ b/xterm.man
@@ -1,5 +1,5 @@
 '\" t
-.\" $XTermId: xterm.man,v 1.432 2009/08/09 21:04:09 tom Exp $
+.\" $XTermId: xterm.man,v 1.433 2009/08/13 01:18:00 tom Exp $
 .\"
 .\" Copyright 1996-2008,2009 by Thomas E. Dickey
 .\"
@@ -1500,8 +1500,8 @@ The default is \*(``true.\*(''
 Specifies whether or not synthetic key and button events (generated using
 the X protocol SendEvent request) should be interpreted or discarded.
 The default is \*(``false\*('' meaning they are discarded.
-Note that allowing
-such events creates a very large security hole.
+Note that allowing such events creates a very large security hole, and         
+forcefully disables the \fBallow\fP\fIXXX\fP\fBOps\fR resources.
 The default is \*(``false.\*(''
 .TP
 .B "allowTcapOps (\fPclass\fB AllowTcapOps)"


Reply to: