commit 2c7789785981ad1fce3858c726615b49293f7de0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 2 10:25:19 2025 +1000

    xkbcomp 1.5.0

commit da836764573298c53c625c6c237ab5211b2d3adf
Author: Ran Benita <ran234@gmail.com>
Date:   Sat Mar 10 23:10:47 2018 +0200

    xkbcomp: fix stack overflow when evaluating boolean negation
    
    The expression evaluator would go into an infinite recursion when
    evaluating something like this as a boolean: `!True`. Instead of
    recursing to just `True` and negating, it recursed to `!True` itself
    again.
    
    Bug inherited from xkbcomp.
    
    Caught with the afl fuzzer.
    
    CVE-2018-15853
    
    Identical to libxkbcommon commit 1f9d1248c07cda8aaff762429c0dce146de8632a
    https://github.com/xkbcommon/libxkbcommon/commit/1f9d1248c07cda8aaff762429c0dce146de8632a
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/38>

commit 895e080b237e346a43a31edf9dee6143c2abf230
Author: Daniel Stone <daniels@collabora.com>
Date:   Mon Oct 30 11:21:55 2017 +0000

    Fail expression lookup on invalid atoms
    
    If we fail atom lookup, then we should not claim that we successfully
    looked up the expression.
    
    CVE-2018-15859
    
    Identical to libxkbcommon commit bb4909d2d8fa6b08155e449986a478101e2b2634
    https://github.com/xkbcommon/libxkbcommon/commit/bb4909d2d8fa6b08155e449986a478101e2b2634
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/38>

commit c342635409cd687da0eda323ef4f165b11565052
Author: Daniel Stone <daniels@collabora.com>
Date:   Mon Jun 26 17:21:45 2017 +0100

    xkbcomp: Don't falsely promise from ExprResolveLhs
    
    Every user of ExprReturnLhs goes on to unconditionally dereference the
    field return, which can be NULL if xkb_intern_atom fails. Return false
    if this is the case, so we fail safely.
    
    Testcase: splice geometry data into interp
    
    CVE-2018-15861
    
    Identical to libxkbcommon commit 38e1766bc6e20108948aec8a0b222a4bad0254e9
    https://github.com/xkbcommon/libxkbcommon/commit/38e1766bc6e20108948aec8a0b222a4bad0254e9
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/38>

commit fa10dbc2ca8bcb45bcecb433520de755e628ca91
Author: Daniel Stone <daniels@collabora.com>
Date:   Mon Jun 26 17:12:29 2017 +0100

    xkbcomp: Don't crash on no-op modmask expressions
    
    If we have an expression of the form 'l1' in an interp section, we
    unconditionally try to dereference its args, even if it has none.
    
    CVE-2018-15863
    
    Identical to libxkbcommon commit 96df3106d49438e442510c59acad306e94f3db4d
    https://github.com/xkbcommon/libxkbcommon/commit/96df3106d49438e442510c59acad306e94f3db4d
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/38>

commit ccea045e41f1a7e02b640d8a205d08ed4e1cadf4
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Thu Jan 30 16:46:35 2025 +0100

    parser: Parse but discard multiple actions per level
    
    Follow-up of commit e119cbec7e750ffc4d4bd08b577db2c697035a30, in order
    to support parsing this extension of XKB supported by libxkbcommon, but
    ignoring its value (replaced by `NoAction()`).
    
    Signed-off-by: Pierre Le Marre <dev@wismill.eu>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/29>

commit 7310026360dc7dc21c6ba0a9b0f0d76040205b8e
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Thu Jan 30 16:11:30 2025 +0100

    parser: Refactor multiple keysyms per level and add warning
    
    The feature was added in commit e119cbec7e750ffc4d4bd08b577db2c697035a30.
    but it previously issued no warning.
    
    - Refactored to always issue a warning.
    - Fixed a memory leak because the discarded keysym list was not freed.
    - Added a comment to explain that this is an extension to XKB that
      cannot work with X11, due to its intrinsic limitations.
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/37>

commit 915983c113cb0d187d64ae5ea02228ba66bb6ba3
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Thu Nov 13 07:59:22 2025 +0100

    parser: Fix multiple keysyms per level parsing
    
    The feature was added in commit e119cbec7e750ffc4d4bd08b577db2c697035a30.
    However, it made the parser accept the following symbols list: `[{{a}}]`.
    This is invalid because nested keysym lists are not allowed.
    
    Fixed by refactoring the parser so that it triggers a syntax error.
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/37>

