From 8269cbce81958363b4e278e26e3db3f811d4a8aa Mon Sep 17 00:00:00 2001 From: Dan Nicholson Date: Sat, 4 Apr 2009 10:02:39 -0700 Subject: [PATCH] xkbcomp: Generating components requires rules _and_ layout This came from trial and error, but it seems that you can generate a valid keymap with only rules and layout. --- src/xkbcomp/xkbcomp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/xkbcomp/xkbcomp.c b/src/xkbcomp/xkbcomp.c index bab4403..92caf54 100644 --- a/src/xkbcomp/xkbcomp.c +++ b/src/xkbcomp/xkbcomp.c @@ -40,6 +40,8 @@ authorization from the authors. unsigned int debugFlags = 0; unsigned int warningLevel = 0; +#define ISEMPTY(str) (!(str) || (strlen(str) == 0)) + static int XkbFileFromComponents(const XkbComponentNamesPtr ktcsg, XkbFile **file) { @@ -112,8 +114,8 @@ XkbcCompileKeymapFromRules(const char *rules, XkbRF_VarDefsPtr defs) XkbComponentNamesPtr names; XkbcDescPtr xkb; - if (!rules || strlen(rules) == 0) { - ERROR("no rules supplied for generating XKB keymap\n"); + if (ISEMPTY(rules) || ISEMPTY(defs->layout)) { + ERROR("rules and layout required to generate XKB keymap\n"); return NULL; } -- 2.7.4