summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2020-07-07 10:17:12 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2020-07-08 15:21:19 +1000
commitd0a29eee29bc4f15cf05793c4df8da79e627608c (patch)
tree78e8ad081dd5f9660c68c25d77b4b37a92423b26 /tools
parentce286601b0410f0daaeac19f6bcc8dd90c3944a8 (diff)
downloadxorg-lib-libxkbcommon-d0a29eee29bc4f15cf05793c4df8da79e627608c.tar.gz
tools: add verbose logging to rmlvo-to-keymap
Since we want to log the include paths too we need to split the context init up, otherwise include paths are added before we can set the verbosity. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'tools')
-rw-r--r--tools/rmlvo-to-keymap.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/tools/rmlvo-to-keymap.c b/tools/rmlvo-to-keymap.c
index 54591bf..f1822ec 100644
--- a/tools/rmlvo-to-keymap.c
+++ b/tools/rmlvo-to-keymap.c
@@ -36,15 +36,16 @@
static void
usage(char **argv)
{
- printf("Usage: %s [--rules <rules>] [--layout <layout>] [--variant <variant>] [--options <option>]\n",
+ printf("Usage: %s [--verbose] [--rules <rules>] [--layout <layout>] [--variant <variant>] [--options <option>]\n",
argv[0]);
printf("Compile the RMLVO to a keymap and print it.\n");
}
static bool
-parse_options(int argc, char **argv, struct xkb_rule_names *names)
+parse_options(int argc, char **argv, bool *verbose, struct xkb_rule_names *names)
{
enum options {
+ OPT_VERBOSE,
OPT_RULES,
OPT_MODEL,
OPT_LAYOUT,
@@ -53,6 +54,7 @@ parse_options(int argc, char **argv, struct xkb_rule_names *names)
};
static struct option opts[] = {
{"help", no_argument, 0, 'h'},
+ {"verbose", no_argument, 0, OPT_VERBOSE},
{"rules", required_argument, 0, OPT_RULES},
{"model", required_argument, 0, OPT_MODEL},
{"layout", required_argument, 0, OPT_LAYOUT},
@@ -72,6 +74,9 @@ parse_options(int argc, char **argv, struct xkb_rule_names *names)
case 'h':
usage(argv);
exit(0);
+ case OPT_VERBOSE:
+ *verbose = true;
+ break;
case OPT_RULES:
names->rules = optarg;
break;
@@ -110,18 +115,26 @@ main(int argc, char **argv)
.options = NULL,
};
int rc;
+ bool verbose = false;
if (argc <= 1) {
usage(argv);
return 1;
}
- if (!parse_options(argc, argv, &names))
+ if (!parse_options(argc, argv, &verbose, &names))
return 1;
- ctx = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
+ ctx = xkb_context_new(XKB_CONTEXT_NO_DEFAULT_INCLUDES);
assert(ctx);
+ if (verbose) {
+ xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_DEBUG);
+ xkb_context_set_log_verbosity(ctx, 10);
+ }
+
+ xkb_context_include_path_append_default(ctx);
+
keymap = xkb_keymap_new_from_names(ctx, &names, XKB_KEYMAP_COMPILE_NO_FLAGS);
rc = (keymap == NULL);