commit e6989e2dacbac43efe08911f9460ee139f7e1999
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Thu Nov 13 07:53:08 2025 +0100

    parser: Fix whitespaces
    
    - Trim trailing whitespaces.
    - Fix indentation: indent parser entries with tabs and C code with
      spaces. It’s not a great solution to mix both styles, but this is
      the historical style adopted in this file and this commit only
      make it consistent in all lines.
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/37>

commit 8c45ef536490c9f0c7b451295c4f9b07ea949bc1
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Mon Nov 3 15:47:09 2025 +0100

    Fix various undefined behaviors
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/35>

commit eaae98a40747d830275d6bd2a5fadeea7e3ab280
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Thu Nov 13 07:13:31 2025 +0100

    build: Fix meson linking order
    
    Make meson link with the same order as the autotools build.
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/36>

commit d03a4ab1c0b24f6581411622ccf729ceb329aeb8
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Mon Feb 10 12:19:09 2025 +0100

    Compare autotools and meson builds
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/28>

commit b3ba248d8511b4b259ecb83358a4e9f76c1c6799
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Wed Jan 29 20:32:04 2025 +0100

    Add support for meson build
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/28>

commit e19c5e6d6ea0f6063053422d57ea7c96ae49108a
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Tue Sep 23 17:35:26 2025 -0700

    Make sure config.h is included before any system headers
    
    Resolves warnings in 32-bit builds on Solaris using gcc 15:
    
    In file included from xkbcomp.h:35,
                     from compat.c:28:
    config.h:177:9: warning: ‘_FILE_OFFSET_BITS’ redefined
      177 | #define _FILE_OFFSET_BITS 64
          |         ^~~~~~~~~~~~~~~~~
    In file included from /usr/include/sys/types.h:11,
                     from /usr/X11R7/include/X11/Xos.h:42,
                     from compat.c:27:
    /usr/gcc/15/lib/gcc/x86_64-pc-solaris2.11/15.1.0/include-fixed/sys/feature_tests.h:243:9: note: this is the location of the previous definition
      243 | #define _FILE_OFFSET_BITS       32
          |         ^~~~~~~~~~~~~~~~~
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/34>

commit 7f80f2d077996bfc65e58c552a270cf6f97c1c1a
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Wed Aug 13 11:47:26 2025 +0200

    symbols: Fix NULL pointer dereference in MergeKeyGroups
    
    It may trigger with the following keymap symbols:
    
        key <> { [a, A] }; key <> { [NoAction()] };
    
    or:
    
        key <> { [NoAction()] }; augment key <> { [a, A] };
    
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/33>

commit 6ec3b544d6f2c32339062db3933c87c82ac2d2b2
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Tue Jul 1 20:24:54 2025 +0200

    types: Fix typo in warning
    
    Signed-off-by: Pierre Le Marre <dev@wismill.eu>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/32>

commit 8e73169bf69f1dd301dbc2bdee68870b3379d949
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun May 25 11:39:49 2025 -0700

    man page: fix warnings from `mandoc -T lint`
    
    mandoc: xkbcomp.1:2:15: WARNING: cannot parse date, using it verbatim: TH xkbcomp 1.4.7
    mandoc: xkbcomp.1:9:2: WARNING: skipping paragraph macro: PP after SH
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/31>

commit 38724ab9f0f013a7d684e5a410f72618603e29cc
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Mar 31 18:46:41 2025 -0700

    Improve man page formatting
    
    More closely follow common style as described on
    https://man7.org/linux/man-pages/man7/man-pages.7.html
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/30>

commit cd51404ec62a9d9f4480fc176bcd8c6231ab5900
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Mar 31 18:31:52 2025 -0700

    Accept --help & --version as aliases to -help & -version
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/30>

