commit d73eb2ee78670cc2b1d7cc3861f466867ccba479
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 4 09:33:07 2024 +1000

    wacom 1.2.1
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3ce73a61a17ca1cbb222c67c0c803a7e40d0b993
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 20 10:52:25 2024 +1000

    meson.build: allow disabling the xsetwacom build
    
    xsetwacom pulls in the xorgproto and Xlib dependencies, so let's make
    this optional for the (niche) case of where we really only want the
    driver built.
    
    Since this is a rather niche case let's make it a boolean true/false
    option instead of a feature with "auto".

commit 6f8ed055c655fdd3a0f91870817864ecd81c4d8a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 29 15:04:18 2024 +1000

    CI: bump our containers to use Ubuntu 22.04

commit f963825e9a2ff531ca16e36408a42c8e2b9e48c3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 1 09:16:21 2023 +1000

      wcmUSB: fix undefined behavior for bit-shifting
    
    Automated test runs have detected the following issue while running UBSan
    checks:
    
    ~~~
    ../src/wcmUSB.c:1372:11: runtime error: left shift of 1 by 31 places cannot
     be represented in type 'int'
            #0 0x7f0444bcbd8c in mod_buttons ../src/wcmUSB.c:1372
            #1 0x7f0444bd7f26 in test_mod_buttons ../src/wcmUSB.c:2090
            #2 0x7f0444bfcea7 in wcm_run_tests ../test/wacom-test-suite.c:46
            #3 0x56204d77b405 in main ../test/wacom-tests.c:44
            #4 0x7f0448625082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082)
            #5 0x56204d77b1cd in _start (/home/runner/work/xf86-input-wacom/xf86-input-wacom/builddir/wacom-tests+0x11cd)
    
    SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/wcmUSB.c:1372:11 in
    
    The default type of a literal `1` is `int` and thus a leftshift of 31 is
    not permitted. Switch it to `1u` and thus `unsigned int` for Button 31
    which is the max button we support (if zero-indexed).
    
    Link: https://github.com/linuxwacom/xf86-input-wacom/actions/runs/7049012015/job/19186502078
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 73f66d42d72c2c758c09acab84b13dab065886d3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 1 09:14:11 2023 +1000

    Revert "wcmUSB: Correct bounds check of maximum button number"
    
    This fixed the wrong issue, the undefined behavior was caused by
    (1 << btn) defaulting to int rather than unsigned int. See the follow-up
    commit for a fix.
    
    This reverts commit bf61b3e22b2bb25dc9aed76103488eb7ebc47bb5.

