summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/xkbcommon/xkbcommon.h17
-rw-r--r--src/xkbcomp/xkbcomp.c14
-rw-r--r--test/filecomp.c4
-rw-r--r--test/namescomp.c2
-rw-r--r--test/rulescomp.c2
-rw-r--r--test/state.c2
6 files changed, 27 insertions, 14 deletions
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);