Commit b537b5524a238645167f370c73afa8686442463f

Daniel Stone 2012-05-08T17:48:29

Add flags to keymap compilation entrypoints No use as yet, but might as well ... Signed-off-by: Daniel Stone <daniel@fooishbar.org>

diff --git a/include/xkbcommon/xkbcommon.h b/include/xkbcommon/xkbcommon.h
index 4ab9e03..ebb9aa4 100644
--- a/include/xkbcommon/xkbcommon.h
+++ b/include/xkbcommon/xkbcommon.h
@@ -264,6 +264,11 @@ xkb_context_unref(struct xkb_context *context);
  * @{
  */
 
+enum xkb_map_compile_flags {
+    /** Apparently you can't have empty enums.  What a drag. */
+    XKB_MAP_COMPILE_PLACEHOLDER = 0,
+};
+
 /**
  * The primary keymap entry point: creates a new XKB keymap from a set of
  * RMLVO (Rules + Model + Layout + Variant + Option) names.
@@ -273,7 +278,8 @@ xkb_context_unref(struct xkb_context *context);
  */
 struct xkb_keymap *
 xkb_map_new_from_names(struct xkb_context *context,
-                       const struct xkb_rule_names *names);
+                       const struct xkb_rule_names *names,
+                       enum xkb_map_compile_flags flags);
 
 /**
  * Deprecated entrypoint for legacy users who need to be able to compile
@@ -287,7 +293,8 @@ xkb_map_new_from_names(struct xkb_context *context,
  */
 struct xkb_keymap *
 xkb_map_new_from_kccgst(struct xkb_context *context,
-                        const struct xkb_component_names *kccgst);
+                        const struct xkb_component_names *kccgst,
+                        enum xkb_map_compile_flags flags);
 
 enum xkb_keymap_format {
     /** The current/classic XKB text format, as generated by xkbcomp -xkb. */
@@ -300,7 +307,8 @@ enum xkb_keymap_format {
  */
 struct xkb_keymap *
 xkb_map_new_from_fd(struct xkb_context *context,
-                    int fd, enum xkb_keymap_format format);
+                    int fd, enum xkb_keymap_format format,
+                    enum xkb_map_compile_flags flags);
 
 /**
  * Creates an XKB keymap from a full text XKB keymap serialised into one
@@ -309,7 +317,8 @@ xkb_map_new_from_fd(struct xkb_context *context,
 struct xkb_keymap *
 xkb_map_new_from_string(struct xkb_context *context,
                         const char *string,
-                        enum xkb_keymap_format format);
+                        enum xkb_keymap_format format,
+                        enum xkb_map_compile_flags flags);
 
 /**
  * Takes a new reference on a keymap.
diff --git a/src/xkbcomp/xkbcomp.c b/src/xkbcomp/xkbcomp.c
index bbbc41e..e332697 100644
--- a/src/xkbcomp/xkbcomp.c
+++ b/src/xkbcomp/xkbcomp.c
@@ -116,7 +116,8 @@ unwind_file:
 
 _X_EXPORT struct xkb_keymap *
 xkb_map_new_from_names(struct xkb_context *context,
-                       const struct xkb_rule_names *rmlvo)
+                       const struct xkb_rule_names *rmlvo,
+                       enum xkb_map_compile_flags flags)
 {
     XkbRF_VarDefsRec defs;
     struct xkb_component_names *names;
@@ -139,7 +140,7 @@ xkb_map_new_from_names(struct xkb_context *context,
         return NULL;
     }
 
-    xkb = xkb_map_new_from_kccgst(context, names);
+    xkb = xkb_map_new_from_kccgst(context, names, 0);
 
     free(names->keymap);
     free(names->keycodes);
@@ -218,7 +219,8 @@ err:
 
 _X_EXPORT struct xkb_keymap *
 xkb_map_new_from_kccgst(struct xkb_context *context,
-                        const struct xkb_component_names *kccgst)
+                        const struct xkb_component_names *kccgst,
+                        enum xkb_map_compile_flags flags)
 {
     XkbFile *file;
 
@@ -258,7 +260,8 @@ xkb_map_new_from_kccgst(struct xkb_context *context,
 _X_EXPORT struct xkb_keymap *
 xkb_map_new_from_string(struct xkb_context *context,
                         const char *string,
-                        enum xkb_keymap_format format)
+                        enum xkb_keymap_format format,
+                        enum xkb_map_compile_flags flags)
 {
     XkbFile *file;
 
@@ -283,7 +286,8 @@ xkb_map_new_from_string(struct xkb_context *context,
 _X_EXPORT struct xkb_keymap *
 xkb_map_new_from_fd(struct xkb_context *context,
                     int fd,
-                    enum xkb_keymap_format format)
+                    enum xkb_keymap_format format,
+                    enum xkb_map_compile_flags flags)
 {
     XkbFile *file;
     FILE *fptr;
diff --git a/test/filecomp.c b/test/filecomp.c
index 52f54ae..70dbdc2 100644
--- a/test/filecomp.c
+++ b/test/filecomp.c
@@ -51,7 +51,7 @@ test_file(const char *path)
 
     fprintf(stderr, "\nCompiling path: %s\n", path);
 
-    xkb = xkb_map_new_from_fd(context, fd, XKB_KEYMAP_FORMAT_TEXT_V1);
+    xkb = xkb_map_new_from_fd(context, fd, XKB_KEYMAP_FORMAT_TEXT_V1, 0);
     close(fd);
 
     if (!xkb) {
@@ -86,7 +86,7 @@ test_string(const char *string)
 
     fprintf(stderr, "\nCompiling string\n");
 
-    xkb = xkb_map_new_from_string(context, string, XKB_KEYMAP_FORMAT_TEXT_V1);
+    xkb = xkb_map_new_from_string(context, string, XKB_KEYMAP_FORMAT_TEXT_V1, 0);
     if (!xkb) {
         xkb_context_unref(context);
         return 0;
diff --git a/test/namescomp.c b/test/namescomp.c
index 0bd4d87..e8652a2 100644
--- a/test/namescomp.c
+++ b/test/namescomp.c
@@ -52,7 +52,7 @@ test_names(const char *keycodes, const char *types,
     fprintf(stderr, "\nCompiling %s %s %s %s\n", kccgst.keycodes, kccgst.types,
             kccgst.compat, kccgst.symbols);
 
-    xkb = xkb_map_new_from_kccgst(context, &kccgst);
+    xkb = xkb_map_new_from_kccgst(context, &kccgst, 0);
     if (!xkb) {
         ret = 0;
         goto err_ctx;
diff --git a/test/rulescomp.c b/test/rulescomp.c
index 8158852..5ab8112 100644
--- a/test/rulescomp.c
+++ b/test/rulescomp.c
@@ -49,7 +49,7 @@ test_rmlvo(const char *rules, const char *model, const char *layout,
     fprintf(stderr, "\nCompiling %s %s %s %s %s\n", rmlvo.rules, rmlvo.model,
            rmlvo.layout, rmlvo.variant, rmlvo.options);
 
-    xkb = xkb_map_new_from_names(context, &rmlvo);
+    xkb = xkb_map_new_from_names(context, &rmlvo, 0);
     if (!xkb) {
         xkb_context_unref(context);
         return 0;
diff --git a/test/state.c b/test/state.c
index 0090d7c..d405b3e 100644
--- a/test/state.c
+++ b/test/state.c
@@ -218,7 +218,7 @@ main(void)
     context = xkb_context_new();
     assert(context);
 
-    xkb = xkb_map_new_from_names(context, &rmlvo);
+    xkb = xkb_map_new_from_names(context, &rmlvo, 0);
     assert(xkb);
 
     test_update_key(xkb);