#include "modifiers.h"
int
-lk_add_map(struct keymap *kmap, int i, int explicit)
+lk_add_map(struct keymap *kmap, int i)
{
if (i < 0 || i >= MAX_NR_KEYMAPS) {
ERR(kmap, _("lk_add_map called with bad index %d"), i);
return -1;
}
- if (!kmap->defining[i]) {
- if (kmap->keymaps_line_seen && !explicit) {
- ERR(kmap, _("adding map %d violates explicit keymaps line"), i);
- return -1;
- }
+ if (kmap->defining[i])
+ return 0;
+
+ kmap->defining[i] = i + 1;
+
+ if (kmap->max_keymap <= i)
+ kmap->max_keymap = i + 1;
- kmap->defining[i] = i+1;
- if (kmap->max_keymap <= i)
- kmap->max_keymap = i + 1;
- }
return 0;
}
return 0;
if (!kmap->defining[k_table]) {
- if (lk_add_map(kmap, k_table, 0) == -1)
+ if (kmap->keymaps_line_seen) {
+ ERR(kmap, _("adding map %d violates explicit keymaps line"),
+ k_table);
+ return -1;
+ }
+
+ if (lk_add_map(kmap, k_table) == -1)
return -1;
}
lk_init(&kmap);
kmap.log_fn = NULL;
- fail_if(lk_add_map(&kmap, -1, 0) == 0,
+ fail_if(lk_add_map(&kmap, -1) == 0,
"Possible to define the map with index -1");
- fail_if(lk_add_map(&kmap, MAX_NR_KEYMAPS, 0) == 0,
+ fail_if(lk_add_map(&kmap, MAX_NR_KEYMAPS) == 0,
"Possible to define the map with index -1");
- fail_unless(lk_add_map(&kmap, 0, 0) == 0,
+ fail_unless(lk_add_map(&kmap, 0) == 0,
"Unable to define map");
- fail_unless(lk_add_map(&kmap, 0, 0) == 0,
+ fail_unless(lk_add_map(&kmap, 0) == 0,
"Unable to define map");
lk_free(&kmap);
START_TEST(test_add_map_0)
{
- int explicit;
struct keymap kmap;
lk_init(&kmap);
kmap.log_fn = NULL;
- kmap.keymaps_line_seen = 1;
- explicit = 0;
- fail_if(lk_add_map(&kmap, 0, explicit) == 0,
- "Possible to define map (keymaps_line_seen=%d, explicit=%d)",
- kmap.keymaps_line_seen, explicit);
-
- explicit = 1;
- fail_unless(lk_add_map(&kmap, 1, explicit) == 0,
- "Possible to define map (keymaps_line_seen=%d, explicit=%d)",
- kmap.keymaps_line_seen, explicit);
-
- lk_free(&kmap);
-}
-END_TEST
-
-START_TEST(test_add_map_1)
-{
- int explicit = 0;
- struct keymap kmap;
-
- lk_init(&kmap);
- kmap.log_fn = NULL;
-
- fail_if(lk_add_map(&kmap, 0, explicit) != 0, "Unable to define map");
+ fail_if(lk_add_map(&kmap, 0) != 0, "Unable to define map");
fail_if(kmap.max_keymap != 1, "Wrong max_keymap number");
- fail_if(lk_add_map(&kmap, 0, explicit) != 0, "Unable to define map");
+ fail_if(lk_add_map(&kmap, 0) != 0, "Unable to define map");
fail_if(kmap.max_keymap != 1, "Wrong max_keymap number");
- fail_if(lk_add_map(&kmap, 1, explicit) != 0, "Unable to define map");
+ fail_if(lk_add_map(&kmap, 1) != 0, "Unable to define map");
fail_if(kmap.max_keymap != 2, "Wrong max_keymap number");
- fail_if(lk_add_map(&kmap, 2, explicit) != 0, "Unable to define map");
+ fail_if(lk_add_map(&kmap, 2) != 0, "Unable to define map");
fail_if(kmap.max_keymap != 3, "Wrong max_keymap number");
lk_free(&kmap);
tcase_add_test(tc_core, test_add_map_border);
tcase_add_test(tc_core, test_add_map_0);
- tcase_add_test(tc_core, test_add_map_1);
suite_add_tcase(s, tc_core);
return s;