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

libxi: Changes to 'debian-unstable'



 ChangeLog                     |   47 ++++++++++
 configure.ac                  |    4 
 debian/changelog              |   19 +++-
 debian/control                |    4 
 debian/libxi6.symbols         |   51 +++++++++++
 debian/rules                  |    2 
 man/Makefile.am               |   14 ++-
 man/XGetDeviceProperty.man    |  191 ++++++++++++++++++++++++++++++++++++++++++
 man/XListDeviceProperties.man |   95 ++++++++++++++++++++
 man/XListInputDevices.man     |    1 
 src/Makefile.am               |    4 
 src/XChDProp.c                |  106 +++++++++++++++++++++++
 src/XDelDProp.c               |   64 ++++++++++++++
 src/XExtInt.c                 |   19 +++-
 src/XGetDProp.c               |  139 ++++++++++++++++++++++++++++++
 src/XListDProp.c              |   84 ++++++++++++++++++
 16 files changed, 834 insertions(+), 10 deletions(-)

New commits:
commit 5e2f288fe4e3a137f0bd5b1281ee049c93659324
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Feb 16 19:54:18 2009 +0100

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index e7fa55e..f0fc06c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
-libxi (2:1.2.0-2) UNRELEASED; urgency=low
+libxi (2:1.2.0-2) unstable; urgency=low
 
   * Add symbols file.
+  * Upload to unstable.
 
- -- Julien Cristau <jcristau@debian.org>  Fri, 19 Dec 2008 16:26:53 +0100
+ -- Julien Cristau <jcristau@debian.org>  Mon, 16 Feb 2009 19:53:01 +0100
 
 libxi (2:1.2.0-1) experimental; urgency=low
 

commit c56ad36872334ea09fb046ea8882031b528c22c1
Author: Julien Cristau <jcristau@debian.org>
Date:   Sun Dec 21 16:33:57 2008 +0100

    Remove private functions from the symbols file

diff --git a/debian/libxi6.symbols b/debian/libxi6.symbols
index e9c7917..8243f12 100644
--- a/debian/libxi6.symbols
+++ b/debian/libxi6.symbols
@@ -29,7 +29,6 @@ libXi.so.6 libxi6 #MINVER#
  XGrabDevice@Base 0
  XGrabDeviceButton@Base 0
  XGrabDeviceKey@Base 0
- XInput_find_display@Base 0
  XListDeviceProperties@Base 2:1.2.0
  XListInputDevices@Base 0
  XOpenDevice@Base 0
@@ -44,10 +43,7 @@ libXi.so.6 libxi6 #MINVER#
  XUngrabDevice@Base 0
  XUngrabDeviceButton@Base 0
  XUngrabDeviceKey@Base 0
- _XiCheckExtInit@Base 0
- _XiEventToWire@Base 0
  _XiGetDevicePresenceNotifyEvent@Base 2:1.1.2
- _XiGetExtensionVersion@Base 0
  _xibadclass@Base 0
  _xibaddevice@Base 0
  _xibadevent@Base 0

commit e0c3b107aac7b9b6222890ca36f0f2090302c5a1
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Dec 19 16:30:28 2008 +0100

    Add symbols file.

diff --git a/debian/changelog b/debian/changelog
index 5a911fd..e7fa55e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libxi (2:1.2.0-2) UNRELEASED; urgency=low
+
+  * Add symbols file.
+
+ -- Julien Cristau <jcristau@debian.org>  Fri, 19 Dec 2008 16:26:53 +0100
+
 libxi (2:1.2.0-1) experimental; urgency=low
 
   [ Timo Aaltonen ]
