aboutsummaryrefslogtreecommitdiffstats
path: root/x11
diff options
context:
space:
mode:
authorehaupt <ehaupt@FreeBSD.org>2015-03-27 06:53:16 +0800
committerehaupt <ehaupt@FreeBSD.org>2015-03-27 06:53:16 +0800
commitc368e7e50eaaf0d8bc91739aac58d9e5b1c1e291 (patch)
tree8f24ff640dd2e2da00227357b0155f4fb5315e96 /x11
parent3990003806f70dfa8c675d2404ca4c98f4aca600 (diff)
downloadfreebsd-ports-gnome-c368e7e50eaaf0d8bc91739aac58d9e5b1c1e291.tar.gz
freebsd-ports-gnome-c368e7e50eaaf0d8bc91739aac58d9e5b1c1e291.tar.zst
freebsd-ports-gnome-c368e7e50eaaf0d8bc91739aac58d9e5b1c1e291.zip
Fix an other cursor related regression introduced with 315. This patch will be
merged upstream. Notified by: naddy Obtained from: dickey@his.com (author)
Diffstat (limited to 'x11')
-rw-r--r--x11/xterm/Makefile1
-rw-r--r--x11/xterm/files/patch-screen.c42
2 files changed, 43 insertions, 0 deletions
diff --git a/x11/xterm/Makefile b/x11/xterm/Makefile
index b05eb0d0f045..20e19422b41b 100644
--- a/x11/xterm/Makefile
+++ b/x11/xterm/Makefile
@@ -3,6 +3,7 @@
PORTNAME= xterm
PORTVERSION= 316
+PORTREVISION= 1
CATEGORIES= x11
MASTER_SITES= ftp://invisible-island.net/xterm/:src1 \
LOCAL/ehaupt:src1 LOCAL/ehaupt:src2
diff --git a/x11/xterm/files/patch-screen.c b/x11/xterm/files/patch-screen.c
new file mode 100644
index 000000000000..c05a6e14e6db
--- /dev/null
+++ b/x11/xterm/files/patch-screen.c
@@ -0,0 +1,42 @@
+--- screen.c.orig 2015-03-07 01:19:23 UTC
++++ screen.c
+@@ -1,4 +1,4 @@
+-/* $XTermId: screen.c,v 1.510 2015/03/07 01:19:23 tom Exp $ */
++/* $XTermId: screen.c,v 1.512 2015/03/22 14:47:02 tom Exp $ */
+
+ /*
+ * Copyright 1999-2014,2015 by Thomas E. Dickey
+@@ -1248,7 +1248,7 @@ ScrnInsertChar(XtermWidget xw, unsigned
+
+ TScreen *screen = TScreenOf(xw);
+ int first = ScrnLeftMargin(xw);
+- int last = ScrnRightMargin(xw) + 1;
++ int last = ScrnRightMargin(xw);
+ int row = screen->cur_row;
+ int col = screen->cur_col;
+ int j;
+@@ -1258,13 +1258,13 @@ ScrnInsertChar(XtermWidget xw, unsigned
+ TRACE(("ScrnInsertChar - col %d outside [%d..%d]\n", col, first, last));
+ return;
+ } else if (last < (col + (int) n)) {
+- n = (unsigned) (last - col);
++ n = (unsigned) (last + 1 - col);
+ }
+
+ assert(screen->cur_col >= 0);
+ assert(screen->cur_row >= 0);
+ assert((int) n >= 0);
+- assert(last >= (int) n);
++ assert((last + 1) >= (int) n);
+
+ if_OPT_WIDE_CHARS(screen, {
+ int xx = screen->cur_row;
+@@ -1273,7 +1273,7 @@ ScrnInsertChar(XtermWidget xw, unsigned
+ if (DamagedCells(screen, n, &kl, (int *) 0, xx, kr) && kr > kl) {
+ ClearCells(xw, 0, (unsigned) (kr - kl + 1), row, kl);
+ }
+- kr = last - (int) n;
++ kr = last - (int) n + 1;
+ if (DamagedCells(screen, n, &kl, (int *) 0, xx, kr) && kr > kl) {
+ ClearCells(xw, 0, (unsigned) (kr - kl + 1), row, kl);
+ }