commit bf61b3e22b2bb25dc9aed76103488eb7ebc47bb5
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Nov 30 08:02:08 2023 -0800

    wcmUSB: Correct bounds check of maximum button number
    
    Automated test runs have detected the following issue while running UBSan
    checks:
    
    ~~~
    ../src/wcmUSB.c:1372:11: runtime error: left shift of 1 by 31 places cannot
     be represented in type 'int'
        #0 0x7f0444bcbd8c in mod_buttons ../src/wcmUSB.c:1372
        #1 0x7f0444bd7f26 in test_mod_buttons ../src/wcmUSB.c:2090
        #2 0x7f0444bfcea7 in wcm_run_tests ../test/wacom-test-suite.c:46
        #3 0x56204d77b405 in main ../test/wacom-tests.c:44
        #4 0x7f0448625082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082)
        #5 0x56204d77b1cd in _start (/home/runner/work/xf86-input-wacom/xf86-input-wacom/builddir/wacom-tests+0x11cd)
    
    SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/wcmUSB.c:1372:11 in
    
    ~~~
    
    While the faulty line has some protection against an excessively-large
    value of 'btn', the bounds are incorrect. A button number of 32 would
    be allowed by the existing check but would also lead to undefined
    behavior.
    
    This commit modifies the bounds to properly fit the condition.
    
    Link: https://github.com/linuxwacom/xf86-input-wacom/actions/runs/7049012015/job/19186502078
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit dbb8ddce94b7bfe416dd88b6ea286538940d9d38
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Nov 30 07:47:43 2023 -0800

    github: Minimize permissions granted to automated workflows / jobs
    
    Jobs that use the GITHUB_TOKEN to perform sensitive actions on behalf of
    a real user may be granted a range of permissions. Instead of granting
    blanket permissions to read and write "all" APIs, we should really limit
    the permissions what any individual workflow or job can do.
    
    This commit sets the default permissions for each workflow to "contents:
    read", which allows jobs to only read from the repository.
    
    Link: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idpermissions
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 3d3b474a750106f8db7c47d0088209f8ec3ae1c4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 14 14:02:48 2023 +1000

    Add a pressurecurve debugging tool
    
    This tool takes (one or multiple) sets of 4 coordinate that represent
    the second and third point for our pressure curve (first and fourth
    points are hardcoded to 0/0 and 1/1 like the driver does)
    
    It spits out gnuplot-compatible lines that can be printed for visual
    debugging. Usage to print the GNOME default curves:
    
    ./build/pressurecurve \
        0 .75 .25 1 \
        0 .5 .5 1  \
        0 .25 .75 1 \
        0 0 1 1 \
        .25 0 1 .75 \
        .5 0 1 .5 \
        .75 0 1 .25 > gnuplot.data
    
    And that gnuplot data can then be printed with:
    
     #!/usr/bin/gnuplot
     set terminal qt persist
     set style data lines
     set xrange [0:1]
     set yrange [0:1]
     plot \
      "gnuplot.data" using 1:2 title "  0, .75, .25, 1", \
      "gnuplot.data" using 1:3 title "  0, .50, .50, 1", \
      "gnuplot.data" using 1:4 title "  0, .25, .75, 1", \
      "gnuplot.data" using 1:5 title "  0,   0,   1, 1", \
      "gnuplot.data" using 1:6 title ".25, 0,   1, .75", \
      "gnuplot.data" using 1:7 title ".50, 0,   1, .50", \
      "gnuplot.data" using 1:8 title ".75, 0,   1, .25"

commit 2612afb19e37fed69f3aca534d213a0d7e71b595
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 14 12:31:50 2023 +1000

    Move the pressurecurve calculation into a separate file
    
    There's nothing driver-specific about this and it allows us to test it
    separately or write tools to test it.

commit 55a10e392f7337da0dfcc19a60f816aa7645f2df
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 11:15:45 2023 +1000

    Add option SmoothPanscrollingEnabled
    
    This is a backwards-compatibility option similar to the Pressure2K
    option. GDK2 applications are effectively limited to 7 axes
    (value of GDK_AXES_LAST in GDK2) and adding smooth panscrolling gives
    our device 8 axes total. This can cause issues when the driver, GDK and
    the application don't agree on the number of axes in the device.
    
    This is an application/GDK bug but as for the Pressure2K option we
    expect there to be applications that cannot be updated easily. To work
    around this, provide a driver option to disable this new feature
    altogether and effectively return to 6 axes for the pen device.
    
    This is a partial revert of fe923e927a "Implement smooth panscrolling"
    for the implementation. Minor changes though, the implementation now
    relies more on local variables than pointers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 815edf68875193d254f12dbf7e0f944dccbbd6c1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 15 13:10:06 2023 +1000

    test: parametrize the scroll test for vert + horiz scrolling
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 692aa3b04916af3aad7b84131e1475d141f6d899
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 11:21:23 2023 +1000

    x11: don't post motion/proximity events with an empty valuator mask
    
    After converting from our internal axis types to the x11 valuators we
    may (theoretically) be left with an empty valuator mask. Let's not post
    events in that case.
    
    This is a theoretical issue for now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d0e1fee6bbdadfd8aa76a46e87a29fb689817fc3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 11:15:51 2023 +1000

    Remove some unnecessary empty lines
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ca34daadc486217cfe5463237b42035146339cff
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 11:10:43 2023 +1000

    Remove a confusing comment
    
    We clip to 6 axis here, so having a comment that lists 8 axes is not
    overly useful.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3bde61c986ca7c1c373edd5ba4844ca6550fdbb8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 6 14:30:09 2023 +1000

    release.sh: drop support for modfiles and module sets
    
    Leftover from the xorg release.sh script, no longer needed here since we
    only ever release one module at a time.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 991660b38caf40aeaa8dd6e59c6b554b12c761da
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 09:38:14 2023 +1000

    man: remove some unnecessary indent
    
    All our options were indented by an extra 4 units, unnecessary since we
    use TP for all of those anyway and get a highlight.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8f655fe3faabc4a44a32504d0ef14fc961f803fb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 6 11:17:09 2023 +1000

    wacom 1.2.0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0bf20b63f35385893f58bcbacbc3d78dc9dcf207
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 7 08:46:32 2022 +1000

    CI: update some actions to v3
    
    Node 12 is deprecated so let's switch to the newer version
    https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fe923e927a8ddf4d2e82ef4757c885b06d47fa03
