darray_foreach(entry, type->map) {
char *str;
+ /*
+ * Printing level 1 entries is redundant, it's the default,
+ * unless there's preserve info.
+ */
+ if (entry->level == 0 && entry->preserve.mask == 0)
+ continue;
+
str = get_mod_mask_text(keymap, entry->mods.real_mods,
entry->mods.vmods);
write_buf(buf, "\t\t\tmap[%s]= Level%d;\n",
return NULL;
}
-static void
-DeleteLevel1MapEntries(KeyTypeInfo * type)
-{
- unsigned int i, n;
-
- /* TODO: Be just a bit more clever here. */
- for (i = 0; i < darray_size(type->entries); i++) {
- if (darray_item(type->entries, i).level == 0) {
- for (n = i; n < darray_size(type->entries) - 1; n++)
- darray_item(type->entries, n) =
- darray_item(type->entries, n + 1);
- (void) darray_pop(type->entries);
- }
- }
-}
-
static struct xkb_kt_map_entry *
NextMapEntry(KeyTypesInfo *info, KeyTypeInfo * type)
{
list_foreach(def, &info.types, entry) {
type = &darray_item(keymap->types, i++);
- DeleteLevel1MapEntries(def);
-
if (!CopyDefToKeyType(&info, def, type))
goto err_info;
}
};
type "LOCAL_EIGHT_LEVEL" {
modifiers= Shift+Lock+Control+LevelThree;
- map[Shift+Lock]= Level1;
map[Shift]= Level2;
map[Lock]= Level2;
map[LevelThree]= Level3;
};
type "FOUR_LEVEL_MIXED_KEYPAD" {
modifiers= Shift+NumLock+LevelThree;
- map[Shift+NumLock]= Level1;
map[NumLock]= Level2;
map[Shift]= Level2;
map[LevelThree]= Level3;