Add flags to keymap compilation entrypoints
authorDaniel Stone <daniel@fooishbar.org>
Tue, 8 May 2012 16:48:29 +0000 (17:48 +0100)
committerDaniel Stone <daniel@fooishbar.org>
Tue, 8 May 2012 16:48:29 +0000 (17:48 +0100)
No use as yet, but might as well ...

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
include/xkbcommon/xkbcommon.h
src/xkbcomp/xkbcomp.c
test/filecomp.c
test/namescomp.c
test/rulescomp.c
test/state.c

index 4ab9e038bfb497f5be691321aa7fbf74f922bef1..ebb9aa4485668d1345cd2aa7aae2cf8d1f6d6bc3 100644 (file)
@@ -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.
index bbbc41e5cd2b1bfb322ae72b3f60d6f968fc4106..e332697a46e9e8acf4f84876483bfa99d419e3d7 100644 (file)
@@ -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;
index 52f54ae101a9d93818ae738b2a2c85167e1aaf8d..70dbdc28d1371928308065d186891d220e93ff5b 100644 (file)
@@ -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;
index 0bd4d87157f2ad9e5f64022790e0ddeb8dd96a64..e8652a2f26f583f8e4a3d8a7f6c7a58d3194154b 100644 (file)
@@ -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;
index 81588525b5074f478e234d46176aea0e3fcd0bf3..5ab8112691d3bd7f769aba6f55ba6891f36ce036 100644 (file)
@@ -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;
index 0090d7cdf6e15d4bc6614fcea11529d07c9d1d29..d405b3e3742d70ab8038e3ea0c31a3c192907d98 100644 (file)
@@ -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);