context: add xkb_context_sanitize_rule_names()
authorRan Benita <ran234@gmail.com>
Mon, 10 Feb 2014 11:06:22 +0000 (13:06 +0200)
committerRan Benita <ran234@gmail.com>
Mon, 10 Feb 2014 11:15:58 +0000 (13:15 +0200)
We want all the default logic in a test, so encapsulate it in this
function, and make all the get_default_* functions static.

Signed-off-by: Ran Benita <ran234@gmail.com>
src/context-priv.c
src/context.h
src/keymap.c

index 999ece9..c934201 100644 (file)
@@ -112,7 +112,7 @@ xkb_context_get_buffer(struct xkb_context *ctx, size_t size)
 #define DEFAULT_XKB_OPTIONS NULL
 #endif
 
-const char *
+static const char *
 xkb_context_get_default_rules(struct xkb_context *ctx)
 {
     const char *env = NULL;
@@ -123,7 +123,7 @@ xkb_context_get_default_rules(struct xkb_context *ctx)
     return env ? env : DEFAULT_XKB_RULES;
 }
 
-const char *
+static const char *
 xkb_context_get_default_model(struct xkb_context *ctx)
 {
     const char *env = NULL;
@@ -134,7 +134,7 @@ xkb_context_get_default_model(struct xkb_context *ctx)
     return env ? env : DEFAULT_XKB_MODEL;
 }
 
-const char *
+static const char *
 xkb_context_get_default_layout(struct xkb_context *ctx)
 {
     const char *env = NULL;
@@ -145,7 +145,7 @@ xkb_context_get_default_layout(struct xkb_context *ctx)
     return env ? env : DEFAULT_XKB_LAYOUT;
 }
 
-const char *
+static const char *
 xkb_context_get_default_variant(struct xkb_context *ctx)
 {
     const char *env = NULL;
@@ -159,7 +159,7 @@ xkb_context_get_default_variant(struct xkb_context *ctx)
     return env ? env : DEFAULT_XKB_VARIANT;
 }
 
-const char *
+static const char *
 xkb_context_get_default_options(struct xkb_context *ctx)
 {
     const char *env = NULL;
@@ -169,3 +169,22 @@ xkb_context_get_default_options(struct xkb_context *ctx)
 
     return env ? env : DEFAULT_XKB_OPTIONS;
 }
+
+void
+xkb_context_sanitize_rule_names(struct xkb_context *ctx,
+                                struct xkb_rule_names *rmlvo)
+{
+    if (isempty(rmlvo->rules))
+        rmlvo->rules = xkb_context_get_default_rules(ctx);
+    if (isempty(rmlvo->model))
+        rmlvo->model = xkb_context_get_default_model(ctx);
+    /* Layout and variant are tied together, so don't try to use one from
+     * the caller and one from the environment. */
+    if (isempty(rmlvo->layout)) {
+        rmlvo->layout = xkb_context_get_default_layout(ctx);
+        rmlvo->variant = xkb_context_get_default_variant(ctx);
+    }
+    /* Options can be empty, so respect that if passed in. */
+    if (rmlvo->options == NULL)
+        rmlvo->options = xkb_context_get_default_options(ctx);
+}
index 486f408..03e6d50 100644 (file)
@@ -91,20 +91,9 @@ ATTR_PRINTF(4, 5) void
 xkb_log(struct xkb_context *ctx, enum xkb_log_level level, int verbosity,
         const char *fmt, ...);
 
-const char *
-xkb_context_get_default_rules(struct xkb_context *ctx);
-
-const char *
-xkb_context_get_default_model(struct xkb_context *ctx);
-
-const char *
-xkb_context_get_default_layout(struct xkb_context *ctx);
-
-const char *
-xkb_context_get_default_variant(struct xkb_context *ctx);
-
-const char *
-xkb_context_get_default_options(struct xkb_context *ctx);
+void
+xkb_context_sanitize_rule_names(struct xkb_context *ctx,
+                                struct xkb_rule_names *rmlvo);
 
 /*
  * The format is not part of the argument list in order to avoid the
index abf1387..892b7cf 100644 (file)
@@ -137,28 +137,15 @@ xkb_keymap_new_from_names(struct xkb_context *ctx,
         return NULL;
     }
 
+    keymap = xkb_keymap_new(ctx, format, flags);
+    if (!keymap)
+        return NULL;
+
     if (rmlvo_in)
         rmlvo = *rmlvo_in;
     else
         memset(&rmlvo, 0, sizeof(rmlvo));
-
-    if (isempty(rmlvo.rules))
-        rmlvo.rules = xkb_context_get_default_rules(ctx);
-    if (isempty(rmlvo.model))
-        rmlvo.model = xkb_context_get_default_model(ctx);
-    /* Layout and variant are tied together, so don't try to use one from
-     * the caller and one from the environment. */
-    if (isempty(rmlvo.layout)) {
-        rmlvo.layout = xkb_context_get_default_layout(ctx);
-        rmlvo.variant = xkb_context_get_default_variant(ctx);
-    }
-    /* Options can be empty, so respect that if passed in. */
-    if (rmlvo.options == NULL)
-        rmlvo.options = xkb_context_get_default_options(ctx);
-
-    keymap = xkb_keymap_new(ctx, format, flags);
-    if (!keymap)
-        return NULL;
+    xkb_context_sanitize_rule_names(ctx, &rmlvo);
 
     if (!ops->keymap_new_from_names(keymap, &rmlvo)) {
         xkb_keymap_unref(keymap);