diff --git a/debian/libxi6.symbols b/debian/libxi6.symbols
new file mode 100644
index 0000000..e9c7917
--- /dev/null
+++ b/debian/libxi6.symbols
@@ -0,0 +1,55 @@
+libXi.so.6 libxi6 #MINVER#
+ XAllowDeviceEvents@Base 0
+ XChangeDeviceControl@Base 0
+ XChangeDeviceDontPropagateList@Base 0
+ XChangeDeviceKeyMapping@Base 0
+ XChangeDeviceProperty@Base 2:1.2.0
+ XChangeFeedbackControl@Base 0
+ XChangeKeyboardDevice@Base 0
+ XChangePointerDevice@Base 0
+ XCloseDevice@Base 0
+ XDeleteDeviceProperty@Base 2:1.2.0
+ XDeviceBell@Base 0
+ XFreeDeviceControl@Base 0
+ XFreeDeviceList@Base 0
+ XFreeDeviceMotionEvents@Base 0
+ XFreeDeviceState@Base 0
+ XFreeFeedbackList@Base 0
+ XGetDeviceButtonMapping@Base 0
+ XGetDeviceControl@Base 0
+ XGetDeviceDontPropagateList@Base 0
+ XGetDeviceFocus@Base 0
+ XGetDeviceKeyMapping@Base 0
+ XGetDeviceModifierMapping@Base 0
+ XGetDeviceMotionEvents@Base 0
+ XGetDeviceProperty@Base 2:1.2.0
+ XGetExtensionVersion@Base 0
+ XGetFeedbackControl@Base 0
+ XGetSelectedExtensionEvents@Base 0
+ XGrabDevice@Base 0
+ XGrabDeviceButton@Base 0
+ XGrabDeviceKey@Base 0
+ XInput_find_display@Base 0
+ XListDeviceProperties@Base 2:1.2.0
+ XListInputDevices@Base 0
+ XOpenDevice@Base 0
+ XQueryDeviceState@Base 0
+ XSelectExtensionEvent@Base 0
+ XSendExtensionEvent@Base 0
+ XSetDeviceButtonMapping@Base 0
+ XSetDeviceFocus@Base 0
+ XSetDeviceMode@Base 0
+ XSetDeviceModifierMapping@Base 0
+ XSetDeviceValuators@Base 0
+ XUngrabDevice@Base 0
+ XUngrabDeviceButton@Base 0
+ XUngrabDeviceKey@Base 0
+ _XiCheckExtInit@Base 0
+ _XiEventToWire@Base 0
+ _XiGetDevicePresenceNotifyEvent@Base 2:1.1.2
+ _XiGetExtensionVersion@Base 0
+ _xibadclass@Base 0
+ _xibaddevice@Base 0
+ _xibadevent@Base 0
+ _xibadmode@Base 0
+ _xidevicebusy@Base 0

commit cdc81f6f9d53862da1d19b8461ee4c81278c2ecd
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Dec 19 15:55:33 2008 +0100

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index 978f68c..5a911fd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-libxi (2:1.2.0-1) UNRELEASED; urgency=low
+libxi (2:1.2.0-1) experimental; urgency=low
 
   [ Timo Aaltonen ]
   * New upstream release.
@@ -20,7 +20,7 @@ libxi (2:1.2.0-1) UNRELEASED; urgency=low
   [ Brice Goglin ]
   * Add a link to www.X.org in the long description.
 
- -- Brice Goglin <bgoglin@debian.org>  Fri, 13 Jun 2008 11:19:59 +0200
+ -- Julien Cristau <jcristau@debian.org>  Fri, 19 Dec 2008 15:55:22 +0100
 
 libxi (2:1.1.4-1) unstable; urgency=low
 

commit 500333aa355f339e21f3fc33b51a93a84c96b957
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Dec 19 15:55:10 2008 +0100

    update upstream changelog

diff --git a/ChangeLog b/ChangeLog
index 5568415..90418e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,50 @@
+commit 2d586065649304b2864afddee6f6225a4a61a0c9
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Wed Dec 3 12:50:45 2008 +1000
+
+    libXi 1.2.0
+    
+    Requires inputproto 1.5.0 or later.
+
+commit 305d356e43462834a2fdd2cf59d47b055c2416fd
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Mon Nov 17 11:50:06 2008 +1000
+
+    Add support for XI 1.5 device properties.
+    
+    This is a manual merge from master onto libXi 1.1.4. The branches have
+    diverged too much to make cherry-picking reasonable and readable.
+    
+    This patch includes the property support provided by the combination of the
+    following patches:
+    - 7d5bb99ffce3200f82420c5a5ebac3b445aac633
+    - 0211e3e8277c590349903989f1676f6af4baa44b
+    - bfd2e08f3530091fbcd8c078f684e9aab9057df0
+    - bec02767629ed795582ba3f645299d7036093511
+    - f9a5371d43b2c6023745f766d0e8ceff2acdff60
+    - e179b124aac13387c6f730197b8852c1f69eb9e3
+    
+    Man pages are copied from the parsed docbook output from master.
+
+commit 45b73dc157f326785e1022f5476bfc1f9f514d6e
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Mon Nov 17 11:44:31 2008 +1000
+
+    Add XI_JOYSTICK to list of defined types.
+    (cherry picked from commit e5c529813b04327babc20e51ca56006210cb0c37)
+    
+    Conflicts:
+    
+    	man/XI.xml
+
+commit 88e2bf75cc619bb1ddc51e5dc65ddb9d712f69f5
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Mon Nov 17 11:35:59 2008 +1000
+
+    Bump to 1.1.99.2.
+    
+    1.1.99.1 was used by master for a while.
+
 commit f0ecfd1952289f5ff33297e3358552365e047f09
 Author: Peter Hutterer <peter.hutterer@redhat.com>
 Date:   Mon Nov 17 11:12:39 2008 +1000

