diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2020-07-10 08:50:02 +1000 |
---|---|---|
committer | Ran Benita <ran@unusedvar.com> | 2020-08-30 21:49:41 +0300 |
commit | d7b39f6ffbe9b46181c5597b0d0e7373eb2e9070 (patch) | |
tree | 9cc4b5e240b5532c822a5f9106a983a3a8d84425 /src/context.c | |
parent | 05d6efc41723601d4d38e0c43129d2ab9d53fa48 (diff) | |
download | xorg-lib-libxkbcommon-d7b39f6ffbe9b46181c5597b0d0e7373eb2e9070.tar.gz |
Add /etc/xkb as extra lookup path for system data files
This completes the usual triplet of configuration locations available for most
processes:
- vendor-provided data files in /usr/share/X11/xkb
- system-specific data files in /etc/xkb
- user-specific data files in $XDG_CONFIG_HOME/xkb
The default lookup order user, system, vendor, just like everything else that
uses these conventions.
For include directives in rules files, the '%E' resolves to that path.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'src/context.c')
-rw-r--r-- | src/context.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/context.c b/src/context.c index ef9b774..2abaa9b 100644 --- a/src/context.c +++ b/src/context.c @@ -84,6 +84,13 @@ err: } const char * +xkb_context_include_path_get_extra_path(struct xkb_context *ctx) +{ + const char *extra = secure_getenv("XKB_CONFIG_EXTRA_PATH"); + return extra ? extra : DFLT_XKB_CONFIG_EXTRA_PATH; +} + +const char * xkb_context_include_path_get_system_path(struct xkb_context *ctx) { const char *root = secure_getenv("XKB_CONFIG_ROOT"); @@ -96,7 +103,7 @@ xkb_context_include_path_get_system_path(struct xkb_context *ctx) XKB_EXPORT int xkb_context_include_path_append_default(struct xkb_context *ctx) { - const char *home, *xdg, *root; + const char *home, *xdg, *root, *extra; char *user_path; int ret = 0; @@ -126,6 +133,8 @@ xkb_context_include_path_append_default(struct xkb_context *ctx) } } + extra = xkb_context_include_path_get_extra_path(ctx); + ret |= xkb_context_include_path_append(ctx, extra); root = xkb_context_include_path_get_system_path(ctx); ret |= xkb_context_include_path_append(ctx, root); |