summaryrefslogtreecommitdiff
path: root/src/locale/keymap-util.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-05-28 17:53:00 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-06-06 09:22:33 -0400
commitaa63b56f5f56c9aa9b0ed00b4213c258c629c614 (patch)
tree02f7e722af41182e97637d0d8e93f19b8e78eb3e /src/locale/keymap-util.c
parent4897d1dc0f00f1571b0cc78ec4a20cd78c6c3ade (diff)
keymap-util: add tests and fix one small bug
When converting an empty x11 variant, we would not delete vconsole mapping properly. find_legacy_keymap() is made non-static. I think it's important to be able to test it. In principle we could also test it through the higher-level interface of x11_convert_to_vconsole, but x11_convert_to_vconsole also uses find_converted_keymap, and it's better to test at this lower level. Note that find_legacy_keymap might be a bit of a misnomer, because we'd probably want to keep kbd-model-map even if the "legacy" layouts went away. So we might want to change this name, but I'm leaving that for another commit.
Diffstat (limited to 'src/locale/keymap-util.c')
-rw-r--r--src/locale/keymap-util.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
index 1827014b89..68b80a4801 100644
--- a/src/locale/keymap-util.c
+++ b/src/locale/keymap-util.c
@@ -522,7 +522,7 @@ int find_converted_keymap(const char *x11_layout, const char *x11_variant, char
return 0;
}
-static int find_legacy_keymap(Context *c, char **new_keymap) {
+int find_legacy_keymap(Context *c, char **new_keymap) {
_cleanup_fclose_ FILE *f;
unsigned n = 0;
unsigned best_matching = 0;
@@ -617,6 +617,7 @@ int find_language_fallback(const char *lang, char **language) {
_cleanup_fclose_ FILE *f = NULL;
unsigned n = 0;
+ assert(lang);
assert(language);
f = fopen(SYSTEMD_LANGUAGE_FALLBACK_MAP, "re");
@@ -651,7 +652,7 @@ int x11_convert_to_vconsole(Context *c) {
!isempty(c->vc_keymap) ||
!isempty(c->vc_keymap_toggle);
- context_free_x11(c);
+ context_free_vconsole(c);
} else {
char *new_keymap = NULL;
int r;