From 2a473b906943ffd807ad81960c47530ee7ae9a60 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Tue, 21 Jun 2011 14:03:53 +0100 Subject: 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 --- compat.c | 7 +++++++ 1 file changed, 7 insertions(+) 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; -- cgit v1.2.3