commit ef696d84a73347593ccc3ff9fd9994335f7c528c
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Dec 19 15:51:40 2008 +0100

    Bump libxi-dev's dependency on x11proto-input-dev to 1.5 as well.
    
    Also merge previous unreleased changelog entry

diff --git a/debian/changelog b/debian/changelog
index accfb98..978f68c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,15 +1,12 @@
 libxi (2:1.2.0-1) UNRELEASED; urgency=low
 
+  [ Timo Aaltonen ]
   * New upstream release.
   * debian/control:
     - Bump x11proto-input-dev build-dep to 1.5.
   * debian/rules:
     - Bump the shlibs for libxi6.
 
- -- Timo Aaltonen <tepsipakki@ubuntu.com>  Wed, 03 Dec 2008 19:21:26 +0200
-
-libxi (2:1.1.4-2) UNRELEASED; urgency=low
-
   [ Julien Cristau ]
   * Drop -1 debian revisions from build-deps.
   * Bump Standards-Version to 3.7.3.
@@ -18,6 +15,7 @@ libxi (2:1.1.4-2) UNRELEASED; urgency=low
   * Wrap build-deps in debian/control.
   * Build-depend on automake and libtool, run autoreconf on build, and allow
     parallel builds.
+  * Bump libxi-dev's dependency on x11proto-input-dev to 1.5 as well.
 
   [ Brice Goglin ]
   * Add a link to www.X.org in the long description.
diff --git a/debian/control b/debian/control
index c4a14bb..a7ddf3b 100644
--- a/debian/control
+++ b/debian/control
@@ -64,7 +64,7 @@ Description: X11 Input extension library (debug package)
 Package: libxi-dev
 Section: libdevel
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libxi6 (= ${binary:Version}), libx11-dev, libxext-dev, x11proto-input-dev
+Depends: ${shlibs:Depends}, ${misc:Depends}, libxi6 (= ${binary:Version}), libx11-dev, libxext-dev, x11proto-input-dev (>= 1.5)
 Pre-Depends: x11-common (>= 1:7.0.0)
 Description: X11 Input extension library (development headers)
  libXi provides an X Window System client interface to the XINPUT

commit 9c1742d7ac84548b50d184d46e59f392b7ac4acf
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date:   Wed Dec 3 19:21:54 2008 +0200

    Bump the shlibs for libxi6.

diff --git a/debian/changelog b/debian/changelog
index 1272ec1..accfb98 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,8 +3,10 @@ libxi (2:1.2.0-1) UNRELEASED; urgency=low
   * New upstream release.
   * debian/control:
     - Bump x11proto-input-dev build-dep to 1.5.
+  * debian/rules:
+    - Bump the shlibs for libxi6.
 
- -- Timo Aaltonen <tepsipakki@ubuntu.com>  Wed, 03 Dec 2008 10:09:00 +0200
+ -- Timo Aaltonen <tepsipakki@ubuntu.com>  Wed, 03 Dec 2008 19:21:26 +0200
 
 libxi (2:1.1.4-2) UNRELEASED; urgency=low
 
diff --git a/debian/rules b/debian/rules
index b65f619..493e832 100755
--- a/debian/rules
+++ b/debian/rules
@@ -87,7 +87,7 @@ binary-arch: build install
 	dh_strip --dbg-package=$(PACKAGE)-dbg
 	dh_compress
 	dh_fixperms
