Update to xkbcomp 1.4.3

This commit is contained in:
matthieu 2020-08-16 15:56:49 +00:00
parent e1abe9d332
commit f561a12735
11 changed files with 326 additions and 131 deletions

View File

@ -1,3 +1,113 @@
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
pkgconfig: Remove unneeded Requires.private
Fixes "pkg-config --exists xkbcomp" without installed pkg-config files
for x11, xkbfile, and xproto >= 7.0.17.
xkbcomp works fine without those pkg-config files.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=913359
Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>
commit 1fdbacbe34742328b2a95742982b6017f60a1342
Author: Adam Jackson <ajax@redhat.com>
Date: Wed Oct 17 11:44:37 2018 -0400
Suppress high-keycode warnings at the default warning level
We expect evdev to have keycodes above 255, there's no reason to warn
about this.
Signed-off-by: Adam Jackson <ajax@redhat.com>
commit 32d8d53fc1b622d97b3b8eb7b8b5e8354eda60a5
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed Nov 21 17:11:16 2018 -0800
Update configure.ac bug URL for gitlab migration
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 2abe23d23d3755335c10ff573e4e1f93b682e9d9 commit 2abe23d23d3755335c10ff573e4e1f93b682e9d9
Author: Peter Hutterer <peter.hutterer@who-t.net> Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Jun 8 09:10:03 2018 +1000 Date: Fri Jun 8 09:10:03 2018 +1000

View File

@ -293,7 +293,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
REQUIRED_MODULES = @REQUIRED_MODULES@
SED = @SED@ SED = @SED@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@

214
app/xkbcomp/aclocal.m4 vendored
View File