commit 9cb80be3bd01bab4eba6a8aea7767c36b2284845
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Thu Jan 9 16:32:06 2025 +0100

    types: Fix warning for multiple map occurrences
    
    `AddMapEntry` may emit a warning even if told to not report. This is
    problematic when it is called by `CopyDefToKeyType`, as `AddMapEntry`
    is used there for adding default `map` entries corresponding to each
    `preserve` entry, only if relevant. These default entries should not
    trigger a warning (report = False) if conflicting with an existing entry
    and simply be ignored. However with the current code a warning may be
    erroneously emitted if one set the warning level >=9, leaving the user
    puzzled with a conflicting map entry found nowhere in the source files.
    
    Signed-off-by: Pierre Le Marre <dev@wismill.eu>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/27>

commit 374d8a12e9866ce3e2c0157c208b052abe701366
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Fri Dec 27 00:47:23 2024 +0100

    Symbols: Fix out-of-bounds actions in MergeKeyGroups
    
    Signed-off-by: Pierre Le Marre <dev@wismill.eu>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/26>

commit a9c3d35a1f74de1681aeb7cdd66dce7bf186c666
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Nov 9 11:28:24 2024 -0800

    Use _stricmp()/_strnicmp() instead of strcasecmp()/strncasecmp() on Windows
    
    Fixes: 0b4873c ("Assume target platforms have strcasecmp, strncasecmp, & strdup now")
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/25>

commit 3f354d20f5bc0276e27faa7fb5f6356319aa32c3
Author: Matthieu Herrb <matthieu@herrb.eu>
Date:   Sat May 4 13:36:07 2024 +0200

    Symbols: resize the syms array when removing NoSymbol
    
    On OpenBSD, with malloc_conf=S, the recallocarray() code detects a
    size mismatch in ResizeKeyGroup when numLevels[group] doesn't match
    the allocated size of syms[group].
    
    Should fix https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/issues/25
    
    Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/24>

commit 0b4873ce55e3afe2e1716ef4a21cd94a7ae96e64
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Apr 21 16:03:11 2024 -0700

    Assume target platforms have strcasecmp, strncasecmp, & strdup now
    
    All have been required since Unix98/SUSv2
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/merge_requests/23>

