summaryrefslogtreecommitdiff
path: root/src/xkbcomp
diff options
context:
space:
mode:
authorRan Benita <ran@unusedvar.com>2019-11-12 22:31:46 +0200
committerRan Benita <ran@unusedvar.com>2019-11-12 22:31:46 +0200
commit3d43f4806d30461bba671e514e9b8a52d732ee20 (patch)
tree33d800a3679c2dfb27ad473ab757ccad7fe3386d /src/xkbcomp
parent7d44c7a9f96428455219532c688dc0c7a69b4f79 (diff)
downloadxorg-lib-libxkbcommon-3d43f4806d30461bba671e514e9b8a52d732ee20.tar.gz
compat: reject interpret modifier predicate with more than one value
Given interpret ISO_Level3_Shift+AnyOf(all,extraneous) { ... }; Previously, extraneous (and further) was ignored. Now it's rejected. Signed-off-by: Ran Benita <ran@unusedvar.com>
Diffstat (limited to 'src/xkbcomp')
-rw-r--r--src/xkbcomp/compat.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/xkbcomp/compat.c b/src/xkbcomp/compat.c
index bd587c8..cee962e 100644
--- a/src/xkbcomp/compat.c
+++ b/src/xkbcomp/compat.c
@@ -265,7 +265,7 @@ ResolveStateAndPredicate(ExprDef *expr, enum xkb_match_operation *pred_rtrn,
if (expr->expr.op == EXPR_ACTION_DECL) {
const char *pred_txt = xkb_atom_text(info->ctx, expr->action.name);
if (!LookupString(symInterpretMatchMaskNames, pred_txt, pred_rtrn) ||
- !expr->action.args) {
+ !expr->action.args || expr->action.args->common.next) {
log_err(info->ctx,
"Illegal modifier predicate \"%s\"; Ignored\n", pred_txt);
return false;