@ -19,32 +19,63 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely. If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])]) To do so, use the procedure documented by the package, typically 'autoreconf'.])])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# serial 1 (pkg-config-0.24) dnl serial 11 (pkg-config-0.29.1)
# dnl
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
# dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
# This program is free software; you can redistribute it and/or modify dnl
# it under the terms of the GNU General Public License as published by dnl This program is free software; you can redistribute it and/or modify
# the Free Software Foundation; either version 2 of the License, or dnl it under the terms of the GNU General Public License as published by
# (at your option) any later version. dnl the Free Software Foundation; either version 2 of the License, or
# dnl (at your option) any later version.
# This program is distributed in the hope that it will be useful, but dnl
# WITHOUT ANY WARRANTY; without even the implied warranty of dnl This program is distributed in the hope that it will be useful, but
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl WITHOUT ANY WARRANTY; without even the implied warranty of
# General Public License for more details. dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# dnl General Public License for more details.
# You should have received a copy of the GNU General Public License dnl
# along with this program; if not, write to the Free Software dnl You should have received a copy of the GNU General Public License
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. dnl along with this program; if not, write to the Free Software
# dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# As a special exception to the GNU General Public License, if you dnl 02111-1307, USA.
# distribute this file as part of a program that contains a dnl
# configuration script generated by Autoconf, you may include it under dnl As a special exception to the GNU General Public License, if you
# the same distribution terms that you use for the rest of that program. dnl distribute this file as part of a program that contains a
dnl configuration script generated by Autoconf, you may include it under
dnl the same distribution terms that you use for the rest of that
dnl program.
# PKG_PROG_PKG_CONFIG([MIN-VERSION]) dnl PKG_PREREQ(MIN-VERSION)
# ---------------------------------- dnl -----------------------
dnl Since: 0.29
dnl
dnl Verify that the version of the pkg-config macros are at least
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
dnl installed version of pkg-config, this checks the developer's version
dnl of pkg.m4 when generating configure.
dnl
dnl To ensure that this macro is defined, also add:
dnl m4_ifndef([PKG_PREREQ],
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
dnl
dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require.
m4_defun([PKG_PREREQ],
[m4_define([PKG_MACROS_VERSION], [0.29.1])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
dnl ----------------------------------
dnl Since: 0.16
dnl
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
dnl first found in the path. Checks that the version of pkg-config found
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
dnl used since that's the first version where most current features of
dnl pkg-config existed.
AC_DEFUN([PKG_PROG_PKG_CONFIG], AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
@ -66,18 +97,19 @@ if test -n "$PKG_CONFIG"; then
PKG_CONFIG="" PKG_CONFIG=""
fi fi
fi[]dnl fi[]dnl
])# PKG_PROG_PKG_CONFIG ])dnl PKG_PROG_PKG_CONFIG
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# dnl -------------------------------------------------------------------
# Check to see whether a particular set of modules exists. Similar dnl Since: 0.18
# to PKG_CHECK_MODULES(), but does not set variables or print errors. dnl
# dnl Check to see whether a particular set of modules exists. Similar to
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
# only at the first occurence in configure.ac, so if the first place dnl
# it's called might be skipped (such as if it is within an "if", you dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
# have to call PKG_CHECK_EXISTS manually dnl only at the first occurence in configure.ac, so if the first place
# -------------------------------------------------------------- dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS], AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \ if test -n "$PKG_CONFIG" && \
@ -87,8 +119,10 @@ m4_ifvaln([$3], [else
$3])dnl $3])dnl
fi]) fi])
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
# --------------------------------------------- dnl ---------------------------------------------
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
dnl pkg_failed based on the result.
m4_define([_PKG_CONFIG], m4_define([_PKG_CONFIG],
[if test -n "$$1"; then [if test -n "$$1"; then
pkg_cv_[]$1="$$1" pkg_cv_[]$1="$$1"
@ -100,10 +134,11 @@ m4_define([_PKG_CONFIG],
else else
pkg_failed=untried pkg_failed=untried
fi[]dnl fi[]dnl
])# _PKG_CONFIG ])dnl _PKG_CONFIG
# _PKG_SHORT_ERRORS_SUPPORTED dnl _PKG_SHORT_ERRORS_SUPPORTED
# ----------------------------- dnl ---------------------------
dnl Internal check to see if pkg-config supports short errors.
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -111,19 +146,17 @@ if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
else else
_pkg_short_errors_supported=no _pkg_short_errors_supported=no
fi[]dnl fi[]dnl
])# _PKG_SHORT_ERRORS_SUPPORTED ])dnl _PKG_SHORT_ERRORS_SUPPORTED
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
# [ACTION-IF-NOT-FOUND]) dnl [ACTION-IF-NOT-FOUND])
# dnl --------------------------------------------------------------
# dnl Since: 0.4.0
# Note that if there is a possibility the first call to dnl
# PKG_CHECK_MODULES might not happen, you should be sure to include an dnl Note that if there is a possibility the first call to
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
# dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
#
# --------------------------------------------------------------
AC_DEFUN([PKG_CHECK_MODULES], AC_DEFUN([PKG_CHECK_MODULES],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
@ -177,16 +210,40 @@ else
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
$3 $3
fi[]dnl fi[]dnl
])# PKG_CHECK_MODULES ])dnl PKG_CHECK_MODULES
# PKG_INSTALLDIR(DIRECTORY) dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
# ------------------------- dnl [ACTION-IF-NOT-FOUND])
# Substitutes the variable pkgconfigdir as the location where a module dnl ---------------------------------------------------------------------
# should install pkg-config .pc files. By default the directory is dnl Since: 0.29
# $libdir/pkgconfig, but the default can be changed by passing dnl
# DIRECTORY. The user can override through the --with-pkgconfigdir dnl Checks for existence of MODULES and gathers its build flags with
# parameter. dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
dnl and VARIABLE-PREFIX_LIBS from --libs.
dnl
dnl Note that if there is a possibility the first call to
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
dnl configure.ac.
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
_save_PKG_CONFIG=$PKG_CONFIG
PKG_CONFIG="$PKG_CONFIG --static"
PKG_CHECK_MODULES($@)
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
])dnl PKG_CHECK_MODULES_STATIC
dnl PKG_INSTALLDIR([DIRECTORY])
dnl -------------------------
dnl Since: 0.27
dnl
dnl Substitutes the variable pkgconfigdir as the location where a module
dnl should install pkg-config .pc files. By default the directory is
dnl $libdir/pkgconfig, but the default can be changed by passing
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
dnl parameter.
AC_DEFUN([PKG_INSTALLDIR], AC_DEFUN([PKG_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
m4_pushdef([pkg_description], m4_pushdef([pkg_description],
@ -197,16 +254,18 @@ AC_ARG_WITH([pkgconfigdir],
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
m4_popdef([pkg_default]) m4_popdef([pkg_default])
m4_popdef([pkg_description]) m4_popdef([pkg_description])
]) dnl PKG_INSTALLDIR ])dnl PKG_INSTALLDIR
# PKG_NOARCH_INSTALLDIR(DIRECTORY) dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
# ------------------------- dnl --------------------------------
# Substitutes the variable noarch_pkgconfigdir as the location where a dnl Since: 0.27
# module should install arch-independent pkg-config .pc files. By dnl
# default the directory is $datadir/pkgconfig, but the default can be dnl Substitutes the variable noarch_pkgconfigdir as the location where a
# changed by passing DIRECTORY. The user can override through the dnl module should install arch-independent pkg-config .pc files. By
# --with-noarch-pkgconfigdir parameter. dnl default the directory is $datadir/pkgconfig, but the default can be
dnl changed by passing DIRECTORY. The user can override through the
dnl --with-noarch-pkgconfigdir parameter.
AC_DEFUN([PKG_NOARCH_INSTALLDIR], AC_DEFUN([PKG_NOARCH_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
m4_pushdef([pkg_description], m4_pushdef([pkg_description],
@ -217,7 +276,24 @@ AC_ARG_WITH([noarch-pkgconfigdir],
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
m4_popdef([pkg_default]) m4_popdef([pkg_default])
m4_popdef([pkg_description]) m4_popdef([pkg_description])
]) dnl PKG_NOARCH_INSTALLDIR ])dnl PKG_NOARCH_INSTALLDIR
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
dnl -------------------------------------------
dnl Since: 0.28
dnl
dnl Retrieves the value of the pkg-config variable for the given module.
AC_DEFUN([PKG_CHECK_VAR],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR
# Copyright (C) 2002-2012 Free Software Foundation, Inc. # Copyright (C) 2002-2012 Free Software Foundation, Inc.
# #

View File

@ -436,6 +436,14 @@ HandleSetLatchMods(XkbDescPtr xkb,
return ReportIllegal(action->type, field); return ReportIllegal(action->type, field);
} }
static LookupEntry lockWhich[] = {
{"both", 0},
{"lock", XkbSA_LockNoUnlock},
{"neither", (XkbSA_LockNoLock | XkbSA_LockNoUnlock)},
{"unlock", XkbSA_LockNoLock},
{NULL, 0}
};
static Bool static Bool
HandleLockMods(XkbDescPtr xkb, HandleLockMods(XkbDescPtr xkb,
XkbAnyAction * action, XkbAnyAction * action,
@ -443,12 +451,19 @@ HandleLockMods(XkbDescPtr xkb,
{ {
XkbModAction *act; XkbModAction *act;
unsigned t1, t2; unsigned t1, t2;
ExprResult rtrn;
act = (XkbModAction *) action; act = (XkbModAction *) action;
if ((array_ndx != NULL) && (field == F_Modifiers)) if ((array_ndx != NULL) && (field == F_Modifiers || field == F_Affect))
return ReportActionNotArray(action->type, field); return ReportActionNotArray(action->type, field);
switch (field) switch (field)
{ {
case F_Affect:
if (!ExprResolveEnum(value, &rtrn, lockWhich))
return ReportMismatch(action->type, field, "lock or unlock");
act->flags &= ~(XkbSA_LockNoLock | XkbSA_LockNoUnlock);
act->flags |= rtrn.uval;
return True;
case F_Modifiers: case F_Modifiers:
t1 = act->flags; t1 = act->flags;
if (CheckModifierField(xkb, action->type, value, &t1, &t2)) if (CheckModifierField(xkb, action->type, value, &t1, &t2))
@ -627,6 +642,7 @@ HandleMovePtr(XkbDescPtr xkb,
act->flags &= ~XkbSA_NoAcceleration; act->flags &= ~XkbSA_NoAcceleration;
else else
act->flags |= XkbSA_NoAcceleration; act->flags |= XkbSA_NoAcceleration;
return True;
} }
return ReportIllegal(action->type, field); return ReportIllegal(action->type, field);
} }
@ -641,14 +657,6 @@ static LookupEntry btnNames[] = {
{NULL, 0} {NULL, 0}
}; };
static LookupEntry lockWhich[] = {
{"both", 0},
{"lock", XkbSA_LockNoUnlock},
{"neither", (XkbSA_LockNoLock | XkbSA_LockNoUnlock)},
{"unlock", XkbSA_LockNoLock},
{NULL, 0}
};
static Bool static Bool
HandlePtrBtn(XkbDescPtr xkb, HandlePtrBtn(XkbDescPtr xkb,
XkbAnyAction * action, XkbAnyAction * action,
@ -682,7 +690,7 @@ HandlePtrBtn(XkbDescPtr xkb,
if (!ExprResolveEnum(value, &rtrn, lockWhich)) if (!ExprResolveEnum(value, &rtrn, lockWhich))
return ReportMismatch(action->type, field, "lock or unlock"); return ReportMismatch(action->type, field, "lock or unlock");
act->flags &= ~(XkbSA_LockNoLock | XkbSA_LockNoUnlock); act->flags &= ~(XkbSA_LockNoLock | XkbSA_LockNoUnlock);
act->flags |= rtrn.ival; act->flags |= rtrn.uval;
return True; return True;
} }
else if (field == F_Count) else if (field == F_Count)
@ -779,8 +787,12 @@ static LookupEntry isoNames[] = {
{"pointer", XkbSA_ISONoAffectPtr}, {"pointer", XkbSA_ISONoAffectPtr},
{"ctrls", XkbSA_ISONoAffectCtrls}, {"ctrls", XkbSA_ISONoAffectCtrls},
{"controls", XkbSA_ISONoAffectCtrls}, {"controls", XkbSA_ISONoAffectCtrls},
{"all", ~((unsigned) 0)}, {"all", XkbSA_ISOAffectMask},
{"none", 0}, {"none", 0},
{"both", 0},
{"lock", XkbSA_LockNoUnlock},
{"neither", (XkbSA_LockNoLock | XkbSA_LockNoUnlock)},
{"unlock", XkbSA_LockNoLock},
{NULL, 0}, {NULL, 0},
}; };
@ -804,8 +816,8 @@ HandleISOLock(XkbDescPtr xkb,
if (CheckModifierField(xkb, action->type, value, &flags, &mods)) if (CheckModifierField(xkb, action->type, value, &flags, &mods))
{ {
act->flags = flags & (~XkbSA_ISODfltIsGroup); act->flags = flags & (~XkbSA_ISODfltIsGroup);
act->real_mods = mods & 0xff; act->real_mods = act->mask = (mods & 0xff);
mods = (mods >> 8) & 0xff; mods = (mods >> 8) & 0xffff;
XkbSetModActionVMods(act, mods); XkbSetModActionVMods(act, mods);
return True; return True;
} }
@ -827,6 +839,8 @@ HandleISOLock(XkbDescPtr xkb,
if (!ExprResolveMask(value, &rtrn, SimpleLookup, (XPointer) isoNames)) if (!ExprResolveMask(value, &rtrn, SimpleLookup, (XPointer) isoNames))
return ReportMismatch(action->type, field, "keyboard component"); return ReportMismatch(action->type, field, "keyboard component");
act->affect = (~rtrn.uval) & XkbSA_ISOAffectMask; act->affect = (~rtrn.uval) & XkbSA_ISOAffectMask;
act->flags &= ~(XkbSA_LockNoLock | XkbSA_LockNoUnlock);
act->flags |= rtrn.uval & (XkbSA_LockNoLock | XkbSA_LockNoUnlock);
return True; return True;
} }
return ReportIllegal(action->type, field); return ReportIllegal(action->type, field);
@ -943,6 +957,15 @@ HandleSetLockControls(XkbDescPtr xkb,
XkbActionSetCtrls(act, rtrn.uval); XkbActionSetCtrls(act, rtrn.uval);
return True; return True;
} }
else if (field == F_Affect && action->type == XkbSA_LockControls) {
if (array_ndx != NULL)
return ReportActionNotArray(action->type, field);
if (!ExprResolveEnum(value, &rtrn, lockWhich))
return ReportMismatch(action->type, field, "lock or unlock");
act->flags &= ~(XkbSA_LockNoLock | XkbSA_LockNoUnlock);
act->flags |= rtrn.uval;
return True;
}
return ReportIllegal(action->type, field); return ReportIllegal(action->type, field);
} }
@ -1122,7 +1145,7 @@ HandleDeviceBtn(XkbDescPtr xkb,
if (!ExprResolveEnum(value, &rtrn, lockWhich)) if (!ExprResolveEnum(value, &rtrn, lockWhich))
return ReportMismatch(action->type, field, "lock or unlock"); return ReportMismatch(action->type, field, "lock or unlock");
act->flags &= ~(XkbSA_LockNoLock | XkbSA_LockNoUnlock); act->flags &= ~(XkbSA_LockNoLock | XkbSA_LockNoUnlock);
act->flags |= rtrn.ival; act->flags |= rtrn.uval;
return True; return True;
} }
else if (field == F_Count) else if (field == F_Count)
@ -1289,7 +1312,7 @@ ApplyActionFactoryDefaults(XkbAction * action)
} }
else if (action->type == XkbSA_ISOLock) else if (action->type == XkbSA_ISOLock)
{ {
action->iso.real_mods = LockMask; action->iso.real_mods = action->iso.mask = LockMask;
} }
return; return;
} }

