diff options
author | Daniel Stone <daniel@fooishbar.org> | 2011-06-21 14:03:53 +0100 |
---|---|---|
committer | Daniel Stone <daniel@fooishbar.org> | 2011-06-21 14:10:13 +0100 |
commit | 2a473b906943ffd807ad81960c47530ee7ae9a60 (patch) | |
tree | e3c4706fb599d1851bad4b790dbf5243858eb613 | |
parent | a2816345e58c88f5806a5c6df310c7d9c62264f0 (diff) |
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>
-rw-r--r-- | compat.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -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; |