-	dh_makeshlibs
+	dh_makeshlibs -V'libxi6 (>= 2:1.2.0)'
 	dh_shlibdeps
 	dh_installdeb
 	dh_gencontrol

commit bf1a000c4ba7ff907b5b0fe7ec55fcfa75aebebc
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date:   Wed Dec 3 10:10:37 2008 +0200

    Bump x11proto-input-dev build-dep to 1.5.

diff --git a/debian/changelog b/debian/changelog
index b793af0..1272ec1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+libxi (2:1.2.0-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+  * debian/control:
+    - Bump x11proto-input-dev build-dep to 1.5.
+
+ -- Timo Aaltonen <tepsipakki@ubuntu.com>  Wed, 03 Dec 2008 10:09:00 +0200
+
 libxi (2:1.1.4-2) UNRELEASED; urgency=low
 
   [ Julien Cristau ]
diff --git a/debian/control b/debian/control
index bda63f4..c4a14bb 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Build-Depends:
  debhelper (>= 5.0.0),
  libx11-dev (>= 1:0.99.2),
  libxext-dev (>= 1:0.99.1),
- x11proto-input-dev (>= 1.4),
+ x11proto-input-dev (>= 1.5),
  pkg-config,
  quilt,
  xutils-dev,

commit 2d586065649304b2864afddee6f6225a4a61a0c9
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Wed Dec 3 12:50:45 2008 +1000

    libXi 1.2.0
    
    Requires inputproto 1.5.0 or later.

diff --git a/configure.ac b/configure.ac
index b02c5e8..aded614 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to create configure.
 
 AC_PREREQ([2.57])
 
-AC_INIT(libXi, 1.1.99.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
+AC_INIT(libXi, 1.2.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
 AM_INIT_AUTOMAKE([dist-bzip2])
 AM_MAINTAINER_MODE
 
@@ -15,7 +15,7 @@ AC_PROG_CC
 AC_PROG_LIBTOOL
 
 # Checks for pkg-config packages
-PKG_CHECK_MODULES(XI, xproto x11 xextproto xext inputproto >= 1.4)
+PKG_CHECK_MODULES(XI, xproto x11 xextproto xext inputproto >= 1.5)
 AC_SUBST(XI_CFLAGS)
 AC_SUBST(XI_LIBS)
 

commit 305d356e43462834a2fdd2cf59d47b055c2416fd
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Mon Nov 17 11:50:06 2008 +1000

    Add support for XI 1.5 device properties.
    
    This is a manual merge from master onto libXi 1.1.4. The branches have
    diverged too much to make cherry-picking reasonable and readable.
    
    This patch includes the property support provided by the combination of the
    following patches:
    - 7d5bb99ffce3200f82420c5a5ebac3b445aac633
    - 0211e3e8277c590349903989f1676f6af4baa44b
    - bfd2e08f3530091fbcd8c078f684e9aab9057df0
    - bec02767629ed795582ba3f645299d7036093511
    - f9a5371d43b2c6023745f766d0e8ceff2acdff60
    - e179b124aac13387c6f730197b8852c1f69eb9e3
    
    Man pages are copied from the parsed docbook output from master.

diff --git a/man/Makefile.am b/man/Makefile.am
index 9efc88c..c8c7624 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -51,7 +51,9 @@ libman_PRE = \
 	XSetDeviceButtonMapping.man \
 	XSetDeviceFocus.man \
 	XSetDeviceMode.man \
-	XSetDeviceValuators.man
+	XSetDeviceValuators.man \
+	XListDeviceProperties.man \
+	XGetDeviceProperty.man
 
 BUILT_SOURCES = shadows.DONE
 
@@ -89,7 +91,8 @@ all_shadows =                                \
     $(XOpenDevice_shadows)                   \
     $(XSetDeviceButtonMapping_shadows)       \
     $(XSetDeviceFocus_shadows)               \
-    $(XSelectExtensionEvent_shadows)
+    $(XSelectExtensionEvent_shadows)         \
+    $(XGetDeviceProperty_shadows)
 
 
 XGetDeviceControl_shadows =                 \
@@ -134,6 +137,10 @@ XSetDeviceFocus_shadows =                   \
 XSelectExtensionEvent_shadows =             \
     XGetSelectedExtensionEvents
 
+XGetDeviceProperty_shadows =                \
+    XDeleteDeviceProperty \
+    XChangeDeviceProperty
+
 shadows.DONE:
 	-rm -f $(all_shadows:=.@LIB_MAN_SUFFIX@)
 	(for i in $(XGetDeviceControl_shadows:=.@LIB_MAN_SUFFIX@) ; do \
@@ -178,3 +185,6 @@ shadows.DONE:
 	(for i in $(XSelectExtensionEvent_shadows:=.@LIB_MAN_SUFFIX@) ; do \
 	 echo .so man$(LIB_MAN_DIR_SUFFIX)/XSelectExtensionEvent.$(LIB_MAN_SUFFIX) > $$i; \
 	 done)
+	(for i in $(XGetDeviceProperty_shadows:=.@LIB_MAN_SUFFIX@) ; do \
+	 echo .so man$(LIB_MAN_DIR_SUFFIX)/XGetDeviceProperty.$(LIB_MAN_SUFFIX) > $$i; \
+	 done)
diff --git a/man/XGetDeviceProperty.man b/man/XGetDeviceProperty.man
new file mode 100644
index 0000000..6944457
--- /dev/null
+++ b/man/XGetDeviceProperty.man
@@ -0,0 +1,191 @@
+.\"     Title: XGetDeviceProperty
+.\"    Author: Peter Hutterer
+.\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/>
+.\"      Date: <pubdate>July 9, 2008</pubdate>
+.\"    Manual: XINPUT FUNCTIONS
+.\"    Source: __xorgversion__
+.\"
+.TH "XGETDEVICEPROPERTY" "__libmansuffix__" "<pubdate>July 9, 2008</pubdate>" "__xorgversion__" "XINPUT FUNCTIONS"
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.SH "NAME"
+XGetDeviceProperty, XChangeDeviceProperty, XDeleteDeviceProperty - Get, change or delete a device's property.
+.SH "SYNTAX"
+.sp
+.ft B
+.nf
+#include <X11/extensions/XInput\.h>
+.fi
+.ft
+.HP 23
+.BI "int XGetDeviceProperty(Display\ *" "display" ", XDevice\ *" "device" ", Atom\ " "property" ", long\ " "offset" ", long\ " "length" ", Bool\ " "delete" ", Bool\ " "pending" ", Atom\ " "req_type" ", Atom\ *" "actual_type_return" ", int\ *" "actual_format_return" ", unsigned\ long\ *" "nitems_return" ", unsigned\ long\ *" "bytes_after_return" ", unsigned\ char\ **" "prop_return" ");"
+.HP 27
+.BI "void XChangeDeviceProperty(Display\ *" "display" ", XDevice\ *" "device" ", Atom\ " "property" ", Atom\ " "type" ", int\ " "format" ", int\ " "mode" ", const\ char\ *" "data" ", int\ " "nelements" ");"
+.HP 27
+.BI "void XDeleteDeviceProperty(Display\ *" "display" ", XDevice\ *" "device" ", Atom\ " "property" ");"
+.SH "ARGUMENTS"
+.PP
+.PP
+\fIactual_type_return\fR
+.RS 4
+Returns an atom identifier that defines the actual type of the property\.
+.RE
+.PP
+\fIactual_format_return\fR
+.RS 4
+Returns the actual format of the property\.
+.RE
+.PP
+\fIbytes_after_return\fR
+.RS 4
+Returns the number of bytes remaining to be read in the property if a partial read was performed\.
+.RE
+.PP
+\fIdata\fR
+.RS 4
+Specifies the property data\.
+.RE
+.PP
+\fIdelete\fR
+.RS 4
+Specifies a Boolean value that determines wether the property is deleted\.
+.RE
+.PP
+\fIdisplay\fR
+.RS 4
+Specifies the connection to the X server\.
+.RE
+.PP
+\fIdevice\fR
+.RS 4
+The device to grab\.
+.RE
+.PP
+\fIformat\fR
+.RS 4
+Specifies whether the data should be viewed as a list of 8\-bit, 16\-bit, or 32\-bit quantities\. Possible values are 8, 16, and 32\. This information allows the X server to correctly perform byte\-swap operations as necessary\. If the format is 16\-bit or 32\-bit, you must explicitly cast the data pointer to an (unsigned char*) in the call to
+\fBXChangeDeviceProperty\fR\.
+.RE
+.PP
+\fIlength\fR
+.RS 4
+Specifies the length in 32\-bit multiplies of the data to be retrieved\.
+.RE
+.PP
+\fImode\fR
+.RS 4
+Specifies the mode of operation\. You can pass
+\fBPropModeReplace\fR,
+\fBPropModePrepend\fR, or
+\fBPropModeAppend\fR\.
+.RE
+.PP
+\fInelements\fR
+.RS 4
+Specifies the number of elements in data\.
+.RE
+.PP
+\fInitems_return\fR
+.RS 4
+Returns the actual number of 8\-bit, 16\-bit, or 32\-bit items stored in the prop_return array\.
+.RE
+.PP
+\fInum_values\fR
+.RS 4
+Specifies the number of elements in the values list\.
+.RE
+.PP
+\fIoffset\fR
+.RS 4
+Specifies the offset in the specified property (in 32\-bit quantities) where the data is to be retrieved\.
+.RE
+.PP
+\fIpending\fR
+.RS 4
+Specifies whether to retrieve the pending state of the property or the current state\.
+.RE
+.PP
+\fIproperty\fR
+.RS 4
+Specifies the property to modify or query\.
+.RE
+.PP
+\fIprop_return\fR
+.RS 4
+Returns the data in the specified format\. If the returned format is 8, the returned data is represented as a char array\. If the returned format is 16, the returned data is represented as an array of short int type and should be cast to that type to obtain the elements\. If the returned format is 32, the property data will be stored as an array of longs (which in a 64\-bit application will be 64\-bit values that are padded in the upper 4 bytes)\.
+.RE
+.PP
+\fIreq_type\fR
+.RS 4
+Specifies the atom identifier associated with the property type or
+\fBAnyPropertyType\fR\.
+.RE
+.SH "DESCRIPTION"
+.PP
+The
+\fBXGetDeviceProperty\fR
+function returns the actual type of the property; the actual format of the property; the number of 8\-bit, 16\-bit, or 32\-bit items transferred; the number of bytes remaining to be read in the property; and a pointer to the data actually returned\. For a detailed description of this function, see the man page to
+\fBXGetWindowProperty\fR\.
+.PP
+The
+\fBXChangeDeviceProperty\fR
+function alters the property for the specified device and causes the server to generate a
+\fBXPropertyNotifyEvent\fR
+event on that device\. For a detailed description of this function, see the man page to
+\fBXChangeProperty\fR\.
+.PP
+The
+\fBXDeleteDeviceProperty\fR
+function deletes the specified device property\. Note that a client cannot delete a property created by a driver or the server\. Attempting to do so will result in a
+BadAtom
+error\.
+.PP
+
+\fBXGetDeviceProperty\fR
+can generate a
+BadAtom,
+BadDevice
+error\.
+.PP
+
+\fBXChangeDeviceProperty\fR
+can generate a
+BadDevice, a
+BadMatch, a
+BadAtom, and a
+BadValue
+error\.
+.PP
+
+\fBXDeleteDeviceProperty\fR
+can generate a
+BadDevice, and a
+BadAtom
+error\.
+.SH "DIAGNOSIS"
+.PP
+.PP
+BadAtom
+.RS 4
+A value does not describe a valid named identifier or the client attempted to remove a driver\-allocated property\.
+.RE
+.PP
+BadDevice
+.RS 4
+An invalid device was specified\. The device does not exist\.
+.RE
+.SH "SEE ALSO"
+.PP
+
+\fBXListDeviceProperties\fR,
+\fBXQueryDeviceProperty\fR,
+\fBXConfigureDeviceProperty\fR\.
+.SH "AUTHOR"
+.PP
+\fBPeter Hutterer\fR
+.sp -1n
+.IP "" 4
+Specification and implementation\.
+
diff --git a/man/XListDeviceProperties.man b/man/XListDeviceProperties.man
new file mode 100644
index 0000000..4f986fc
--- /dev/null
+++ b/man/XListDeviceProperties.man
@@ -0,0 +1,95 @@
+.\"     Title: XListDeviceProperties
+.\"    Author: Peter Hutterer
+.\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/>
+.\"      Date: <pubdate>July 9, 2008</pubdate>
+.\"    Manual: XINPUT FUNCTIONS
+.\"    Source: __xorgversion__
+.\"
+.TH "XLISTDEVICEPROPERTIE" "__libmansuffix__" "<pubdate>July 9, 2008</pubdate>" "__xorgversion__" "XINPUT FUNCTIONS"
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.SH "NAME"
+XListDeviceProperties - List a device's properties.
+.SH "SYNTAX"
+.sp
+.ft B
+.nf
+#include <X11/extensions/XInput\.h>
+.fi
+.ft
+.HP 28
+.BI "Atom* XListDeviceProperties(Display\ *" "display" ", XDevice\ *" "device" ", int\ *" "nprops_return" ");"
+.SH "ARGUMENTS"
+.PP
+.PP
+\fIdisplay\fR
+.RS 4
+Specifies the connection to the X server\.
+.RE
+.PP
+\fIdevice\fR
+.RS 4
+The device to grab\.
+.RE
+.PP
+\fInprops_return\fR
+.RS 4
+Specifies the number of Atoms returned\.
+.RE
+.PP
+\fInum_values\fR
+.RS 4
+Specifies the number of elements in the values list\.
+.RE
+.PP
+\fIproperty\fR
+.RS 4
+Specifies the property to modify or query\.
+.RE
+.SH "DESCRIPTION"
+.PP
+The
+\fBXListDeviceProperties\fR
+function returns a list of the properties associated with the input device specified in
+\fIdevice\fR\. Each device may have an arbitrary number of properties attached, some of which were created by the driver and/or server, others created by clients at runtime\.
+.PP
+The client is expected to free the list of properties using
+\fBXFree\fR\.
+.PP
+
+\fBXListDeviceProperties\fR
+can generate a
+BadDevice
+error\.
+.SH "DIAGNOSIS"
+.PP
+.PP
+BadAtom
+.RS 4
+A value does not describe a valid named identifier\.
+.RE
+.PP
+BadWindow
+.RS 4
+A value for a Window argument does not name a defined window\.
+.RE
+.PP
+BadDevice
+.RS 4
+An invalid device was specified\. The device does not exist\.
+.RE
+.SH "SEE ALSO"
+.PP
+
+\fBXChangeDeviceProperty\fR,
+\fBXGetDeviceProperty\fR,
+\fBXDeleteDeviceProperty\fR\.
+.SH "AUTHOR"
+.PP
+\fBPeter Hutterer\fR
+.sp -1n
+.IP "" 4
+Specification and implementation\.
+
diff --git a/src/Makefile.am b/src/Makefile.am
index a02428c..1e7de91 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,15 +6,18 @@ libXi_la_SOURCES = \
 		  XAllowDv.c \
 		  XChgDCtl.c \
 		  XChgFCtl.c \
+		  XChDProp.c \
 		  XChgKbd.c \
 		  XChgKMap.c \
 		  XChgPnt.c \
 		  XChgProp.c \
 		  XCloseDev.c \
+		  XDelDProp.c \
 		  XDevBell.c \
 		  XExtToWire.c \
 		  XGetBMap.c \
 		  XGetDCtl.c \
+		  XGetDProp.c \
 		  XGetFCtl.c \
 		  XGetKMap.c \
 		  XGetMMap.c \
@@ -27,6 +30,7 @@ libXi_la_SOURCES = \
 		  XGtFocus.c \
 		  XGtSelect.c \
 		  XListDev.c \
+		  XListDProp.c \
 		  XOpenDev.c \
 		  XQueryDv.c \
 		  XSelect.c \
diff --git a/src/XChDProp.c b/src/XChDProp.c
new file mode 100644
index 0000000..c863cdb
--- /dev/null
+++ b/src/XChDProp.c
@@ -0,0 +1,106 @@
+/************************************************************
+
+Copyright 2008 Peter Hutterer
+
+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
+AUTHOR 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 author 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 author.
+
+*/
+
+/***********************************************************************
+ * XChangeDeviceProperties - change an input device's properties.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <X11/Xlibint.h>
+#include <X11/extensions/XI.h>
+#include <X11/extensions/XIproto.h>
+#include <X11/extensions/XInput.h>
+#include <X11/extensions/extutil.h>
+#include "XIint.h"
+
+void
+XChangeDeviceProperty(Display* dpy, XDevice* dev,
+                      Atom property, Atom type,
+                      int format, int mode,
+                      _Xconst unsigned char *data, int nelements)
+{
+    xChangeDevicePropertyReq   *req;
+    int                         len;
+
+    XExtDisplayInfo *info = XInput_find_display(dpy);
+
+    LockDisplay(dpy);
+    if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1)
+	return;
+
+    GetReq(ChangeDeviceProperty, req);
+    req->reqType    = info->codes->major_opcode;
+    req->ReqType    = X_ChangeDeviceProperty;
+    req->deviceid   = dev->device_id;
+    req->property   = property;
+    req->type       = type;
+    req->mode       = mode;
+    if (nelements < 0) {
+	req->nUnits = 0;
+	req->format = 0; /* ask for garbage, get garbage */
+    } else {
+	req->nUnits = nelements;
+	req->format = format;
+    }
+
+    switch (req->format) {
+    case 8:
+	len = ((long)nelements + 3) >> 2;
+	if (dpy->bigreq_size || req->length + len <= (unsigned) 65535) {
+	    SetReqLen(req, len, len);
+	    Data (dpy, (char *)data, nelements);
+	} /* else force BadLength */
+	break;
+
+    case 16:
+	len = ((long)nelements + 1) >> 1;
+	if (dpy->bigreq_size || req->length + len <= (unsigned) 65535) {
+	    SetReqLen(req, len, len);
+	    len = (long)nelements << 1;
+	    Data16 (dpy, (short *) data, len);
+	} /* else force BadLength */
+	break;
+
+    case 32:
+	len = nelements;
+	if (dpy->bigreq_size || req->length + len <= (unsigned) 65535) {
+	    SetReqLen(req, len, len);
+	    len = (long)nelements << 2;
+	    Data32 (dpy, (long *) data, len);
+	} /* else force BadLength */
+	break;
+
+    default:
+	/* BadValue will be generated */ ;
+    }
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+}
+
diff --git a/src/XDelDProp.c b/src/XDelDProp.c
new file mode 100644
index 0000000..d6594c4
--- /dev/null
+++ b/src/XDelDProp.c
@@ -0,0 +1,64 @@
+/************************************************************
+
+Copyright 2008 Peter Hutterer
+
+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
+AUTHOR 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 author 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 author.
+
+*/
+
+/***********************************************************************
+ * XDeleteDeviceProperties - delete an input device's properties.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <X11/Xlibint.h>
+#include <X11/extensions/XI.h>
+#include <X11/extensions/XIproto.h>
+#include <X11/extensions/XInput.h>
+#include <X11/extensions/extutil.h>
+#include "XIint.h"
+
+void
+XDeleteDeviceProperty(Display* dpy, XDevice* dev, Atom property)
+{
+    xDeleteDevicePropertyReq   *req;
+
+    XExtDisplayInfo *info = XInput_find_display(dpy);
+
+    LockDisplay(dpy);
+    if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1)
+	return;
+
+    GetReq(DeleteDeviceProperty, req);
+    req->reqType    = info->codes->major_opcode;
+    req->ReqType    = X_DeleteDeviceProperty;
+    req->deviceid   = dev->device_id;
+    req->property   = property;
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+    return;
+}
+
diff --git a/src/XExtInt.c b/src/XExtInt.c
index 10f728d..d448406 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
@@ -121,7 +121,9 @@ XEXT_GENERATE_FIND_DISPLAY(XInput_find_display, xinput_info,
     {XI_Present, XI_Add_XChangeDeviceControl_Major,
      XI_Add_XChangeDeviceControl_Minor},
     {XI_Present, XI_Add_DevicePresenceNotify_Major,
-     XI_Add_DevicePresenceNotify_Minor}
+     XI_Add_DevicePresenceNotify_Minor},
+    {XI_Present, XI_Add_DeviceProperties_Major,
+        XI_Add_DeviceProperties_Minor},
     };
 
 /***********************************************************************
@@ -697,6 +699,21 @@ XInputWireToEvent(dpy, re, event)
     }
 	break;
 
+    case XI_DevicePropertyNotify:
+
+        {
+            XDevicePropertyNotifyEvent* ev = (XDevicePropertyNotifyEvent*)re;
+            devicePropertyNotify *ev2 = (devicePropertyNotify*)event;
+
+            *ev = *(XDevicePropertyNotifyEvent*)save;
+            ev->time = ev2->time;
+            ev->deviceid = ev2->deviceid;
+            ev->atom = ev2->atom;
+            ev->state = ev2->state;


Reply to: