pkgsrc-Changes-HG archive

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

[pkgsrc/trunk]: pkgsrc/x11/libXdamage Bump rev for patch for this problem (fr...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/54740218fab3
branches:  trunk
changeset: 538113:54740218fab3
user:      bjs <bjs%pkgsrc.org@localhost>
date:      Tue Jan 29 03:50:25 2008 +0000

description:
Bump rev for patch for this problem (from freedesktop.org GIT):

libXdamage incorrectly encodes/decodes the 'More' field from the event.

The client library for xdamage currently fails to fill in the 'more'
field.  As a result, you get whatever uninitialised junk was there
before.

The server sets the high bit of 'level' when there is
'more' (DamageNotifyMore = 0x80).  A patch follows to fix the client
library.

diffstat:

 x11/libXdamage/Makefile         |   3 ++-
 x11/libXdamage/distinfo         |   3 ++-
 x11/libXdamage/patches/patch-aa |  33 +++++++++++++++++++++++++++++++++
 3 files changed, 37 insertions(+), 2 deletions(-)

diffs (61 lines):

diff -r 62f73c2539a0 -r 54740218fab3 x11/libXdamage/Makefile
--- a/x11/libXdamage/Makefile   Tue Jan 29 03:46:15 2008 +0000
+++ b/x11/libXdamage/Makefile   Tue Jan 29 03:50:25 2008 +0000
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.3 2007/03/17 17:43:18 joerg Exp $
+# $NetBSD: Makefile,v 1.4 2008/01/29 03:50:25 bjs Exp $
 #
 
 DISTNAME=              libXdamage-1.1.1
+PKGREVISION=           1
 CATEGORIES=            x11 devel
 MASTER_SITES=          http://xorg.freedesktop.org/releases/individual/lib/
 EXTRACT_SUFX=          .tar.bz2
diff -r 62f73c2539a0 -r 54740218fab3 x11/libXdamage/distinfo
--- a/x11/libXdamage/distinfo   Tue Jan 29 03:46:15 2008 +0000
+++ b/x11/libXdamage/distinfo   Tue Jan 29 03:50:25 2008 +0000
@@ -1,5 +1,6 @@
-$NetBSD: distinfo,v 1.3 2007/03/17 17:43:18 joerg Exp $
+$NetBSD: distinfo,v 1.4 2008/01/29 03:50:25 bjs Exp $
 
 SHA1 (libXdamage-1.1.1.tar.bz2) = a88e5a004084400d638ed623e281a6076519a8d0
 RMD160 (libXdamage-1.1.1.tar.bz2) = 90de272adbd42113869a8e4d36a51e2e4e576dc9
 Size (libXdamage-1.1.1.tar.bz2) = 201096 bytes
+SHA1 (patch-aa) = f45851e0cdd665b78e5e712a11c2a838cae272b2
diff -r 62f73c2539a0 -r 54740218fab3 x11/libXdamage/patches/patch-aa
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/x11/libXdamage/patches/patch-aa   Tue Jan 29 03:50:25 2008 +0000
@@ -0,0 +1,33 @@
+$NetBSD: patch-aa,v 1.1 2008/01/29 03:50:26 bjs Exp $
+
+libXdamage incorrectly encodes/decodes the 'More' field from the event.
+
+The client library for xdamage currently fails to fill in the 'more'
+field.  As a result, you get whatever uninitialised junk was there
+before.
+
+The server sets the high bit of 'level' when there is
+'more' (DamageNotifyMore = 0x80).  A patch follows to fix the client
+library. (from GIT)
+
+--- src/Xdamage.c.orig 2007-01-09 19:20:57.000000000 -0500
++++ src/Xdamage.c
+@@ -231,7 +231,8 @@ XDamageWireToEvent(Display *dpy, XEvent 
+       aevent->display = dpy;
+       aevent->drawable = awire->drawable;
+       aevent->damage = awire->damage;
+-      aevent->level = awire->level;
++      aevent->level = awire->level & ~DamageNotifyMore;
++      aevent->more = (awire->level & DamageNotifyMore) ? True : False;
+       aevent->timestamp = awire->timestamp;
+       aevent->area.x = awire->area.x;
+       aevent->area.y = awire->area.y;
+@@ -264,7 +265,7 @@ XDamageEventToWire(Display *dpy, XEvent 
+       awire->type = aevent->type | (aevent->send_event ? 0x80 : 0);
+       awire->drawable = aevent->drawable;
+       awire->damage = aevent->damage;
+-      awire->level = aevent->level;
++      awire->level = aevent->level | (aevent->more ? DamageNotifyMore : 0);
+       awire->timestamp = aevent->timestamp;
+       awire->area.x = aevent->area.x;
+       awire->area.y = aevent->area.y;



Home | Main Index | Thread Index | Old Index