View File

@ -1,9 +1,9 @@
#! /bin/sh #! /bin/sh
# Wrapper for compilers which do not understand '-c -o'. # Wrapper for compilers which do not understand '-c -o'.
scriptversion=2016-01-11.22; # UTC scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2017 Free Software Foundation, Inc. # Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>. # Written by Tom Tromey <tromey@cygnus.com>.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
@ -17,7 +17,7 @@ scriptversion=2016-01-11.22; # UTC
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a
@ -340,7 +340,7 @@ exit $ret
# Local Variables: # Local Variables:
# mode: shell-script # mode: shell-script
# sh-indentation: 2 # sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp) # eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion=" # time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0" # time-stamp-time-zone: "UTC0"

52
app/xkbcomp/configure vendored
View File

@ -1,8 +1,8 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for xkbcomp 1.4.2. # Generated by GNU Autoconf 2.69 for xkbcomp 1.4.3.
# #
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. # Report bugs to <https://gitlab.freedesktop.org/xorg/app/xkbcomp/issues>.
# #
# #
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@ -267,7 +267,7 @@ fi
$as_echo "$0: be upgraded to zsh 4.3.4 or later." $as_echo "$0: be upgraded to zsh 4.3.4 or later."
else else
$as_echo "$0: Please tell bug-autoconf@gnu.org and $as_echo "$0: Please tell bug-autoconf@gnu.org and
$0: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg $0: https://gitlab.freedesktop.org/xorg/app/xkbcomp/issues
$0: about your system, including any error possibly output $0: about your system, including any error possibly output
$0: before this message. Then install a modern shell, or $0: before this message. Then install a modern shell, or
$0: manually run the script under such a shell if you do $0: manually run the script under such a shell if you do
@ -581,9 +581,9 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='xkbcomp' PACKAGE_NAME='xkbcomp'
PACKAGE_TARNAME='xkbcomp' PACKAGE_TARNAME='xkbcomp'
PACKAGE_VERSION='1.4.2' PACKAGE_VERSION='1.4.3'
PACKAGE_STRING='xkbcomp 1.4.2' PACKAGE_STRING='xkbcomp 1.4.3'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/app/xkbcomp/issues'
PACKAGE_URL='' PACKAGE_URL=''
ac_unique_file="Makefile.am" ac_unique_file="Makefile.am"
@ -628,7 +628,6 @@ am__EXEEXT_TRUE
LTLIBOBJS LTLIBOBJS
LIBOBJS LIBOBJS
XKBCONFIGROOT XKBCONFIGROOT
REQUIRED_MODULES
XKBCOMP_LIBS XKBCOMP_LIBS
XKBCOMP_CFLAGS XKBCOMP_CFLAGS
YACC_INST YACC_INST
@ -1319,7 +1318,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures xkbcomp 1.4.2 to adapt to many kinds of systems. \`configure' configures xkbcomp 1.4.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1389,7 +1388,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of xkbcomp 1.4.2:";; short | recursive ) echo "Configuration of xkbcomp 1.4.3:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1448,7 +1447,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations. it to find libraries and programs with nonstandard names/locations.
Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. Report bugs to <https://gitlab.freedesktop.org/xorg/app/xkbcomp/issues>.
_ACEOF _ACEOF
ac_status=$? ac_status=$?
fi fi
@ -1511,7 +1510,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
xkbcomp configure 1.4.2 xkbcomp configure 1.4.3
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -1835,7 +1834,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by xkbcomp $as_me 1.4.2, which was It was created by xkbcomp $as_me 1.4.3, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -2664,7 +2663,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='xkbcomp' PACKAGE='xkbcomp'
VERSION='1.4.2' VERSION='1.4.3'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -10589,8 +10588,6 @@ fi
done done
REQUIRED_MODULES="x11 xkbfile xproto >= 7.0.17"
# Checks for pkg-config packages # Checks for pkg-config packages
pkg_failed=no pkg_failed=no
@ -10601,12 +10598,12 @@ if test -n "$XKBCOMP_CFLAGS"; then
pkg_cv_XKBCOMP_CFLAGS="$XKBCOMP_CFLAGS" pkg_cv_XKBCOMP_CFLAGS="$XKBCOMP_CFLAGS"
elif test -n "$PKG_CONFIG"; then elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \ if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$REQUIRED_MODULES\""; } >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11 xkbfile xproto >= 7.0.17\""; } >&5
($PKG_CONFIG --exists --print-errors "$REQUIRED_MODULES") 2>&5 ($PKG_CONFIG --exists --print-errors "x11 xkbfile xproto >= 7.0.17") 2>&5
ac_status=$? ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
pkg_cv_XKBCOMP_CFLAGS=`$PKG_CONFIG --cflags "$REQUIRED_MODULES" 2>/dev/null` pkg_cv_XKBCOMP_CFLAGS=`$PKG_CONFIG --cflags "x11 xkbfile xproto >= 7.0.17" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes test "x$?" != "x0" && pkg_failed=yes
else else
pkg_failed=yes pkg_failed=yes
@ -10618,12 +10615,12 @@ if test -n "$XKBCOMP_LIBS"; then
pkg_cv_XKBCOMP_LIBS="$XKBCOMP_LIBS" pkg_cv_XKBCOMP_LIBS="$XKBCOMP_LIBS"
elif test -n "$PKG_CONFIG"; then elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \ if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$REQUIRED_MODULES\""; } >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11 xkbfile xproto >= 7.0.17\""; } >&5
($PKG_CONFIG --exists --print-errors "$REQUIRED_MODULES") 2>&5 ($PKG_CONFIG --exists --print-errors "x11 xkbfile xproto >= 7.0.17") 2>&5
ac_status=$? ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
pkg_cv_XKBCOMP_LIBS=`$PKG_CONFIG --libs "$REQUIRED_MODULES" 2>/dev/null` pkg_cv_XKBCOMP_LIBS=`$PKG_CONFIG --libs "x11 xkbfile xproto >= 7.0.17" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes test "x$?" != "x0" && pkg_failed=yes
else else
pkg_failed=yes pkg_failed=yes
@ -10644,14 +10641,14 @@ else
_pkg_short_errors_supported=no _pkg_short_errors_supported=no
fi fi
if test $_pkg_short_errors_supported = yes; then if test $_pkg_short_errors_supported = yes; then
XKBCOMP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$REQUIRED_MODULES" 2>&1` XKBCOMP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11 xkbfile xproto >= 7.0.17" 2>&1`
else else
XKBCOMP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$REQUIRED_MODULES" 2>&1` XKBCOMP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11 xkbfile xproto >= 7.0.17" 2>&1`
fi fi
# Put the nasty error message in config.log where it belongs # Put the nasty error message in config.log where it belongs
echo "$XKBCOMP_PKG_ERRORS" >&5 echo "$XKBCOMP_PKG_ERRORS" >&5
as_fn_error $? "Package requirements ($REQUIRED_MODULES) were not met: as_fn_error $? "Package requirements (x11 xkbfile xproto >= 7.0.17) were not met:
$XKBCOMP_PKG_ERRORS $XKBCOMP_PKG_ERRORS
@ -10685,7 +10682,6 @@ $as_echo "yes" >&6; }
fi fi
# Check whether --with-xkb_config_root was given. # Check whether --with-xkb_config_root was given.
if test "${with_xkb_config_root+set}" = set; then : if test "${with_xkb_config_root+set}" = set; then :
withval=$with_xkb_config_root; XKBCONFIGROOT="$withval" withval=$with_xkb_config_root; XKBCONFIGROOT="$withval"
@ -11232,7 +11228,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by xkbcomp $as_me 1.4.2, which was This file was extended by xkbcomp $as_me 1.4.3, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -11292,13 +11288,13 @@ $config_headers
Configuration commands: Configuration commands:
$config_commands $config_commands
Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>." Report bugs to <https://gitlab.freedesktop.org/xorg/app/xkbcomp/issues>."
_ACEOF _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
xkbcomp config.status 1.4.2 xkbcomp config.status 1.4.3
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View File

@ -22,8 +22,8 @@ dnl Process this file with autoconf to create configure.
# Initialize Autoconf # Initialize Autoconf
AC_PREREQ([2.60]) AC_PREREQ([2.60])
AC_INIT([xkbcomp], [1.4.2], AC_INIT([xkbcomp], [1.4.3],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xkbcomp]) [https://gitlab.freedesktop.org/xorg/app/xkbcomp/issues], [xkbcomp])
AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
@ -47,11 +47,8 @@ fi
AC_CHECK_FUNCS([strdup strcasecmp]) AC_CHECK_FUNCS([strdup strcasecmp])
REQUIRED_MODULES="x11 xkbfile xproto >= 7.0.17"
# Checks for pkg-config packages # Checks for pkg-config packages
PKG_CHECK_MODULES(XKBCOMP, [$REQUIRED_MODULES]) PKG_CHECK_MODULES(XKBCOMP, [x11 xkbfile xproto >= 7.0.17])
AC_SUBST(REQUIRED_MODULES)
AC_ARG_WITH([xkb_config_root], AC_ARG_WITH([xkb_config_root],
[AS_HELP_STRING([--with-xkb-config-root=<paths>], [AS_HELP_STRING([--with-xkb-config-root=<paths>],

View File

@ -332,7 +332,7 @@ AddKeyName(KeyNamesInfo * info,
if ((kc < info->effectiveMin) || (kc > info->effectiveMax)) if ((kc < info->effectiveMin) || (kc > info->effectiveMax))
{ {
if (!high_keycode_warned) if (!high_keycode_warned && warningLevel > 1)
{ {
WARN2("Unsupported high keycode %d for name <%s> ignored\n", WARN2("Unsupported high keycode %d for name <%s> ignored\n",
kc, name); kc, name);
@ -596,7 +596,7 @@ HandleKeycodeDef(KeycodeDef * stmt, unsigned merge, KeyNamesInfo * info)
code = result.ival; code = result.ival;
if ((code < info->effectiveMin) || (code > info->effectiveMax)) if ((code < info->effectiveMin) || (code > info->effectiveMax))
{ {
if (!high_keycode_warned) if (!high_keycode_warned && warningLevel > 1)
{ {
WARN2("Unsupported high keycode %d for name <%s> ignored\n", WARN2("Unsupported high keycode %d for name <%s> ignored\n",
code, stmt->name); code, stmt->name);

View File

@ -173,7 +173,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
REQUIRED_MODULES = @REQUIRED_MODULES@
SED = @SED@ SED = @SED@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@

View File

@ -8,4 +8,3 @@ xkbconfigdir=@XKBCONFIGROOT@
Name: xkbcomp Name: xkbcomp
Description: XKB keymap compiler Description: XKB keymap compiler
Version: @PACKAGE_VERSION@ Version: @PACKAGE_VERSION@
Requires.private: @REQUIRED_MODULES@

View File

@ -33,10 +33,6 @@
#include <X11/extensions/XKM.h> #include <X11/extensions/XKM.h>
#include "xkbpath.h" #include "xkbpath.h"
#ifndef DFLT_XKB_CONFIG_ROOT
#define DFLT_XKB_CONFIG_ROOT "/usr/lib/X11/xkb"
#endif
#ifndef PATH_MAX #ifndef PATH_MAX
#define PATH_MAX 1024 #define PATH_MAX 1024
#endif #endif