commit e26102f28f08e5432b1ad44bbaef7f32aff199f6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Feb 3 14:23:58 2024 -0800

    xkbcomp 1.4.7
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit ff32f542c94f1b30ba2ba58193adb3774a5c50e6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Oct 7 11:09:44 2023 -0700

    GenerateListing: close outFile before returning
    
    Found by Oracle Parfait static analyzer:
    
    Error: File Leak
       File Leak [file-ptr-leak]:
          Leaked File outFile
            at line 497 of app/xkbcomp/listing.c in function 'GenerateListing'.
              outFile initialized at line 432 with fopen
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 1f1ea56ca22a85164c4362650b004e202f4007fd
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Feb 6 13:13:21 2023 -0800

    configure: raise minimum autoconf requirement to 2.70
    
    Needed for builds on NetBSD to work correctly, since it depends on
    AC_USE_SYSTEM_EXTENSIONS defining _OPENBSD_SOURCE to expose the
    prototype for reallocarray() in the system headers.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 6ce2c46869ced346839eb7e0c3f83170025495c6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Fri Jan 27 09:02:26 2023 -0800

    xkbcomp.h: include config.h before any other headers
    
    Ensures flags set by AC_USE_SYSTEM_EXTENSIONS are correctly
    propogated when including system headers.
    
    Closes: #22 xkbcomp from git compile error
    Fixes: 81e46ca ("Use asprintf() if the platform supports it")
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 772470d0e4fef8e0a3d6eaf4c563fa7b1f6d6d19
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 15:32:03 2022 -0800

    Replace calloc(strlen())+strcpy() pairs with strdup() calls
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 6db8fd556e2562e9a0a821c0d6fd4f7cdcf6266c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 15:18:26 2022 -0800

    Mark more pointers as const
    
    Some suggested by cppcheck, others by manual code inspection
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 299c9762b1dbe53f3297c54e5526aeae767d1a10
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 10:24:13 2022 -0800

    Use unsigned ints when shifting to create bitmasks
    
    symbols.c:1057:28: portability: Shifting signed 32-bit value by 31 bits
      is implementation-defined behaviour. See condition at line 1049.
      [shiftTooManyBitsSigned]
            radio_groups |= (1 << (tmp.uval - 1));
                               ^
    symbols.c:1049:41: note: Assuming that condition 'tmp.uval>32' is not redundant
            if ((tmp.uval < 1) || (tmp.uval > XkbMaxRadioGroups))
                                            ^
    symbols.c:1057:28: note: Shift
            radio_groups |= (1 << (tmp.uval - 1));
                               ^
    symbols.c:1057:28: warning: Either the condition 'tmp.uval>32' is redundant
      or there is signed integer overflow for expression '1<<(tmp.uval-1)'.
      [integerOverflowCond]
            radio_groups |= (1 << (tmp.uval - 1));
                               ^
    symbols.c:1049:41: note: Assuming that condition 'tmp.uval>32' is not redundant
            if ((tmp.uval < 1) || (tmp.uval > XkbMaxRadioGroups))
                                            ^
    symbols.c:1057:28: note: Integer overflow
            radio_groups |= (1 << (tmp.uval - 1));
                               ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit e4cba31313b44e40efcc0c260a33c3ec83e4b772
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 10:20:05 2022 -0800

    Stop building more unused functions
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 3e486c4578f3f6a81fc0f9afba6551dfa8c7b63b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 10:02:13 2022 -0800

    Only build debug infrastructure if DEBUG is defined
    
    It's only used when DEBUG is defined, so don't build it when
    we're not using it.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit a3bbf780252e55bb1dcab717289ef09e00d11223
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 09:55:55 2022 -0800

    Remove unused "no indent" (NOI) debug functions
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 0493c7216dd39baeb420583be71af095576dbf74
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 09:50:55 2022 -0800

    Mark more functions and variables static
    
    Stop exporting things that aren't used outside the file
    that defines them.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 4119707089b5c14f53bd5ff0b86ee7e575ac9316
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 09:22:57 2022 -0800

    XkbAddDirectoryToPath: don't leak existing paths on realloc() failure
    
    Found by cppcheck:
    
    xkbpath.c:217:9: error: Common realloc mistake: 'includePath' nulled
      but not freed upon failure [memleakOnRealloc]
            includePath = (char **) realloc(includePath, szPath * sizeof(char *));
            ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 0d22aac7bb50ff1f7588f78ec25e9fb62a7b2e5e
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 09:17:56 2022 -0800

    FindKeypadVMod: check xkb is not NULL before dereference, not after
    
    As found by cppcheck:
    
    vmod.c:232:26: warning: Either the condition 'xkb' is redundant or there
      is possible null pointer dereference: xkb. [nullPointerRedundantCheck]
        name = XkbInternAtom(xkb->dpy, "NumLock", False);
                             ^
    vmod.c:233:10: note: Assuming that condition 'xkb' is not redundant
        if ((xkb) && LookupVModIndex((XPointer) xkb, None, name, TypeInt, &rtrn))
             ^
    vmod.c:232:26: note: Null pointer dereference
        name = XkbInternAtom(xkb->dpy, "NumLock", False);
                             ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit c7a5d1468c75adb2139d2c2facc73854f13b5ba3
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 11 08:57:56 2022 -0800

    Remove #ifdef sgi sections
    
    They just included an additional malloc.h header, but SGI Irix
    has been unsupported for a decade now.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit e6821a8a7b16e5a8e4c478c9544798fae59a21d1
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 16:20:58 2022 -0800

    Handle -Wstringop-truncation warning in HandleOverlayDef()
    
    In function ‘HandleOverlayDef’,
        inlined from ‘HandleSectionBody’ at geometry.c:2778:18,
        inlined from ‘HandleSectionDef’ at geometry.c:2818:10,
        inlined from ‘HandleGeometryFile’ at geometry.c:2864:18:
    geometry.c:2573:9: warning: ‘strncpy’ output may be truncated copying
     4 bytes from a string of length 4 [-Wstringop-truncation]
     2573 |         strncpy(key->over, keyDef->over, XkbKeyNameLength);
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    geometry.c:2574:9: warning: ‘strncpy’ output may be truncated copying
     4 bytes from a string of length 4 [-Wstringop-truncation]
     2574 |         strncpy(key->under, keyDef->under, XkbKeyNameLength);
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 81e46cab5f4bdd69fa0a644dba86f6902cece175
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 16:10:01 2022 -0800

    Use asprintf() if the platform supports it
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit a1551b78e9ac0e2075ca241c0e8ae361758f26b4
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 15:39:39 2022 -0800

    Replace && with & for bitwise comparison
    
    Clears up gcc warning:
    
    keytypes.c: In function ‘SetPreserve’:
    keytypes.c:757:26: warning: promoted ~unsigned is always non-zero
      [-Wsign-compare]
             || (new.preVMods && (~new.indexVMods)))
                              ^~
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit e4e821d5083072e796d6489ddcacf895a43c66f1
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 15:37:56 2022 -0800

    Fix 106 missing-field-initializers warnings in misc.c
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 1fb639c97fc28b8ed66b5553eafbbeed07e4cb09
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 15:33:17 2022 -0800

    Replace malloc()+bzero() pairs with calloc() calls
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 8e58b7949ab96180d60fb13f7820d6cc01c228ae
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 15:21:49 2022 -0800

    Remove unnecessary casts from bzero() calls
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit bdbfa354dd4d93657104ccd7c9e892ed45197dd8
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 15:16:05 2022 -0800

    Remove unnecessary casts from memcpy() calls
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit f1757a005f471044da3f8e946a091b067996d270
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 14:30:21 2022 -0800

    Replace Opaque with direct usage of void *
    
    Only one use was left after deleting the *alloc/free() wrappers
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 5655379ce89ab55f25a536972aaa310480de9432
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 14:23:11 2022 -0800

    Remove unnecessary checks for NULL pointers before calling free()
    
    Not needed in C89 and later
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 2ac6a7f029d8855fbb4e8024aab0511727ac3a67
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 14:10:32 2022 -0800

    Replace uFree() with direct free() calls
    
    All these wrappers did was mess with types and add a test for
    NULL pointers that isn't needed in C89 and later.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 8d85bd1e2f9473958b235caf7af9913b518f73dd
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 14:07:18 2022 -0800

    Replace uTypedRecalloc() with direct recallocarray() calls
    
    Retains uRecalloc() as a fallback for platforms without recallocarray()
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit e02e32f71f6c24fcc69bdaf58f6f9e973a017896
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 13:49:56 2022 -0800

    Replace uTypedRealloc() with direct reallocarray() calls
    
    Falls back to realloc() if platform doesn't offer reallocarray().
    Also removes uRealloc() since it had no other uses.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 75af06f5f8ffc41fabd100253aad222cb4ab8662
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 13:44:17 2022 -0800

    Replace uCalloc() and uTypedCalloc() with direct calloc() calls
    
    All these wrappers did was mess with types.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 265ea3a77418df2744575f1168f89a33f01e72d4
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 13:39:10 2022 -0800

    Replace uAlloc() and uTypedAlloc() with direct malloc() calls
    
    All these wrappers did was mess with types.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 81e51cf1ff494131827df487a0f538c3b07e0407
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 13:34:09 2022 -0800

    Delete unused uTmpAlloc/uTmpFree wrappers around alloca()
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 77b1efa1c83ad64d49d1e9c085d2a496580ce6f9
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 13:26:39 2022 -0800

    Use C99 struct initializers
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 64761ee9424f755b84ab0ce02d13eda32d215a14
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 11:38:04 2022 -0800

    Variable scope reductions
    
    Some found by cppcheck, some found by manual code inspection
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 9737af15196380a1687d18a17d297ee17b45a83f
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 11:03:40 2022 -0800

    Remove register keyword from variable declarations
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit b67c058e2ccc27472b238a6b5dc5e4cd20f6d2bd
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 10 09:08:33 2022 -0800

    Eliminate 20 -Wimplicit-fallthrough warnings
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 634f60a9b25b5d03c78e90574adce3e38f378333
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Thu Jul 28 17:30:21 2022 -0700

    gitlab CI: stop requiring Signed-off-by in commits
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 931c469b2b91603c5c196abf65a39c7dab8609d7
Author: Leandro Nini <drfiemost@email.it>
Date:   Sat Dec 10 07:49:56 2022 +0000

    Avoid possibly dereferencing null pointer
    
    This addresses issue #21
    
    Signed-off-by: Leandro Nini <drfiemost@email.it>