Author: Greenscreener <honzikcernoh@gmail.com>
Date:   Sun Jul 24 15:02:46 2022 +0200

    Implement smooth panscrolling

commit 2a9e5953f89a7085786326e07edcb53ad821aace
Author: Greenscreener <honzikcernoh@gmail.com>
Date:   Sun Jul 24 14:48:29 2022 +0200

    Replace valuator array with valuator mask in convertAxes
    
    ValuatorMask has been around since xserver 1.10, released in 2011.

commit 6eefde01f04454c8b0df1dedd2bbf77086206c09
Author: Greenscreener <honzikcernoh@gmail.com>
Date:   Sun Jul 24 14:41:50 2022 +0200

    Fixing discrepancy in naxes
    
    See https://github.com/linuxwacom/xf86-input-wacom/pull/222#discussion_r897908702

commit 66f41d6225b34ca02a4a70d2a101e82c561c51d7
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Wed Nov 2 22:09:36 2022 -0700

    Assign Wacom specific keys only to Wacom devices
    
    Most extra features are only for Wacom 0x56a devices. Make them
    specific so we don't abuse other devices ;).
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit 61b7d9061b53f79b5a37a463269bb9c8d45dbe14
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Wed Nov 2 21:55:21 2022 -0700

    Move wcmDeviceTypeKeys to wcmConfig.c
    
    There is only one file that needs wcmDeviceTypeKeys. Move it
    and make it into a static routine to simply the logic. Also,
    there is no value to return from this routine. It sets the
    types and keys to the common structure.
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit 829a2d996f1a8d8a735c0eb7340797959de03ca8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 31 11:56:16 2022 +1000

    gwacom: add support for special runtime options
    
    This is a hack to make it possible to test options that cannot be set
    through the xorg.conf, e.g button actions that are set through the
    X-specific properties interface.
    
    Expose a new function for "runtime options", though the actual option
    implementation needs to be handled in the gwacom wrapper code - i.e.
    only options explicitly supported can work.
    
    The currently supported option is "PanButton" which maps the given
    button to the PanScroll action.

