Add context flag to inhibit default include paths
authorDaniel Stone <daniel@fooishbar.org>
Tue, 8 May 2012 16:52:45 +0000 (17:52 +0100)
committerDaniel Stone <daniel@fooishbar.org>
Tue, 8 May 2012 16:52:45 +0000 (17:52 +0100)
Which will make the context start with no include paths at all.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
include/xkbcommon/xkbcommon.h
src/context.c

index 31570f2..0527143 100644 (file)
@@ -194,8 +194,8 @@ xkb_string_to_keysym(const char *s);
  */
 
 enum xkb_context_flags {
-    /** Apparently you can't have empty enums.  What a drag. */
-    XKB_CONTEXT_PLACEHOLDER = 0,
+    /** Create this context with an empty include path. */
+    XKB_CONTEXT_NO_DEFAULT_INCLUDES = 1,
 };
 
 /**
index 39c1326..2aaee35 100644 (file)
@@ -186,7 +186,8 @@ xkb_context_new(enum xkb_context_flags flags)
 
     context->refcnt = 1;
 
-    if (!xkb_context_include_path_append_default(context)) {
+    if (!(flags & XKB_CONTEXT_NO_DEFAULT_INCLUDES) &&
+        !xkb_context_include_path_append_default(context)) {
         xkb_context_unref(context);
         return NULL;
     }