commit 7bac6a25bb44d39710f1b2b5fdad56d7f4c01c39
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Wed Dec 7 17:53:16 2022 -0800

    xkbcomp 1.4.6
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 7cdd50a7471ab67591ceb2e8734483220c5a9205
Author: Matt Turner <mattst88@gmail.com>
Date:   Tue Nov 29 12:00:20 2022 -0500

    configure: Use AC_SYS_LARGEFILE to enable large file support
    
    Signed-off-by: Matt Turner <mattst88@gmail.com>

commit 76eed4986b8c94008853c2215408a100b7e95ecb
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Mon Jul 11 09:16:55 2022 +0200

    suppress four more warnings when 'warningLevel' is zero
    
    This addresses issue #20 some more.
    
    Reported-by: Vincent Lefevre
    
    Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>

commit c230cee968c7e7956a04e4d73bd6f23260f435db
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Sun Jul 10 17:31:52 2022 +0200

    suppress the "Could not resolve" warning when 'warningLevel' is zero
    
    Two years ago, commit c8cfca25ab changed an error to a warning
    but forgot to add a check for 'warningLevel'.
    
    This partially addresses issue #20.
    
    Reported-by: Vincent Lefevre
    
    Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>

commit 97311ebd18e0dbc545d18d1a4b8b94b59c1fbd08
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Apr 2 11:58:18 2022 -0700

    man page: remove out-of-date COPYRIGHT section
    
    The information previously listed here didn't match what is present in
    the source code or the COPYING file, and the X(7) man page doesn't list
    any license information as this had claimed.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit f3f71746ebee5404ccb736b53cddca557cc62060
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Dec 6 14:54:08 2021 -0800

    gitlab CI: update to new templates
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 3aa424c245090ac594b85ce0ba0a438c921101d6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Dec 6 14:44:55 2021 -0800

    Build xz tarballs instead of bzip2
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 97390d9e15c0c7ac8c69de42e1be1028ae846aad
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 28 11:35:20 2021 -0800

    Fix "upercase" typo
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit f8b240e897ed68b90c116ce4c2f8814e71e5aa97
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 17 15:39:53 2021 +1000

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