commit 8e4a77bc28970d23da80838c195550cad4ef8e05
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Sep 1 15:31:47 2022 +1000

    x11: de-duplicate the valuator number assignment
    
    Let's add a helper function for this so we can't mess this up.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1aaa36753c1008733b62cea5f60088ddbddff1e8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 31 11:35:53 2022 +1000

    Remove useless Wacom action name setting
    
    Copy/paste error from when this as lifted from the properties code to
    the core driver code, in the commits leading up to
    5326fd126042684338dfb662f48ba2e27be7fa5a.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 23c46706f12982c3baaa03b3b8f53ea72679a136
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Fri Aug 26 15:02:16 2022 -0700

    Bring two finger right-click function back
    
    Patch 65b7c37 fixed spurious right-clicks by setting wcmGestureMode
    back to GESTURE_CANCEL_MODE immediately when there is less than two
    fingers on the tablet, if the wcmGestureMode was in SCROLL_MODE or
    ZOOM_MODE.
    
    However, it narrowed wcmFingerTapToClick() rotine to LAG_MODE, which
    removed the opportunity for the routine to executed. Revert that.
    
    Fixes: https://github.com/linuxwacom/xf86-input-wacom/commit/65b7c37f0fac5cdd03ff7f977124148d0bdf4be8
    (Prevent spurious right-clicks at the end of very short scroll and zoom gestures)
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit 18ed7697e3049943e3bfef46af6c647b2d93ed8f
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Tue Jul 19 14:01:35 2022 -0700

    Don't report error when waiting for serial number
    
    For some devices, such as AES pens, serial number is 0 when tool
    comes into proximity. That means serial number was not ready. It
    is a known state. All we needed is to wait for the non-zero serial
    number. Don't report it through W_ERROR.
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit ad11a9da15d4cbef62f4ec1c19a6279ef21710f3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 25 12:30:14 2022 +1000

    Remove a comment referring to the wrong function
    
    The function moved away in e4ea35d56aec59a5de0ef3d9282fdd796d89e6ad,
    let's drop this comment.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f2df07587e5ff89a6c5b2246bc468211c31cf43a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jul 14 13:45:32 2022 +1000

    wacom 1.1.0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e71404e3d500762ea25e40ec7d0c4a34d3978762
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jul 14 13:57:37 2022 +1000

    meson.build: fixate the GIR namespace version to 1.0
    
    This is more like a soname version than a project version - keeping it
    in step with the driver version means we also have to update each
    callsite. But it looks like we'll be stable for this for a while, so
    let's just fixate it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f53fbcafc277bb750e0584584bf58d1d3d8353df
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 13 11:19:36 2022 +1000

    gitignore: add __pycache__
    
    Might as well not accidentally commit this one
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0dc0b101bf49731cdb7946835bd3bd2045d036d8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 10 21:00:26 2022 +1000

    test: add a test for the artpen/airbrush wheel updates
    
    This was slightly too complicated to add to the existing
    test_axis_updates test, so that test is duplicated here, only testing
    what we see as "wheel" axis in the driver.
    
    The test is run for all three pens
    
    Because the X driver unconditionally sets ds->abswheel from the kernel
    events, we must take care only to send the kernel axis that matters for
    our current tool - otherwise we overwrite ds->abswheel with whichever
    one of ABS_Z or ABS_WHEEL is sent last in the evdev frame.
    In other words, we cannot test that artpen ignores ABS_WHEEL and
    airbrush ignores ABS_Z because ... they don't.
    
    For the generic pen that doesn't matter since we're supposed to ignore
    both axes anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
    Tested-by: Ping Cheng <ping.cheng@wacom.com>

commit be3471293363b518eb07a1eb041fb3e548de1bef
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 13 10:08:08 2022 +1000

    meson: default to pytest-3 first, then pytest
    
    At least Ubuntu 20.04 has pytest point at the Python 2.x compatible
    version, resulting in syntax errors when trying to parse our Python 3
    code files. So let's check pytest-3 first since that is the compatible
    version and fall back to normal pytest only where it's missing.
    
    Fixes #272
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 15802a3871d15fcbd1a510b85715e633b11e078a
Author: Greenscreener <honzikcernoh@gmail.com>
Date:   Sat Jun 11 14:58:55 2022 +0200

    Added vim modelines to python files.

commit d5b61195553094f316015facb0d7a7ac2954d1b2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 8 14:44:05 2022 +1000

    test: raise an InputError with better info if modules are missing
    
    The tests need to run as root (for uinput/evdev) so pip-installing a
    package as user gets past the build check but then fails at runtime.
    Let's make this bit easier to debug.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c44522c1f2c4487e1629435aa45b545c1d0279e9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 8 14:43:30 2022 +1000

    meson.build: default to verbose pytest logging
    
    Might as well collect as much data as we can get
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 073556d13e3937735983fb32e2704a5aaa51e435
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 24 11:07:37 2022 -0700

    test: Ensure standard pen does not report the "wheel" axis
    
    The event data has a mask field that specifies which fields are actually
    present (zero may be a valid value for an axis after all). Let's check
    that mask for each event and ensure that if the pen supports the axis,
    the axis is also present in the event.
    
    We still send kernel events for all axes to ensure the unsupported ones
    are correctly ignored by the driver.
    
    This allows us to parametrize the test with different stylus types and
    re-use the rest. Here we add a standard Cintiq pen and make sure the
    wheel axis is never set.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 817e77f5a7502cc9258d1e41e5f2863a498d104f
