configure.ac                  |    6 +++---
 man/XSelectExtensionEvent.txt |    2 +-
 src/XIAllowEvents.c           |   23 ++++++++++++++---------
 src/XListDev.c                |   27 +++++++++++++++++++--------
 4 files changed, 37 insertions(+), 21 deletions(-)

New commits:
commit 34964b05c16161de65709d60799b9ad97ce56296
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Fri Jan 27 15:35:44 2012 +1000

    libXi 1.5.99.3
    
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>

diff --git a/configure.ac b/configure.ac
index 46f2fb8..77341da 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([libXi], [1.5.99.2],
+AC_INIT([libXi], [1.5.99.3],
        [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([src/config.h])

commit b355b7300235395717de06809ee6631ce55d3189
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Fri Jan 27 13:28:52 2012 +1000

    Handle new XIAllowEvent request size
    
    inputproto 2.1.99.6 restored the previous request for ABI compatibility
    reasons, and it introduced a new XI 2.2 specific define.
    
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    Reviewed-by: Keith Packard <kei...@keithp.com>

diff --git a/configure.ac b/configure.ac
index 481cf44..46f2fb8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,7 +28,7 @@ XORG_WITH_ASCIIDOC(8.4.5)
 XORG_CHECK_MALLOC_ZERO
 
 # Obtain compiler/linker options for dependencies
-PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.4.99.1] [xextproto >= 
7.0.3] [xext >= 1.0.99.1] [inputproto >= 2.1.99.3])
+PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.4.99.1] [xextproto >= 
7.0.3] [xext >= 1.0.99.1] [inputproto >= 2.1.99.6])
 
 # Check for xmlto and asciidoc for man page conversion
 # (only needed by people building tarballs)
diff --git a/src/XIAllowEvents.c b/src/XIAllowEvents.c
index d987549..c8d997a 100644
--- a/src/XIAllowEvents.c
+++ b/src/XIAllowEvents.c
@@ -33,13 +33,16 @@
 #include <X11/extensions/extutil.h>
 #include "XIint.h"
 