commit da810f10d732a312ccee88652141c1d165efc114
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 21 13:24:00 2021 +1000

    keycodes: compress the high keycode warning
    
    No point spending 3 lines on this, especially given that this warning is
    always triggered.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 80398db098b2a2214c5bef28d09cefd58beac43d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 21 13:20:40 2021 +1000

    keycodes: downgrade the >255 keycode warning to an info
    
    This warning will be triggered all the time now that xkeyboard-config has
    started adding keycodes > 255. Downgrade to an info, there's nothing the user
    can do about this warning anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1955a2645670eeea83d6d163653749249cd839f2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 21 13:16:53 2021 +1000

    Downgrade the warning for missing symbols to info
    
    In the interest of maintainability, it's easier to include as many keycodes as
    possible and then have the symbols mapping specific to the layout. This is
    particularly true for evdev where the kernel takes care of device-specifics
    and every keyboard has the same set of keycodes anyway.
    
    So let's downgrade this from a warning to a mere info, virtually every
    keyboard right now triggers this warning for a number of keys.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9510dedad875099c32993246188050ea73ab1a9f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 21 13:08:25 2021 +1000

    Replace WARN[1-9], ERROR[1-9], etc. with their unnumbered version
    
    Those macros date back to when varargs weren't a thing but they've
    been #defined to the same value for 17 years now.
    
    Patch generated with:
            for action in WARN INFO ERROR ACTION FATAL WSGO; do
            sed -i "s/${action}[1-9]/${action}/g" `git ls-files`
            done
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ff6a19ed8898ee8c79b2b2a2f87806353d89f5d4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 21 13:46:01 2021 +1000

    gitlab CI: add basic build test
    
    Copied from xorgproto
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3b3d25dd32ba48fd6d15ca98baf7109af21e1d97
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 21 13:24:51 2021 +1000

    Remove trailing whitespaces
    
    Let's clean this up so I don't have to fight vim and git in removing them.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 790b998647ec171133bf196a3d84c5153cd64840
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 14:24:24 2020 +1000

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

commit a0a4f112c5858ac2b932247dba2d85061bb59145
Author: Miroslav Koškár <mk@mkoskar.com>
Date:   Mon Jul 6 07:48:48 2020 +0200

    Fix lockdevbtn to be XkbSA_LockDeviceBtn action