Author: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
Date:   Tue May 24 11:20:38 2022 -0700

    Don't report "wheel" valuator unless it exists on tool
    
    Fixes #199
    
    Prior to this commit we operated as if all non Art Pens needed
    this valuator normalized.
    
    Signed-off-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 6fd9efcd269e7bd879c62044d176007df8d659d8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 23 13:43:30 2022 +1000

    test: ignore test devices, or real devices during test suite runs
    
    Set an option on all our created uinput devices, and an environment
    variable when we're running the test suite. If both of these are set we
    process the device, otherwise ignore the device during PreInit.
    
    This stops the driver picking up events from test suite runs
    (potentially clicking around on the desktop) and it stops the test suite
    from false positives by locally connected devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 00473a30a0c5a6558a3c0491fc5808baaf711702
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 23 13:24:13 2022 +1000

    test: fix a typo
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fd10a749f93e9bf7458c3f039fae61802234b8d4
Author: Joshua <Joshua@Joshua-Dickens.com>
Date:   Sun May 22 18:35:21 2022 -0700

    Fix xsetwacom returning 0 even when there's an error (#266)
    
    xsetwacom was only able to return a failure on a few scenarios but
    would return a success even when the command would encounter failures.
    
    List, set, get, and some other functions within those all had the potential
    to fail and would print an error message when said failures occurred
    but would improperly return a success.
    
    This commit adds the ability to properly report a success(0) or a failure(-1)
    to the relevant functions including all get and set methods that can be
    called by get_func and set_func.
    
    Link: https://github.com/linuxwacom/xf86-input-wacom/issues/126
    Signed-off-by: Joshua Dickens <joshua.dickens@wacom.com>

