Hello community, here is the log from the commit of package xf86-input-wacom for openSUSE:Factory checked in at 2013-08-19 10:53:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xf86-input-wacom (Old) and /work/SRC/openSUSE:Factory/.xf86-input-wacom.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-input-wacom" Changes: -------- --- /work/SRC/openSUSE:Factory/xf86-input-wacom/xf86-input-wacom.changes 2013-06-25 14:47:18.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xf86-input-wacom.new/xf86-input-wacom.changes 2013-08-19 10:53:16.000000000 +0200 @@ -1,0 +2,27 @@ +Sat Aug 17 21:31:14 UTC 2013 - [email protected] + +- Update to version 0.22.1: + + Fix build on ABI < 16 - touch_mask isn't defined. +- Changes from version 0.22.0: + + Unify wcmFingerMultitouch and wcmSendTouchEvent. + + Transform touch events just like all other events. + + Add support for 0xEC. +- Changes from version 0.21.99.1: + + Add xf86OptionListFree for distcheck. + + Don't emulate a mouse when multitouch is enabled. + + Add support for Cintiq 22HDT and 13HD, DTK2241 and DTH2242. + + Don't init abswheel2 valuator (7th val) if we don't have one. + + Free the device name after reassigning. + + Free the touch mask on shutdown. + + Free input attribute's product. + + Free duplicated option list after conversion to InputOption. + + Plug memory leaks left by xf86SetStrOption. + + Purge TILT_REQUEST_FLAG + + man: clarify how to configure keys on higher shift levels in + xsetwacom. + + xsetwacom: + - Map a bunch of special symbols. + - If we fail to map a string, try as special key or warn. + - Add special mappings for Home, End, Delete. + +------------------------------------------------------------------- Old: ---- xf86-input-wacom-0.21.0.tar.bz2 New: ---- xf86-input-wacom-0.22.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xf86-input-wacom.spec ++++++ --- /var/tmp/diff_new_pack.WoNNAO/_old 2013-08-19 10:53:17.000000000 +0200 +++ /var/tmp/diff_new_pack.WoNNAO/_new 2013-08-19 10:53:17.000000000 +0200 @@ -23,7 +23,7 @@ %endif Name: xf86-input-wacom -Version: 0.21.0 +Version: 0.22.1 Release: 0 Summary: Wacom input driver for the Xorg X server License: GPL-2.0+ ++++++ xf86-input-wacom-0.21.0.tar.bz2 -> xf86-input-wacom-0.22.1.tar.bz2 ++++++ ++++ 2843 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/ChangeLog new/xf86-input-wacom-0.22.1/ChangeLog --- old/xf86-input-wacom-0.21.0/ChangeLog 2013-04-29 22:18:17.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/ChangeLog 2013-07-15 19:06:35.000000000 +0200 @@ -1,3 +1,309 @@ +commit b25eb646c36d19a46c561b3c091adb5c86c563df +Author: Peter Hutterer <[email protected]> +Date: Fri Jul 12 10:28:08 2013 +1000 + + Fix build on ABI < 16 - touch_mask isn't defined + + Fixes: http://sourceforge.net/p/linuxwacom/bugs/232 + + Signed-off-by: Peter Hutterer <[email protected]> + +commit 4982cebdadb32376c3b1964616ede44a712c8a24 +Author: Jason Gerecke <[email protected]> +Date: Wed Jul 10 11:49:29 2013 -0700 + + wacom 0.22.0 + + Signed-off-by: Jason Gerecke <[email protected]> + +commit 67daf21bdb7b32c27818bffaf56849a522d23477 +Author: Ping Cheng <[email protected]> +Date: Fri Jun 7 15:34:03 2013 -0700 + + Unify wcmFingerMultitouch and wcmSendTouchEvent + + Signed-off-by: Ping Cheng <[email protected]> + Acked-by: Jason Gerecke <[email protected]> + +commit d0a5c68b2582fc6bdcee1d949913f78c0651b1a6 +Author: Sjoerd Simons <[email protected]> +Date: Sat May 25 01:06:16 2013 +0200 + + Transform touch events just like all other events + + Transform touch coordinates in the same way as other events coming from + the wacom driver otherwise setting for exmaple the Wacom Rotation + property has no effect + + Signed-off-by: Sjoerd Simons <[email protected]> + Acked-by: Jason Gerecke <[email protected]> + +commit 8e5b56e7a461c416d5b29f338bbd749626452b5d +Author: Jason Gerecke <[email protected]> +Date: Wed Jul 10 13:50:55 2013 -0700 + + Revert "Transform touch events just like all other events" + + This reverts commit bfb56bf858e08d95156d52cec9744d3d3251b59c. + This commit will be split in two to provide proper credit for + each of the two authors. + + Signed-off-by: Jason Gerecke <[email protected]> + +commit 85b62fa528564607875a88babab11dd6d2481b04 +Author: Ping Cheng <[email protected]> +Date: Tue Jul 2 11:25:59 2013 -0700 + + Add support for 0xEC. + + It is a Wacom device found in Samsung Ativ Smart PC Pro 700t. + + Signed-off-by: Ping Cheng <[email protected]> + Signed-off-by: Peter Hutterer <[email protected]> + +commit a2c57c0104e2aee3e3f2544b094d443e20f076cb +Author: Peter Hutterer <[email protected]> +Date: Wed Jul 3 09:35:30 2013 +1000 + + Revert "Add support for 0xED." + + Typo in commit message, tablet is actually 0xEC. Revert and re-commit to + make the patch easier to find. + + This reverts commit 8488c2af5bdd6dc4d049dc6d895c50c5f34aea14. + +commit 8488c2af5bdd6dc4d049dc6d895c50c5f34aea14 +Author: Ping Cheng <[email protected]> +Date: Tue Jul 2 11:25:59 2013 -0700 + + Add support for 0xED. + + It is a Wacom device found in Samsung Ativ Smart PC Pro 700t. + + Signed-off-by: Ping Cheng <[email protected]> + +commit 361ac83d06159ec02bf33237eb5ec24652c8b700 +Author: Ping Cheng <[email protected]> +Date: Fri Jun 14 16:03:18 2013 -0700 + + wacom 0.21.99.1 + + Signed-off-by: Ping Cheng <[email protected]> + +commit 4f7d24c2138685a9881c7b5314747dc17d7cc147 +Author: Ping Cheng <[email protected]> +Date: Fri Jun 14 15:57:16 2013 -0700 + + Add xf86OptionListFree for distcheck + + Signed-off-by: Ping Cheng <[email protected]> + +commit bfb56bf858e08d95156d52cec9744d3d3251b59c +Author: Ping Cheng <[email protected]> +Date: Fri Jun 7 15:34:03 2013 -0700 + + Transform touch events just like all other events + + Transform touch coordinates in the same way as other events coming from + the wacom driver otherwise setting for exmaple the Wacom Rotation + property has no effect + + Signed-off-by: Sjoerd Simons <[email protected]> + Acked-by: Jason Gerecke <[email protected]> + Signed-off-by: Ping Cheng <[email protected]> + +commit f38dd5736e2df7c3eec0338bd0c7bef8c562b979 +Author: Ping Cheng <[email protected]> +Date: Thu Jun 6 18:25:52 2013 -0700 + + Don't emulate a mouse when multitouch is enabled + + Currently when enabling XI 1.2 multitouch events the Wacom driver does a + strange mix of emulating a mouse (when there is only touch) and + switches suddenly switches to be a touchscreen when 2 fingers are down. + + Change this to only send touch events when using multitouch mode, such + that the touchscreen works the same as other touchscreens. This enables + applications to properly respond to one finger touches (e.g. panning + in GTK+). + + The X server core will still send emulated input events to applications + not supporting multitouch, so there shouldn't be a regression for those + applications. + + Signed-off-by: Sjoerd Simons <[email protected]> + Acked-by: Jason Gerecke <[email protected]> + Signed-off-by: Ping Cheng <[email protected]> + +commit 3578b919360e7a4d6cfbbe4c33c3084be0c6d5c9 +Author: Ping Cheng <[email protected]> +Date: Fri May 17 15:11:39 2013 -0700 + + Add support for Cintiq 22HDT and 13HD, DTK2241 and DTH2242. + + Signed-off-by: Ping Cheng <[email protected]> + Reviewed-by: Peter Hutterer <[email protected]> + Signed-off-by: Peter Hutterer <[email protected]> + +commit 2dffd217b112c346c6c0b07e82cb069a3cf84246 +Author: Peter Hutterer <[email protected]> +Date: Thu May 9 13:31:38 2013 +1000 + + Don't init abswheel2 valuator (7th val) if we don't have one + + InitValuatorAxisStruct() will return if the axisnum > num_axes and not + initialise anything which is why the current code worked without issues. + + With a new patch to the server this will now complain with an error message + to the log. + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit b350a95717ac04a0bed1d836a0b90c94724dc597 +Author: Peter Hutterer <[email protected]> +Date: Thu May 9 13:45:15 2013 +1000 + + Free the device name after reassigning + + When hotplugging the first tool (usually the stylus) changes pInfo->name to + the name + tool name. Thus, free the original one. + + And strdup the oldname so we can unconditially free it, regardless of + whether we changed the actual device name or not. + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit 06abd7a61323034bd58e745a18f0b08723de0064 +Author: Peter Hutterer <[email protected]> +Date: Thu May 9 13:14:45 2013 +1000 + + Free the touch mask on shutdown + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit 6d26cb9b9f71bfec1c388a72dcbb09f09f31bd04 +Author: Peter Hutterer <[email protected]> +Date: Thu May 9 11:21:40 2013 +1000 + + Free input attribute's product + + This is copied first by DuplicateInputAttributes, then asprintf makes + another copy. + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit dff311a44c13687c12e86d8233f15bb0f8868361 +Author: Peter Hutterer <[email protected]> +Date: Thu May 9 10:55:33 2013 +1000 + + Free duplicated option list after conversion to InputOption + + The duplicated list is a copy (as the comment in the server says) and thus + must be freed. + + ==27895== 947 (40 direct, 907 indirect) bytes in 1 blocks are definitely lost in loss record 266 of 311 + ==27895== at 0x4A06B6F: calloc (vg_replace_malloc.c:593) + ==27895== by 0x4E538C: addNewOption2 (Flags.c:203) + ==27895== by 0x4E5401: xf86addNewOption (Flags.c:216) + ==27895== by 0x4AEB24: xf86AddNewOption (xf86Option.c:347) + ==27895== by 0x4AE54B: xf86OptionListDuplicate (xf86Option.c:152) + ==27895== by 0xB74D139: wcmOptionDupConvert (wcmValidateDevice.c:382) + ==27895== by 0xB74D408: wcmQueueHotplug (wcmValidateDevice.c:515) + ==27895== by 0xB74D645: wcmHotplugOthers (wcmValidateDevice.c:568) + ==27895== by 0xB742DA2: wcmPreInit (wcmConfig.c:599) + ==27895== by 0x4C1ACF: xf86NewInputDevice (xf86Xinput.c:846) + ==27895== by 0x4C2014: NewInputDeviceRequest (xf86Xinput.c:989) + ==27895== by 0x4DD72C: device_added (udev.c:231) + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit bc095d579bc6b1380080c83c4e5f6df173364b76 +Author: Peter Hutterer <[email protected]> +Date: Thu May 9 10:39:39 2013 +1000 + + Plug memory leaks left by xf86SetStrOption + + xf86SetStrOption() returns a strdup'd string that needs to be freed after + use. + + This requires some const char* → char* changes too, for things that were + never really const char* to begin with anyway. + + wcmEventAutoDevProbe() can use xf86CheckStrOption so it too returns a + strup that we can free lateron. + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit 6940e481a4aadfbc4c87362e1461a43b296bc8b1 +Author: Peter Hutterer <[email protected]> +Date: Tue Apr 30 14:40:07 2013 +1000 + + Purge TILT_REQUEST_FLAG + + Write-only value, obsolete as of xf86-input-wacom-0.10.4-45-gba90433 + + Signed-off-by: Peter Hutterer <[email protected]> + Acked-by: Ping Cheng <[email protected]> + +commit 1329374edbd8bd5a375d32829d0f6153f84e6b6f +Author: Peter Hutterer <[email protected]> +Date: Thu May 2 09:34:56 2013 +1000 + + man: clarify how to configure keys on higher shift levels in xsetwacom + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit d0dbb34e524ebb58bb9a5a623d2fa96a1470516f +Author: Peter Hutterer <[email protected]> +Date: Mon Apr 29 14:47:06 2013 +1000 + + xsetwacom: map a bunch of special symbols + + Punctuation marks and others map to XK_* keysyms but only in their named + form, not in their single-character symbol form. + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit e50725269dd76c4a3c92c84dd4413034a8937df0 +Author: Peter Hutterer <[email protected]> +Date: Mon Apr 29 14:46:18 2013 +1000 + + xsetwacom: if we fail to map a string, try as special key or warn + + If a string comes back with a KeySym of 0, try again as a special key. And + if that fails too, print a warning. + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit 915a64589f34a0593fe55afa82de30c4415c3020 +Author: Peter Hutterer <[email protected]> +Date: Mon Apr 29 14:14:43 2013 +1000 + + xsetwacom: add special mappings for Home, End, Delete + + These three are likely written as home, end, del, so let's try to + understand that. + + Signed-off-by: Peter Hutterer <[email protected]> + Reviewed-by: Ping Cheng <[email protected]> + +commit c1f31c0ab16bc11614d6cfbd9bc16e4714732279 +Author: Jason Gerecke <[email protected]> +Date: Mon Apr 29 13:20:58 2013 -0700 + + wacom 0.21.0 + + Signed-off-by: Jason Gerecke <[email protected]> + commit 5c6bd8d45ca2358d42fdd028112e724c691774ba Author: Jason Gerecke <[email protected]> Date: Fri Apr 19 18:14:59 2013 -0700 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/compile new/xf86-input-wacom-0.22.1/compile --- old/xf86-input-wacom-0.21.0/compile 1970-01-01 01:00:00.000000000 +0100 +++ new/xf86-input-wacom-0.22.1/compile 2013-07-10 20:34:12.000000000 +0200 @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Written by Tom Tromey <[email protected]>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <[email protected]> or send patches to +# <[email protected]>. + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to <[email protected]>. +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/configure.ac new/xf86-input-wacom-0.22.1/configure.ac --- old/xf86-input-wacom-0.21.0/configure.ac 2013-04-29 21:59:05.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/configure.ac 2013-07-15 19:04:34.000000000 +0200 @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-wacom], - [0.21.0], + [0.22.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-wacom]) AC_CONFIG_MACRO_DIR([m4]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/man/xsetwacom.man new/xf86-input-wacom-0.22.1/man/xsetwacom.man --- old/xf86-input-wacom-0.21.0/man/xsetwacom.man 2013-04-18 23:45:21.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/man/xsetwacom.man 2013-07-15 19:01:59.000000000 +0200 @@ -112,6 +112,14 @@ shift, press and release b, release shift, release a". In addition to the "key" keyword, "button" and "modetoggle" are also recognized. Multiple keywords may be present in one action if desired: for example "key +ctrl button 5 key -ctrl". + +The driver can only simulate physical key events but not keysyms and +xetwacom translates the mapping sequence into such events. Thus, +symbols on the same physical key will generate the same event. For +example, '1' and '!' are on the same key on a US keyboard and thus have the +same keycode). For access to keys on a higher shift level, the sequence +should be entered as it would be typed on a physical keyboard. For example, +a exclamation mark is entered by the sequence of "key +shift 1 -shift". .TP \fBBindToSerial\fR [serial|0] Bind the device to the tool with the specified serial number. Once bound, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/src/wcmCommon.c new/xf86-input-wacom-0.22.1/src/wcmCommon.c --- old/xf86-input-wacom-0.21.0/src/wcmCommon.c 2013-04-18 23:45:21.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/src/wcmCommon.c 2013-07-15 19:02:20.000000000 +0200 @@ -970,8 +970,14 @@ if (pChannel->nSamples < common->wcmRawSample) ++pChannel->nSamples; if ((ds.device_type == TOUCH_ID) && common->wcmTouch) + { wcmGestureFilter(priv, ds.serial_num - 1); - +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 16 + /* When using XI 1.2 multitouch events don't do common dispatching */ + if (!common->wcmGesture) + return; +#endif + } /* For touch, only first finger moves the cursor */ if ((common->wcmTouch && ds.device_type == TOUCH_ID && ds.serial_num == 1) || (ds.device_type != TOUCH_ID)) @@ -1462,6 +1468,10 @@ free(common->serials); common->serials = next; } + free(common->device_path); +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 16 + free(common->touch_mask); +#endif free(common); } *ptr = NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/src/wcmConfig.c new/xf86-input-wacom-0.22.1/src/wcmConfig.c --- old/xf86-input-wacom-0.21.0/src/wcmConfig.c 2013-04-18 23:45:21.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/src/wcmConfig.c 2013-07-15 19:01:59.000000000 +0200 @@ -470,7 +470,9 @@ static int wcmIsHotpluggedDevice(InputInfoPtr pInfo) { char *source = xf86CheckStrOption(pInfo->options, "_source", ""); - return !strcmp(source, "_driver/wacom"); + int matches = (strcmp(source, "_driver/wacom") == 0); + free(source); + return matches; } /* wcmPreInit - called for each input devices with the driver set to @@ -510,8 +512,8 @@ { WacomDevicePtr priv = NULL; WacomCommonPtr common = NULL; - const char* type; - const char* device, *oldname; + char *type, *device; + char *oldname = NULL; int need_hotplug = 0, is_dependent = 0; gWacomModule.wcmDrv = drv; @@ -561,7 +563,7 @@ common->debugLevel = xf86SetIntOption(pInfo->options, "CommonDBG", common->debugLevel); - oldname = pInfo->name; + oldname = strdup(pInfo->name); if (wcmIsHotpluggedDevice(pInfo)) is_dependent = 1; @@ -572,6 +574,7 @@ char *new_name; if (asprintf(&new_name, "%s %s", pInfo->name, type) == -1) new_name = strdup(pInfo->name); + free(pInfo->name); pInfo->name = priv->name = new_name; } @@ -609,6 +612,9 @@ if (IsTouch(priv) || (IsTablet(priv) && !common->wcmTouchDevice)) wcmLinkTouchAndPen(pInfo); + free(type); + free(oldname); + return Success; SetupProc_fail: @@ -622,6 +628,8 @@ pInfo->fd = -1; } + free(type); + free(oldname); return BadMatch; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/src/wcmTouchFilter.c new/xf86-input-wacom-0.22.1/src/wcmTouchFilter.c --- old/xf86-input-wacom-0.21.0/src/wcmTouchFilter.c 2013-04-12 18:11:00.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/src/wcmTouchFilter.c 2013-07-15 19:01:59.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2009 - 2010 by Ping Cheng, Wacom. <[email protected]> + * Copyright 2009 - 2013 by Ping Cheng, Wacom. <[email protected]> * Copyright 2011 by Alexey Osipov. <[email protected]> * * This program is free software; you can redistribute it and/or @@ -37,7 +37,6 @@ #define GESTURE_LAG_MODE 8 #define GESTURE_PREDRAG_MODE 16 #define GESTURE_DRAG_MODE 32 -#define GESTURE_MULTITOUCH_MODE 64 #define WCM_SCROLL_UP 5 /* vertical up */ #define WCM_SCROLL_DOWN 4 /* vertical down */ @@ -102,80 +101,41 @@ * the multitouch API available in XI2.2. * * @param[in] priv - * @param[in] channel Channel to send a touch event for - * @param[in] no_update If 'true', TouchUpdate events will not be created. - * This should be used when entering multitouch mode to ensure TouchBegin - * events are sent for already-in-prox contacts. + * @param[in] contact_id ID of the contact to send event for */ static void -wcmSendTouchEvent(WacomDevicePtr priv, WacomChannelPtr channel, Bool no_update) +wcmSendTouchEvent(WacomDevicePtr priv, int contact_id) { #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 16 - ValuatorMask *mask = priv->common->touch_mask; - WacomDeviceState state = channel->valid.state; - WacomDeviceState oldstate = channel->valid.states[1]; - int type = -1; - - valuator_mask_set(mask, 0, state.x); - valuator_mask_set(mask, 1, state.y); - - if (!state.proximity) { - DBG(6, priv->common, "This is a touch end event\n"); - type = XI_TouchEnd; - } - else if (!oldstate.proximity || no_update) { - DBG(6, priv->common, "This is a touch begin event\n"); - type = XI_TouchBegin; - } - else { - DBG(6, priv->common, "This is a touch update event\n"); - type = XI_TouchUpdate; - } - - xf86PostTouchEvent(priv->pInfo->dev, state.serial_num - 1, type, 0, mask); -#endif -} + WacomChannelPtr channel = getContactNumber(priv->common, contact_id); -/** - * Send multitouch events. If entering multitouch mode (indicated by - * GESTURE_LAG_MODE), then touch events are sent for all in-prox - * contacts. Otherwise, only the specified contact has a touch event - * generated. - * - * @param[in] priv - * @param[in] contact_id ID of the contact to send event for (at minimum) - */ -static void -wcmFingerMultitouch(WacomDevicePtr priv, int contact_id) { - Bool lag_mode = priv->common->wcmGestureMode == GESTURE_LAG_MODE; - Bool prox = FALSE; - int i; - - if (lag_mode && TabletHasFeature(priv->common, WCM_LCD)) { - /* wcmSingleFingerPress triggers a button press as - * soon as a single finger appears. ensure we release - * that button before getting too far along - */ - wcmSendButtonClick(priv, 1, 0); - } - - for (i = 0; i < MAX_CHANNELS; i++) { - WacomChannelPtr channel = priv->common->wcmChannel+i; + if (channel) { WacomDeviceState state = channel->valid.state; - if (state.device_type != TOUCH_ID) - continue; - - if (lag_mode || state.serial_num == contact_id + 1) { - wcmSendTouchEvent(priv, channel, lag_mode); + ValuatorMask *mask = priv->common->touch_mask; + WacomDeviceState oldstate = channel->valid.states[1]; + int type = -1; + + wcmRotateAndScaleCoordinates (priv->pInfo, &state.x, &state.y); + + valuator_mask_set(mask, 0, state.x); + valuator_mask_set(mask, 1, state.y); + + if (!state.proximity) { + DBG(6, priv->common, "This is a touch end event\n"); + type = XI_TouchEnd; + } + else if (!oldstate.proximity) { + DBG(6, priv->common, "This is a touch begin event\n"); + type = XI_TouchBegin; + } + else { + DBG(6, priv->common, "This is a touch update event\n"); + type = XI_TouchUpdate; } - prox |= state.proximity; + xf86PostTouchEvent(priv->pInfo->dev, contact_id, type, 0, mask); } - - if (!prox) - priv->common->wcmGestureMode = GESTURE_NONE_MODE; - else if (lag_mode) - priv->common->wcmGestureMode = GESTURE_MULTITOUCH_MODE; +#endif } static double touchDistance(WacomDeviceState ds0, WacomDeviceState ds1) @@ -373,6 +333,15 @@ WacomCommonPtr common = priv->common; WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 16 + /* Send multitouch data to X if appropriate */ + if (!common->wcmGesture) + { + wcmSendTouchEvent(priv, touch_id); + return; + } +#endif + getStateHistory(common, ds, ARRAY_SIZE(ds), 0); getStateHistory(common, dsLast, ARRAY_SIZE(dsLast), 1); @@ -386,9 +355,6 @@ return; } - if (common->wcmGestureMode == GESTURE_MULTITOUCH_MODE) - goto ret; - /* When 2 fingers are in proximity, it must always be in one of * the valid 2 fingers modes: LAG, SCROLL, or ZOOM. * LAG mode is used while deciding between SCROLL and ZOOM and @@ -521,16 +487,6 @@ } ret: -#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 16 - /* Send multitouch data to X if appropriate */ - if (!common->wcmGesture && ds[1].proximity && common->wcmGestureMode == GESTURE_NONE_MODE) - common->wcmGestureMode = GESTURE_LAG_MODE; - if (!common->wcmGesture && (common->wcmGestureMode == GESTURE_LAG_MODE || - common->wcmGestureMode == GESTURE_MULTITOUCH_MODE)) { - wcmFingerMultitouch(priv, touch_id); - } -#endif - if ((common->wcmGestureMode == GESTURE_NONE_MODE || common->wcmGestureMode == GESTURE_DRAG_MODE) && touch_id == 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/src/wcmUSB.c new/xf86-input-wacom-0.22.1/src/wcmUSB.c --- old/xf86-input-wacom-0.21.0/src/wcmUSB.c 2013-04-20 03:16:52.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/src/wcmUSB.c 2013-07-15 19:01:59.000000000 +0200 @@ -277,6 +277,10 @@ { WACOM_VENDOR_ID, 0xF4, 200000, 200000, &usbCintiqV5 }, /* Cintiq 24HD */ { WACOM_VENDOR_ID, 0xFA, 200000, 200000, &usbCintiqV5 }, /* Cintiq 22HD */ { WACOM_VENDOR_ID, 0xF8, 200000, 200000, &usbCintiqV5 }, /* Cintiq 24HD touch (EMR digitizer) */ + { WACOM_VENDOR_ID, 0x304,200000, 200000, &usbCintiqV5 }, /* Cintiq 13HD */ + { WACOM_VENDOR_ID, 0x57, 200000, 200000, &usbCintiqV5 }, /* DTK2241 */ + { WACOM_VENDOR_ID, 0x59, 200000, 200000, &usbCintiqV5 }, /* DTH2242 */ + { WACOM_VENDOR_ID, 0x5B, 200000, 200000, &usbCintiqV5 }, /* Cintiq 22HDT */ { WACOM_VENDOR_ID, 0x90, 100000, 100000, &usbTabletPC }, /* TabletPC 0x90 */ { WACOM_VENDOR_ID, 0x93, 100000, 100000, &usbTabletPC }, /* TabletPC 0x93 */ @@ -287,6 +291,7 @@ { WACOM_VENDOR_ID, 0xE3, 100000, 100000, &usbTabletPC }, /* TabletPC 0xE3 */ { WACOM_VENDOR_ID, 0xE5, 100000, 100000, &usbTabletPC }, /* TabletPC 0xE5 */ { WACOM_VENDOR_ID, 0xE6, 100000, 100000, &usbTabletPC }, /* TabletPC 0xE6 */ + { WACOM_VENDOR_ID, 0xEC, 100000, 100000, &usbTabletPC }, /* TabletPC 0xEC */ { WACOM_VENDOR_ID, 0xED, 100000, 100000, &usbTabletPC }, /* TabletPC 0xED */ { WACOM_VENDOR_ID, 0xEF, 100000, 100000, &usbTabletPC }, /* TabletPC 0xEF */ { WACOM_VENDOR_ID, 0x100,100000, 100000, &usbTabletPC }, /* TabletPC 0x100 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/src/wcmValidateDevice.c new/xf86-input-wacom-0.22.1/src/wcmValidateDevice.c --- old/xf86-input-wacom-0.21.0/src/wcmValidateDevice.c 2013-04-18 23:45:21.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/src/wcmValidateDevice.c 2013-07-15 19:01:59.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2009 - 2010 by Ping Cheng, Wacom. <[email protected]> + * Copyright 2009 - 2013 by Ping Cheng, Wacom. <[email protected]> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -35,12 +35,17 @@ int match = 0; InputInfoPtr pDevices = xf86FirstLocalDevice(); - for (; pDevices != NULL; pDevices = pDevices->next) + for (; !match && pDevices != NULL; pDevices = pDevices->next) { char* device = xf86CheckStrOption(pDevices->options, "Device", NULL); /* device can be NULL on some distros */ - if (!device || !strstr(pDevices->drv->driverName, "wacom")) + if (!device) + continue; + + free(device); + + if (!strstr(pDevices->drv->driverName, "wacom")) continue; if (pInfo != pDevices) @@ -55,11 +60,10 @@ /* only add the new tool if the matching major/minor * was from the same source */ if (strcmp(fsource, psource)) - { match = 1; - break; - } } + free(fsource); + free(psource); } } if (match) @@ -112,6 +116,7 @@ isInUse = 4; } ret: + free(lsource); return isInUse; } @@ -134,7 +139,7 @@ int j, k, ret = FALSE; WacomDevicePtr priv = (WacomDevicePtr)pInfo->private; WacomCommonPtr common = priv->common; - char* dsource = xf86CheckStrOption(pInfo->options, "_source", NULL); + char* dsource; if (!type) { @@ -142,6 +147,8 @@ return FALSE; } + dsource = xf86CheckStrOption(pInfo->options, "_source", NULL); + /* walkthrough all types */ for (j = 0; j < ARRAY_SIZE(wcmType); j++) { @@ -175,6 +182,7 @@ xf86Msg(X_ERROR, "%s: Invalid type '%s' for this device.\n", pInfo->name, type); + free(dsource); return ret; } @@ -255,6 +263,7 @@ case 0xC6: /* CintiqV5 */ case 0xCC: /* CinitqV5 */ case 0xFA: /* Cintiq 22HD */ + case 0x5B: /* Cintiq 22HDT Pen */ TabletSetFeature(priv->common, WCM_LCD); /* fall through */ case 0xB0: /* I3 */ @@ -277,6 +286,7 @@ case 0xE6: /* TPC with 2FGT */ case 0x93: /* TPC with 1FGT */ case 0x9A: /* TPC with 1FGT */ + case 0xEC: /* TPC with 1FGT */ case 0xED: /* TPC with 1FGT */ case 0x90: /* TPC */ case 0x97: /* TPC */ @@ -286,6 +296,11 @@ case 0x9F: case 0xF6: /* Cintiq 24HDT Touch */ + case 0x57: /* DTK2241 */ + case 0x59: /* DTH2242 Pen */ + case 0x5D: /* DTH2242 Touch */ + case 0x5E: /* Cintiq 22HDT Touch */ + case 0x304:/* Cintiq 13HD */ TabletSetFeature(priv->common, WCM_LCD); break; } @@ -367,7 +382,7 @@ WacomToolPtr ser = common->serials; InputOption *iopts = NULL; char *name; - pointer options; + pointer options, o; int rc; #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12 @@ -405,13 +420,15 @@ free(name); - while(options) + o = options; + while(o) { iopts = input_option_new(iopts, - xf86OptionName(options), - xf86OptionValue(options)); - options = xf86NextOption(options); + xf86OptionName(o), + xf86OptionValue(o)); + o = xf86NextOption(o); } + xf86OptionListFree(options); return iopts; } @@ -427,10 +444,12 @@ { int rc; InputAttributes *attr; + char *product; + attr = DuplicateInputAttributes(pInfo->attrs); - rc = asprintf(&attr->product, "%s %s", attr->product, type); - if (rc == -1) - attr->product = NULL; + rc = asprintf(&product, "%s %s", attr->product, type); + free(attr->product); + attr->product = (rc != -1) ? product : NULL; return attr; } #endif @@ -575,19 +594,20 @@ * This changes the source to _driver/wacom, all auto-hotplugged devices * will have the same source. */ -int wcmNeedAutoHotplug(InputInfoPtr pInfo, const char **type) +int wcmNeedAutoHotplug(InputInfoPtr pInfo, char **type) { char *source = xf86CheckStrOption(pInfo->options, "_source", NULL); int i; + int rc = 0; if (*type) /* type specified, don't hotplug */ - return 0; + goto out; if (!source) /* xorg.conf device, don't auto-pick type */ - return 0; + goto out; if (source && strcmp(source, "server/hal") && strcmp(source, "server/udev")) - return 0; + goto out; /* no type specified, so we need to pick the first one applicable * for our device */ @@ -595,13 +615,14 @@ { if (wcmIsAValidType(pInfo, wcmType[i].type)) { + free(*type); *type = strdup(wcmType[i].type); break; } } if (!*type) - return 0; + goto out; xf86Msg(X_INFO, "%s: type not specified, assuming '%s'.\n", pInfo->name, *type); xf86Msg(X_INFO, "%s: other types will be automatically added.\n", pInfo->name); @@ -610,7 +631,11 @@ pInfo->options = xf86AddNewOption(pInfo->options, "Type", *type); pInfo->options = xf86ReplaceStrOption(pInfo->options, "_source", "_driver/wacom"); - return 1; + rc = 1; + + free(source); +out: + return rc; } int wcmParseSerials (InputInfoPtr pInfo) @@ -737,6 +762,8 @@ */ } + free(s); + /* Pad is always in absolute mode. * The pad also defaults to wheel scrolling, unlike the pens * (interesting effects happen on ArtPen and others with build-in @@ -773,6 +800,7 @@ " device\n", pInfo->name); else wcmRotateTablet(pInfo, rotation); + free(s); } common->wcmRawSample = xf86SetIntOption(pInfo->options, "RawSample", @@ -794,10 +822,6 @@ common->wcmSuppress = DEFAULT_SUPPRESS; } - if (xf86SetBoolOption(pInfo->options, "Tilt", - (common->wcmFlags & TILT_REQUEST_FLAG))) - common->wcmFlags |= TILT_REQUEST_FLAG; - /* pressure curve takes control points x1,y1,x2,y2 * values in range from 0..100. * Linear curve is 0,0,100,100 @@ -815,6 +839,7 @@ else wcmSetPressureCurve(priv,a,b,c,d); } + free(s); /*Serials of tools we want hotpluged*/ if (wcmParseSerials (pInfo) != 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/src/xf86Wacom.c new/xf86-input-wacom-0.22.1/src/xf86Wacom.c --- old/xf86-input-wacom-0.21.0/src/xf86Wacom.c 2013-04-18 23:45:21.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/src/xf86Wacom.c 2013-07-15 19:01:59.000000000 +0200 @@ -296,20 +296,21 @@ /* seventh valuator: abswheel2 */ - index = 6; - label = None; - mode = Absolute; - min_res = max_res = res = 1; - min = 0; - max = 1; - if ((TabletHasFeature(common, WCM_DUALRING)) && IsPad(priv)) - { /* XXX: what is this axis label? */ + { + /* XXX: what is this axis label? */ + index = 6; + label = None; + mode = Absolute; + min_res = max_res = res = 1; + min = 0; + max = 1; + min = MIN_PAD_RING; max = MAX_PAD_RING; - } - wcmInitAxis(pInfo->dev, index, label, min, max, res, min_res, max_res, mode); + wcmInitAxis(pInfo->dev, index, label, min, max, res, min_res, max_res, mode); + } return TRUE; } @@ -483,7 +484,7 @@ ****************************************************************************/ #define DEV_INPUT_EVENT "/dev/input/event%d" #define EVDEV_MINORS 32 -const char *wcmEventAutoDevProbe (InputInfoPtr pInfo) +char *wcmEventAutoDevProbe (InputInfoPtr pInfo) { /* We are trying to find the right eventX device */ int i, wait = 0; @@ -506,7 +507,7 @@ xf86ReplaceStrOption(pInfo->options, "Device", fname); /* this assumes there is only one Wacom device on the system */ - return xf86FindOptionValue(pInfo->options, "Device"); + return xf86CheckStrOption(pInfo->options, "Device", NULL); } } wait += 100; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/src/xf86Wacom.h new/xf86-input-wacom-0.22.1/src/xf86Wacom.h --- old/xf86-input-wacom-0.21.0/src/xf86Wacom.h 2013-04-18 23:45:21.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/src/xf86Wacom.h 2013-07-15 19:01:59.000000000 +0200 @@ -113,7 +113,7 @@ extern Bool wcmOpen(InputInfoPtr pInfo); /* device autoprobing */ -const char *wcmEventAutoDevProbe (InputInfoPtr pInfo); +char *wcmEventAutoDevProbe (InputInfoPtr pInfo); /* common tablet initialization regime */ int wcmInitTablet(InputInfoPtr pInfo, const char* id, float version); @@ -141,7 +141,7 @@ extern int wcmDeviceTypeKeys(InputInfoPtr pInfo); /* hotplug */ -extern int wcmNeedAutoHotplug(InputInfoPtr pInfo, const char **type); +extern int wcmNeedAutoHotplug(InputInfoPtr pInfo, char **type); extern void wcmHotplugOthers(InputInfoPtr pInfo, const char *basename); /* setup */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/src/xf86WacomDefs.h new/xf86-input-wacom-0.22.1/src/xf86WacomDefs.h --- old/xf86-input-wacom-0.21.0/src/xf86WacomDefs.h 2013-04-18 23:45:21.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/src/xf86WacomDefs.h 2013-07-15 19:01:59.000000000 +0200 @@ -394,7 +394,6 @@ * WacomCommonRec *****************************************************************************/ -#define TILT_REQUEST_FLAG 1 #define TILT_ENABLED_FLAG 2 #define MAX_FINGERS 16 @@ -419,7 +418,7 @@ struct _WacomCommonRec { /* Do not move device_path, same offset as priv->name. Used by DBG macro */ - const char* device_path; /* device file name */ + char* device_path; /* device file name */ dev_t min_maj; /* minor/major number */ unsigned char wcmFlags; /* various flags (handle tilt) */ int debugLevel; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/test/fake-symbols.c new/xf86-input-wacom-0.22.1/test/fake-symbols.c --- old/xf86-input-wacom-0.21.0/test/fake-symbols.c 2013-04-10 17:52:35.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/test/fake-symbols.c 2013-07-15 19:01:59.000000000 +0200 @@ -60,6 +60,13 @@ { return NULL; } + +_X_EXPORT void +xf86OptionListFree(OPTTYPE opt) +{ + return; +} + _X_EXPORT CONST char * xf86FindOptionValue(OPTTYPE options, const char *name) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/test/fake-symbols.h new/xf86-input-wacom-0.22.1/test/fake-symbols.h --- old/xf86-input-wacom-0.21.0/test/fake-symbols.h 2013-04-10 17:52:35.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/test/fake-symbols.h 2013-07-15 19:01:59.000000000 +0200 @@ -18,6 +18,7 @@ extern OPTTYPE xf86ReplaceIntOption(OPTTYPE optlist, const char *name, const int val); extern OPTTYPE xf86AddNewOption(OPTTYPE head, const char *name, const char *val); +extern void xf86OptionListFree(OPTTYPE optlist); extern char* xf86OptionName(OPTTYPE opt); extern CONST char* xf86FindOptionValue(OPTTYPE options, const char *name); extern int xf86NameCmp(const char *s1, const char *s2); @@ -27,11 +28,7 @@ extern char * xf86SetStrOption(OPTTYPE optlist, const char *name, CONST char *deflt); extern int xf86SetBoolOption(OPTTYPE optlist, const char *name, int deflt); -extern OPTTYPE xf86AddNewOption(OPTTYPE head, const char *name, const char *val); -extern char* xf86OptionName(OPTTYPE opt); extern char *xf86OptionValue(OPTTYPE opt); -extern int xf86NameCmp(const char *s1, const char *s2); -extern char * xf86CheckStrOption(OPTTYPE optlist, const char *name, char *deflt); extern void xf86AddEnabledDevice(InputInfoPtr pInfo); extern void xf86RemoveEnabledDevice(InputInfoPtr pInfo); extern Atom XIGetKnownProperty(char *name); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-wacom-0.21.0/tools/xsetwacom.c new/xf86-input-wacom-0.22.1/tools/xsetwacom.c --- old/xf86-input-wacom-0.21.0/tools/xsetwacom.c 2013-04-10 17:52:35.000000000 +0200 +++ new/xf86-input-wacom-0.22.1/tools/xsetwacom.c 2013-07-15 19:01:59.000000000 +0200 @@ -570,6 +570,43 @@ {"PgUp", "Prior"}, {"PgDn", "Next"}, + {"del", "Delete"}, {"home", "Home"}, + {"end", "End"}, + + {"`", "quoteleft"}, + {"-", "minus"}, + {"=", "equal"}, + {"[", "bracketleft"}, + {"]", "bracketright"}, + {"\\", "backslash"}, + {";", "semicolon"}, + {"'", "apostrophe"}, + {",", "comma"}, + {".", "period"}, + {"/", "slash"}, + + {"~", "asciitilde"}, + {"!", "exclam"}, + {"@", "at"}, + {"#", "numbersign"}, + {"$", "dollar"}, + {"%", "percent"}, + {"^", "asciicircum"}, + {"&", "ampersand"}, + {"*", "asterisk"}, + {"(", "parenleft"}, + {")", "parenright"}, + {"_", "underscore"}, + {"+", "plus"}, + {"{", "braceleft"}, + {"}", "braceright"}, + {"|", "bar"}, + {":", "colon"}, + {"\"", "quotedbl"}, + {"<", "less"}, + {">", "greater"}, + {"?", "question"}, + { NULL, NULL } }; @@ -1075,7 +1112,15 @@ } else need_press = need_release = 1; + ks = XStringToKeysym(key); + if (ks == 0) { + key = convert_specialkey(key); + ks = XStringToKeysym(key); + if (ks == 0) + fprintf(stderr, "Warning: unable to map '%s' to a keycode.\n", key); + } + kc = keysym_to_keycode(dpy, ks); if (need_press) @@ -2676,15 +2721,36 @@ char buff[5]; struct modifier *m; - /* make sure at least the default keys (ascii 33 - 126) aren't - * specialkeys */ - for (i = '!'; i <= '~'; i++) + /* make sure a-zA-Z aren't specialkeys */ + for (i = 'a'; i <= 'z'; i++) { sprintf(buff, "%c", i); converted = convert_specialkey(buff); assert(strcmp(converted, buff) == 0); } + for (i = 'A'; i <= 'Z'; i++) + { + sprintf(buff, "%c", i); + converted = convert_specialkey(buff); + assert(strcmp(converted, buff) == 0); + } + + /* punctuation are specialkeys */ + for (i = '!'; i <= '/'; i++) + { + sprintf(buff, "%c", i); + converted = convert_specialkey(buff); + assert(strcmp(converted, buff) != 0); + } + for (i = ':'; i <= '?'; i++) + { + sprintf(buff, "%c", i); + converted = convert_specialkey(buff); + assert(strcmp(converted, buff) != 0); + } + + for (m = specialkeys; m->name; m++) { converted = convert_specialkey(m->name); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
