[PATCH setxkbmap] Few messages added for easier troubleshooting.
Van de Bugger
van.de.bugger at gmail.com
Fri Feb 25 12:38:43 PST 2011
If setxkbmap fails to load rules file, it is not possible to find
out where setxkbmap looks for it. Increasing verbosity level does
not help:
$ ./setxkbmap -v 10
Setting verbose level to 10
locale is C
Couldn't find rules file (evdev)
The problem fixed by adding two messages: before loading file and
after successful loading. Messages are displayed if verbosity level
is 8 or higher:
$ ./setxkbmap -v 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/local/share/X11/xkb/rules/evdev...
Couldn't find rules file (evdev)
Signed-off-by: Van de Bugger <van.de.bugger at gmail.com>
---
setxkbmap.c | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/setxkbmap.c b/setxkbmap.c
index 7aa56f7..fc0362e 100644
--- a/setxkbmap.c
+++ b/setxkbmap.c
@@ -186,6 +186,7 @@ FILE *findFileInPath(char *name);
Bool addStringToOptions(char *opt_str, list_t *opts);
char *stringFromOptions(char *orig, list_t *newOpts);
Bool applyConfig(char *name);
+XkbRF_RulesPtr tryLoadRules(char *name, char *locale, Bool wantDesc, Bool wantRules);
Bool applyRules(void);
Bool applyComponentNames(void);
void printKeymap(void);
@@ -804,6 +805,19 @@ applyConfig(char *name)
return True;
}
+XkbRF_RulesPtr
+tryLoadRules(char *name, char *locale, Bool wantDesc, Bool wantRules)
+{
+ XkbRF_RulesPtr rules = NULL;
+ VMSG1(7, "Trying to load rules file %s...\n", name);
+ rules = XkbRF_Load(name, locale, wantDesc, wantRules);
+ if (rules)
+ {
+ VMSG(7, "Success.\n");
+ };
+ return rules;
+}
+
/**
* If any of model, layout, variant or options is specified, then compile the
* options into the
@@ -839,7 +853,7 @@ applyRules(void)
if (rfName[0] == '/')
{
- rules = XkbRF_Load(rfName, settings.locale.value, True, True);
+ rules = tryLoadRules(rfName, settings.locale.value, True, True);
}
else
{
@@ -854,7 +868,7 @@ applyRules(void)
inclPath.item[i], rfName);
continue;
}
- rules = XkbRF_Load(buf, settings.locale.value, True, True);
+ rules = tryLoadRules(buf, settings.locale.value, True, True);
}
}
if (!rules)
--
1.7.4
More information about the xorg-devel
mailing list