commit 101d5f2bce9ee13521fe9cb47b7cfd00d01f5914
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Thu Jul 23 10:25:08 2020 -0700

    Fix spelling/wording issues
    
    Found by using:
      codespell --builtin clear,rare,usage,informal,code,names
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit c8cfca25ab2ed65013448f7502bae933c66390ae
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 5 14:23:09 2020 +1000

    Don't pretend unresolved symbols are an error
    
    Whenever xkeyboard-config is newer than xorgproto, or libX11 just hasn't yet
    been rebuilt against the protocol we end up with some unresolved symbols.
    That's not an error, it just happens. Let's downgrade this to a warning
    instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dcaa947c488b4cb458946ab9c19579f7c866cbd4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 17 15:07:14 2019 +1000

    For -R and after chdir, add the current directory to the path
    
    This restores the behavior pre 1aecdffaa0db7bbf85bc0aae9043e9437b25c30d, at
    least when -R is given. For a normal invocation without -R we don't add the
    current directory, because 1aecdff isn't totally wrong about whether that's a
    good idea.
    
    Fixes https://gitlab.freedesktop.org/xorg/app/xkbcomp/issues/3

commit d373c9b434c603bf6a5eb442b6427992d23ef874
Author: Matt Turner <mattst88@gmail.com>
Date:   Thu Feb 20 09:47:30 2020 -0800

    xkbcomp 1.4.3
    
    Signed-off-by: Matt Turner <mattst88@gmail.com>

commit e200d0d41ef3158ea717206c1490e499a0c07f1b
Author: Dimitry Andric <dimitry@andric.com>
Date:   Wed Feb 19 21:24:59 2020 +0100

    Don't compare with string literals
    
    xkbcomp.c:228:37: error: result of comparison against a string literal is unspecified (use an explicit string comparison function instead) [-Werror,-Wstring-compare]
            if ((argv[i][0] != '-') || (uStringEqual(argv[i], "-")))
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
    ./utils.h:195:30: note: expanded from macro 'uStringEqual'
                                     ^~~~~~~~~~~~~~~~~~~~~
    ./utils.h:198:38: note: expanded from macro 'uStringCompare'
                                     (s1)!=(s2):strcmp(s1,s2))
                                         ^ ~~~~
    
    Don't attempt to do this macro trickery, and simply use strcmp instead,
    where it applies.
    
    Bug: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244235

commit 29fda8e50e4a4a127348e63fcf9f47600beab93c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 13 12:29:19 2019 +1000

    Error out if we have no default path
    
    The path is set through configure.ac/Makefile.am and always defined anyway.
    Let's not re-define it here with a different value than our default.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ff0e59084d6b9f2e7085fc88ba68916150085afb
Author: Andreas Wettstein <wettstein509@solnet.ch>
Date:   Sat Feb 15 17:34:41 2014 +0100

    xkbcomp Fix missing support for "affect" and incorrect modifier handling for ISOLock
    
    Add missing support for "affect" flag to selectively affect locking or
    unlocking for for modifier locking, control locking, and ISOLock.
    Fix some incorrect masking and modifier handling for ISOLock.
    
    Signed-off-by: Andreas Wettstein <wettstein509@solnet.ch>
    Reviewed-By: Ran Benita <ran234@gmail.com>
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 9edd61b91a02bda31fc6edd2c32c553e872b6ea2
Author: Miroslav Koškár <mk@mkoskar.com>
Date:   Fri Jan 18 20:01:01 2019 +0100

    Fix invalid error report on F_Accel field
    
    F_Accel is valid MovePtr field yet following error is reported:
    
        > Error:            Field accel is not defined for an action of type MovePtr
        >                   Action definition ignored
    
    Signed-off-by: Miroslav Koškár <mk@mkoskar.com>

commit 7ffec6583ae92fe81402870eb89dea21ca34e933
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Mon Feb 11 21:44:51 2019 +0100

    configure: Remove unused AC_SUBST([REQUIRED_MODULES])
    
    v2: Add square brackets back.
    
    Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>

commit 4683410b6b072bd55dbdc661c76a5ba30bae608e
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Mon Feb 11 21:31:19 2019 +0100
[--snip--]