commit bcd984bdc353f2b4524debe36a11f58d0e81f346
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:45:47 2022 +1000

    test: add a test for the artpen rotation
    
    The artpen has a physical rotation property, sent by the kernel driver
    as ABS_Z (historical reasons). In the driver this is mapped to the
    ds->abswheel state because this axis is shared with the airbrush wheel -
    both are sent through the same XI valuator (historical reasons, as
    usual).
    
    We can rather easily test this by ensuring we have an artpen device id
    and then send something through ABS_Z, that should update the wheel
    axis.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 1f21c8c7fca37c15e0d8a6f7c7f89519c5947829
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:49:51 2022 +1000

    test: ensure a device prox out after our events
    
    This avoids a potential stuck button by leaving the tablet in proximity.
    Shouldn't happen since removing the device should release all buttons
    but...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 2f1a7ae905886fb1441d45b97c8e9952a1c3a878
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:45:32 2022 +1000

    test: swap the axis checks for an iterator-based approach
    
    This ensures we get a StopIteration exception if we don't have the
    events we expect - previously we'd get a false positive on this test if
    we had no motion events after the first one.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 4d3bbc84e026ad4f7513d54432c26ae49b2fdd4d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:52:49 2022 +1000

    test: increase the count of events for axis update tests
    
    Make it 30% of the axis in 2% step increments, this gets past the issue
    of tilt not updating significantly and getting filtered.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 5d4ef8ac9088427dabbe5b6d5e367bb44c1d59bc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:41:03 2022 +1000

    test: fix the ID assignment when parsing a device file
    
    Because InputId didn't have the same field order as the recording (to
    allow for default bustype, vid and version), we ended up with an
    erroneous vendor ID, causing some code paths in the driver to go the
    non-wacom path.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 1b7d64565cda276dbd20e0b67a9bb88ef538a7f3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:22:04 2022 +1000

    test: add a helper script to set up the environment
    
      $ sudo ./test/wacom-test-env.sh
      $ pytest
    
    A lot easier this way than having to manually set the environment
    variables.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 09567517939109cbaf9928a36e43e86bd1d71082
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:11:04 2022 +1000

    Document the rotation/wheel axes, they're not what you'd expect
    
    For historical reasons, the rotation axis is actually the cursor
    rotation only, the artpen rotation is mixed in with the airbrush wheel
    (which is scaled in to the rotation range).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit a94a845af196f49fdcece8958dc1320c0296b518
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:06:58 2022 +1000

    Add a few missing breaks for the default case
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit a6828caa94f5fd9c81880eb11da294eed9cc48af
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:25:44 2022 +1000

    Make a debug message easier to understand
    
    We printed the device type as "tool id", let's print both but with the
    right naming.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 742c3e4494bf89301031ba6a627a7f5d5f49556f
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Apr 7 09:56:00 2022 -0700

    Allow negative panscroll threshold for inverted scrolling
    
    The driver's "pan" feature allows you to send scroll events by holding down
    a defined stylus button and dragging the pen. Dragging the pen from top
    to bottom will cause the driver to send scroll-up events, and vice-versa.
    This simulates physically dragging the page under the cursor and works
    particularly well with display tablets.
    
    The rate at which scroll events are sent is controlled by comparing the
    distance the pen has moved "down" to a defined threshold value. If the
    distance exceeds the threshold a scroll-up event is sent; if it exceeds
    the the threshold * -1 a scroll-down event is sent.
    
    This commit allows the driver to accept negative threshold values to
    produce an inverted scrolling behavior (i.e. dragging the pen from top
    to bottom causes scroll-down events instead of scroll-up). To do this
    we just relax the checks performed at device configuration and property
    setting (affecting the "PanScrollThreshold" driver option and "Wacom
    Panscroll Threshold" Xinput property, respectively).
    
    Link: https://github.com/linuxwacom/xf86-input-wacom/issues/257
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 1ca6fca7932d540ea7765bb9f66be050f61592aa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 24 10:54:20 2022 +1000

    meson.build: comment out -Wall -Wextra
    
    These are handled as part of meson's warning_level project option
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c0f77b600122a3d8bdefa7a20a84f4049681d1e7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 22 09:30:41 2022 +1000

    meson: use gnu_symbol_visibility - sort-of
    
    meson has gnu_symbol_visibility which is set correctly depending on the
    compiler. Except - where the X server was built with a
    symbol-visibility-supporting compiler it will always force
    -fvisibility=hidden into the cflags, see
    https://gitlab.freedesktop.org/xorg/xserver/-/issues/1316
    
    Meson sorts pkgconf cflags after the gnu_symbol_visibility flag so the
    pkgconf cflag overrides our gnu_symbol_visibility flag.
    Make a note on this so no-one else has to spend time wondering about and
    debugging this.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b534f8fba8dbf3dc373db27c1b2b6e3103923e28
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 22 09:00:11 2022 +1000

    meson.build: only build libgwacom.so, not the static one
    
    We don't need the static one
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5390ebb2f55f40a3d41f4352447fb603ab4e2fd2
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 12:16:55 2022 -0800

    Enable additional compiler warnings by default
    
    Removes the two `-Wno-xxxx` directives from out default set of build flags
    enables several new warnings as well.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit e217fe67690ff8d00af6ccc2bbe65720af21a979
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Feb 18 13:51:20 2022 -0800

    Move -Wall and -Wextra from Github-only to default CFLAGS
    
    These two options were previously only being used by the Github runner.
    Lets move them to configure.ac / meson.build so that we encounter these
    warnings on our build system **before** pushing things to Github. The
    only thing Github should have is `-Werror` and friends.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit b708574c48b5e57dc5fc7efa4ec7d102c062071f
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Feb 18 13:44:54 2022 -0800

    autotools: Use the same set of CFLAGS as Meson builds
    
    When building with Meson, a number of CFLAGS are automatically used
    if supported by the compiler. Lets copy them over so that the same
    behavior will occur for autotools users. While we're at it, update
    the other target-specific flags to also better match Meson.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit b998b68107b4a9b6116b271c858dfbcb29435789
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 16:11:23 2022 -0800

    Remove superflous 'invalid' label in wcmSetFlags
    
    This label is only taken in a single error case. We should handle the
    error at the point we detect it, not after jumping to yet another label.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 18ac7bc40be89ccc49ec9f17583503989944069d
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 15:44:40 2022 -0800

    Avoid truncated output warning in wcmAxisDump
    
    GCC seems to be confused by our code pattern and insists that our
    buffer isn't large enough (no matter how large we might make it)
    and may result in truncated snprintf output. Modify the structure
    to achieve the same effect in a different way that GCC doesn't
    mind.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 571fbced64a51259ea7825c737f1703a0eb6bdf5
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 15:12:45 2022 -0800

    Correct buffer size passed to wcmAxisValue
    
    Thankfully the incorrect `sizeof(data)` is less than the actual
    `sizeof(value)`, so there's no chance of some kind of buffer
    overflow in the existing code.
    
    Fixes: e8015b67000b ("Revamp debug printing of axis data")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit a5a0b5bf0f855ac0a5501147de5147a520b8b9d2
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Feb 16 16:34:50 2022 -0800

    Fix sign-compare warnings caused by clang's integer abs()
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit d9e92778ccc89bec74e361f8d4fcc7c24002d2bc
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 12:10:18 2022 -0800

    wacom-record: Change syntax for null struct initalization
    
    Avoid a -Wmissing-field-initializers warning from Clang, which apparently
    recognizes `{ 0 }` and `{ }` as valid patterns, but not `{ NULL }`.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit df632685d02939957bebc61c4df5617652ce608e
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Feb 16 16:24:16 2022 -0800

    wacom-record: Print unsigned values with %u rather than %d
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 19a2ac80507aca77c9e30f445c9e245c474c7865
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 17:13:24 2022 -0800

    Explicitly check for WTYPE_INVALID in switch statements
    
    Avoid a Wswitch-enum warning.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit ef372acece43c5cce16e61795a15050a5bcb1726
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 13:54:46 2022 -0800

    Misc. unsigned warning fixes
    
    Address a few more unsigned changes that don't fit in elsewhere.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit cd02945a778132bcb63db5afec9747a15ade0033
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jan 26 15:43:34 2022 -0800

    Treat value of proxout property as signed
    
    While negative / extremely large values are both invalid, migrating the
    code to handle surface distances in an unsigned way is much more trouble
    than its worth (due in part to some tablets reporting distance in an
    opposite sense than others). It is more straightforward to leave them
    signed for now and just treat the proxout property as also signed.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 3287bf8dd89f7d57dcbab61090f92880e01e2e77
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jan 26 15:39:43 2022 -0800

    Store serial numbers as unsigned values
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 23f2c7fcf77dc7f4a42864bc66ef91162137577a
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jan 26 13:54:22 2022 -0800

    Change signature of Parse function to take unsigned packet length
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit ce2ec765c2fa57d3f4a1b833f424ced2cf8ba53c
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 11:28:09 2022 -0800

    Make devicestate sample and time variables unsigned
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 52803bf0a87772bb6ca837c68e68911909a6cd53
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 13:48:59 2022 -0800

    xsetwacom: Make prop_offset unsigned
    
    Note that in one instance we actually end up re-assigning the value of
    prop_offset to a signed variable to avoid additional warnings.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 846c6f51f7c959f984e60064306610f2408a5ffa
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 11:54:43 2022 -0800

    gesture: Make gesture distances and counts unsigned
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit e981a1c1c70b4ed6a34cfac2cde872905e89f4ed
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 11:40:06 2022 -0800

    gesture: Use unsigned integers for finger indicies
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit fe50ba4c0048d58f09489ad85f11c0ae4838b5b9
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 11:33:43 2022 -0800

    Make wcmEventCnt an unsigned int
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit ca19d531ab888e9ff80d5beb26af366061a2edd5
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 11:24:16 2022 -0800

    Store button state as unsigned int
    
    The WacomDeviceState structure uses an unsigned int to store keys and
    some functions that operate on keys and buttons are already set up to
    work with unsigned values. Make buttons unsigned for consistency with
    keys and to reduce warnings.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 0962f67b2c7660fdbdf80a189b90b0e37e61314d
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 10:29:54 2022 -0800

    tools: Report when the entire buffer is garbage
    
    Most callers silently ignore the case where `skip_garbage` returns a
    negative result. This function changes the function signature to let us
    return an unsigned count and then has the caller make some noise when
    this would have happened. Correct various unsigned issues along the way.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 869f32c7b98632974f23606d2d706a69e7cc0b69
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jan 26 12:58:20 2022 -0800

    Use locally-declared unsigned loop variables to eliminate warnings
    
    We often use the prototypical `int i` loop variable but sometimes we're
    iterating over a loop with an unsigned bound. This is low-hanging fruit
    for cleaning up some of the "Wsign-compare" warnings that exist in the
    driver. While we're at it, take the opportunity to make many of these
    loops use local declarations -- a feature standardized way back in
    1999 alongside other blockbusters like The Matrix.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 465412be96b8e1967bd21209af54a11f0c7b0cc3
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 16:05:05 2022 -0800