+/* for GetRequest() to work */
+#define X_XI2_2AllowEvents X_XIAllowEvents
+
 static Status
 _XIAllowEvents(Display *dpy, int deviceid, int event_mode, Time time,
                     unsigned int touchid, Window grab_window)
 {
     Bool have_XI22 = True;
-    int req_len = sz_xXIAllowEventsReq; /* in bytes */
     xXIAllowEventsReq *req;
+    xXI2_2AllowEventsReq *req_XI22;
 
     XExtDisplayInfo *extinfo = XInput_find_display(dpy);
 
@@ -47,13 +50,15 @@ _XIAllowEvents(Display *dpy, int deviceid, int event_mode, 
Time time,
     if (_XiCheckExtInit(dpy, XInput_2_0, extinfo) == -1)
        return (NoSuchExtension);
 
-    /* 2.2's XIAllowEvents is 8 bytes longer than 2.0 */
-    if (_XiCheckExtInit(dpy, XInput_2_2, extinfo) == -1) {
-        req_len -= 8;
-        have_XI22 = False;
-    }
+    if (_XiCheckExtInit(dpy, XInput_2_2, extinfo) == 0)
+        have_XI22 = True;
 
-    GetReqSized(XIAllowEvents, req_len, req);
+    if (have_XI22)
+    {
+        GetReq(XI2_2AllowEvents, req_XI22);
+        req = (xXIAllowEventsReq*)req_XI22;
+    } else
+        GetReq(XIAllowEvents, req);
 
     req->reqType = extinfo->codes->major_opcode;
     req->ReqType = X_XIAllowEvents;
@@ -62,8 +67,8 @@ _XIAllowEvents(Display *dpy, int deviceid, int event_mode, 
Time time,
     req->time = time;
 
     if (have_XI22) {
-        req->touchid = touchid;
-        req->grab_window = grab_window;
+        req_XI22->touchid = touchid;
+        req_XI22->grab_window = grab_window;
     }
 
     UnlockDisplay(dpy);

commit 07ced7b48219e3bc0c98806f3d7106f86d1b2ca0
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Tue Jan 17 21:26:14 2012 +0100

    Force class alignment to a multiple of sizeof(XID).
    
    Calculate length field to a multiples of sizeof(XID). XIDs are typedefs
    to ulong and thus may be 8 bytes on some platforms. This can trigger a
    SIGBUS if a class ends up not being 8-aligned (e.g. after XAxisInfo).
    
    Reported-by: Nicolai Stange <nicolai.sta...@zmaw.de>
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    Signed-off-by: Matthieu Herrb <matthieu.he...@laas.fr>

diff --git a/src/XListDev.c b/src/XListDev.c
index 6a16da4..6b91238 100644
--- a/src/XListDev.c
+++ b/src/XListDev.c
@@ -61,6 +61,17 @@ SOFTWARE.
 #include <X11/extensions/extutil.h>
 #include "XIint.h"
 
+/* Calculate length field to a multiples of sizeof(XID). XIDs are typedefs
+ * to ulong and thus may be 8 bytes on some platforms. This can trigger a
+ * SIGBUS if a class ends up not being 8-aligned (e.g. after XAxisInfo).
+ */
+static int pad_to_xid(int base_size)
+{
+    int padsize = sizeof(XID);
+
+    return ((base_size + padsize - 1)/padsize) * padsize;
+}
+
 static int
 SizeClassInfo(xAnyClassPtr *any, int num_classes)
 {
@@ -69,18 +80,18 @@ SizeClassInfo(xAnyClassPtr *any, int num_classes)
     for (j = 0; j < num_classes; j++) {
         switch ((*any)->class) {
             case KeyClass:
-                size += sizeof(XKeyInfo);
+                size += pad_to_xid(sizeof(XKeyInfo));
                 break;
             case ButtonClass:
-                size += sizeof(XButtonInfo);
+                size += pad_to_xid(sizeof(XButtonInfo));
                 break;
             case ValuatorClass:
                 {
                     xValuatorInfoPtr v;
 
                     v = (xValuatorInfoPtr) *any;
-                    size += sizeof(XValuatorInfo) +
-                        (v->num_axes * sizeof(XAxisInfo));
+                    size += pad_to_xid(sizeof(XValuatorInfo) +
+                        (v->num_axes * sizeof(XAxisInfo)));
                     break;
                 }
             default:
@@ -105,7 +116,7 @@ ParseClassInfo(xAnyClassPtr *any, XAnyClassPtr *Any, int 
num_classes)
                     xKeyInfoPtr k = (xKeyInfoPtr) *any;
 
                     K->class = KeyClass;
-                    K->length = sizeof(XKeyInfo);
+                    K->length = pad_to_xid(sizeof(XKeyInfo));
                     K->min_keycode = k->min_keycode;
                     K->max_keycode = k->max_keycode;
                     K->num_keys = k->num_keys;
@@ -117,7 +128,7 @@ ParseClassInfo(xAnyClassPtr *any, XAnyClassPtr *Any, int 
num_classes)
                     xButtonInfoPtr b = (xButtonInfoPtr) *any;
 
                     B->class = ButtonClass;
-                    B->length = sizeof(XButtonInfo);
+                    B->length = pad_to_xid(sizeof(XButtonInfo));
                     B->num_buttons = b->num_buttons;
                     break;
                 }
@@ -129,8 +140,8 @@ ParseClassInfo(xAnyClassPtr *any, XAnyClassPtr *Any, int 
num_classes)
                     xAxisInfoPtr a;
 
                     V->class = ValuatorClass;
-                    V->length = sizeof(XValuatorInfo) +
-                        (v->num_axes * sizeof(XAxisInfo));
+                    V->length = pad_to_xid(sizeof(XValuatorInfo) +
+                        (v->num_axes * sizeof(XAxisInfo)));
                     V->num_axes = v->num_axes;
                     V->motion_buffer = v->motion_buffer_size;
                     V->mode = v->mode;

commit 15feb92b30e13e7439a3434bea9f454645b97444
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Thu Jan 5 13:55:41 2012 +1000

    man: fix typo Mappiing → Mapping
    
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>

diff --git a/man/XSelectExtensionEvent.txt b/man/XSelectExtensionEvent.txt
index cbcfffe..95e0ac7 100644
--- a/man/XSelectExtensionEvent.txt
+++ b/man/XSelectExtensionEvent.txt
@@ -86,7 +86,7 @@ DESCRIPTION
    defined macros include DeviceKeyPress, DeviceKeyRelease,
    DeviceButtonPress, DeviceButtonRelese, DeviceMotionNotify,
    DeviceFocusIn, DeviceFocusOut, ProximityIn, ProximityOut,
-   DeviceStateNotify, DeviceMappiingNotify, ChangeDeviceNotify,
+   DeviceStateNotify, DeviceMappingNotify, ChangeDeviceNotify,
    DevicePointerMotionHint, DeviceButton1Motion,
    DeviceButton2Motion, DeviceButton3Motion, DeviceButton4Motion,
    DeviceButton5Motion, DeviceButtonMotion, DeviceOwnerGrabButton,

commit 8576ae6b9ee974829e2fb8a834087652a6e9e1a2
Author: Cyril Brulebois <k...@debian.org>
Date:   Thu Dec 22 15:50:47 2011 +0100

    configure.ac: Fix a typo in comments.
    
    Signed-off-by: Cyril Brulebois <k...@debian.org>
    Reviewed-by: Chase Douglas <chase.doug...@canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>

diff --git a/configure.ac b/configure.ac
index 79ba97e..481cf44 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,7 +27,7 @@ XORG_CHECK_SGML_DOCTOOLS(1.8)
 XORG_WITH_ASCIIDOC(8.4.5)
 XORG_CHECK_MALLOC_ZERO
 
-# Obtain compiler/linker options for depedencies
+# Obtain compiler/linker options for dependencies
 PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.4.99.1] [xextproto >= 
7.0.3] [xext >= 1.0.99.1] [inputproto >= 2.1.99.3])
 
 # Check for xmlto and asciidoc for man page conversion


-- 
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/e1rvyul-00025n...@vasks.debian.org

Reply via email to