summaryrefslogtreecommitdiff
path: root/compat.c
diff options
context:
space:
mode:
authorDaniel Stone <daniel@fooishbar.org>2011-06-21 14:03:53 +0100
committerDaniel Stone <daniel@fooishbar.org>2011-06-21 14:10:13 +0100
commit2a473b906943ffd807ad81960c47530ee7ae9a60 (patch)
treee3c4706fb599d1851bad4b790dbf5243858eb613 /compat.c
parenta2816345e58c88f5806a5c6df310c7d9c62264f0 (diff)
downloadxorg-app-xkbcomp-2a473b906943ffd807ad81960c47530ee7ae9a60.tar.gz
Interp: Ignore NoSymbol definitions
A NoSymbol syminterp leads to a Any+AnyOfOrAll(None) definition, which is never what anyone would actually ever want in a sym interp. The failure mode here was: interpret XF86SomeKeysymYouDontHaveYet { action=Something() } leading to: interpret Any+AnyOfOrAll(None) { action=Something() } leading to every single non-action key triggering your shiny new action that was only supposed to come from a new keysym. At least you could VT switch or zap, I guess. Later, more invasive, revisions will bring a more useful error message. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Diffstat (limited to 'compat.c')
-rw-r--r--compat.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/compat.c b/compat.c
index 144d417..a058dfb 100644
--- a/compat.c
+++ b/compat.c
@@ -658,6 +658,13 @@ HandleInterpDef(InterpDef * def, XkbDescPtr xkb, unsigned merge,
ACTION("Symbol interpretation ignored\n");
return True;
}
+ if (def->sym == NoSymbol)
+ {
+ ERROR("Couldn't determine keysym\n");
+ ACTION("Symbol interpretation ignored\n");
+ return True;
+ }
+
if (def->merge != MergeDefault)
merge = def->merge;