public inbox for kbd@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH 1/4] libkeymap: prevent NULL dereference in parser
@ 2026-02-14 17:27 Krdyan Areg
  2026-02-14 17:27 ` [PATCH 2/4] kbdfile: remove redundant NULL check in findfile_by_fullname Krdyan Areg
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Krdyan Areg @ 2026-02-14 17:27 UTC (permalink / raw)
  To: kbd; +Cc: gladkov.alexey, Krdyan Areg

The parser accesses ctx->key_line array elements without checking if
lk_array_get() returns NULL, which can lead to crashes.

Add NULL checks before dereferencing array values.

Signed-off-by: Krdyan Areg areg.krdian@gmail.com
---
 src/libkeymap/parser.y | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/libkeymap/parser.y b/src/libkeymap/parser.y
index 2cd509f..a87fb54 100644
--- a/src/libkeymap/parser.y
+++ b/src/libkeymap/parser.y
@@ -320,6 +320,9 @@ singleline	: KEYCODE NUMBER EQUALS rvalue0 EOL
 
 							if (i < ctx->key_line->count) {
 								val = lk_array_get(ctx->key_line, i);
+								if (!val)
+									YYERROR;
+
 								keycode = *val;
 							}
 
@@ -338,7 +341,7 @@ singleline	: KEYCODE NUMBER EQUALS rvalue0 EOL
 					for (i = 0; i < ctx->key_line->count; i++) {
 						val = lk_array_get(ctx->key_line, i);
 
-						if (lk_add_key(ctx, i, $2, *val) < 0)
+						if (!val || lk_add_key(ctx, i, $2, *val) < 0)
 							YYERROR;
 					}
 				}
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/4] kbdfile: remove redundant NULL check in findfile_by_fullname
  2026-02-14 17:27 [PATCH 1/4] libkeymap: prevent NULL dereference in parser Krdyan Areg
@ 2026-02-14 17:27 ` Krdyan Areg
  2026-02-14 17:27 ` [PATCH 3/4] libkeymap: add NULL check in kt_latin symbol lookup Krdyan Areg
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Krdyan Areg @ 2026-02-14 17:27 UTC (permalink / raw)
  To: kbd; +Cc: gladkov.alexey, Krdyan Areg

The loop condition suffixes[i] already ensures that suffixes[i] is non-NULL at each iteration.
The inner NULL check is dead code and can never be executed.

Signed-off-by: Krdyan Areg <areg.krdian@gmail.com>
---
 src/libkbdfile/kbdfile.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/libkbdfile/kbdfile.c b/src/libkbdfile/kbdfile.c
index 5b1ee6d..2e6347f 100644
--- a/src/libkbdfile/kbdfile.c
+++ b/src/libkbdfile/kbdfile.c
@@ -280,9 +280,6 @@ findfile_by_fullname(const char *fnam, const char *const *suffixes, struct kbdfi
 	fp->flags &= ~KBDFILE_COMPRESSED;
 
 	for (i = 0; suffixes[i]; i++) {
-		if (suffixes[i] == NULL)
-			continue; /* we tried it already */
-
 		if (kbdfile_pathname_sprintf(fp, "%s%s", fnam, suffixes[i]) < 0)
 			continue;
 
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/4] libkeymap: add NULL check in kt_latin symbol lookup
  2026-02-14 17:27 [PATCH 1/4] libkeymap: prevent NULL dereference in parser Krdyan Areg
  2026-02-14 17:27 ` [PATCH 2/4] kbdfile: remove redundant NULL check in findfile_by_fullname Krdyan Areg
@ 2026-02-14 17:27 ` Krdyan Areg
  2026-02-14 17:27 ` [PATCH 4/4] libkeymap: add NULL check in lk_dump_ctable diacritical loop Krdyan Areg
  2026-02-15 17:34 ` [PATCH 1/4] libkeymap: prevent NULL dereference in parser Alexey Gladkov
  3 siblings, 0 replies; 8+ messages in thread
From: Krdyan Areg @ 2026-02-14 17:27 UTC (permalink / raw)
  To: kbd; +Cc: gladkov.alexey, Krdyan Areg

The get_sym() function can return NULL for invalid or unassigned
symbol indices. Passing NULL to strcmp() would cause a crash.

Add a NULL check before comparing symbol names.

Signed-off-by: Krdyan Areg <areg.krdian@gmail.com>
---
 src/libkeymap/ksyms.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/libkeymap/ksyms.c b/src/libkeymap/ksyms.c
index 680653b..caf41e2 100644
--- a/src/libkeymap/ksyms.c
+++ b/src/libkeymap/ksyms.c
@@ -293,7 +293,8 @@ kt_latin(struct lk_ctx *ctx, const char *s, int direction)
 			: syms[KT_LATIN].size);
 
 	for (i = 0; i < max; i++) {
-		if (!strcmp(s, get_sym(ctx, KT_LATIN, i)))
+		const char *ksym = get_sym(ctx, KT_LATIN, i);
+		if (ksym && !strcmp(s, ksym))
 			return K(KT_LATIN, i);
 	}
 
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/4] libkeymap: add NULL check in lk_dump_ctable diacritical loop
  2026-02-14 17:27 [PATCH 1/4] libkeymap: prevent NULL dereference in parser Krdyan Areg
  2026-02-14 17:27 ` [PATCH 2/4] kbdfile: remove redundant NULL check in findfile_by_fullname Krdyan Areg
  2026-02-14 17:27 ` [PATCH 3/4] libkeymap: add NULL check in kt_latin symbol lookup Krdyan Areg
@ 2026-02-14 17:27 ` Krdyan Areg
  2026-02-14 23:08   ` Alexey Gladkov
  2026-02-15 17:34 ` [PATCH 1/4] libkeymap: prevent NULL dereference in parser Alexey Gladkov
  3 siblings, 1 reply; 8+ messages in thread
From: Krdyan Areg @ 2026-02-14 17:27 UTC (permalink / raw)
  To: kbd; +Cc: gladkov.alexey, Krdyan Areg

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=UTF-8, Size: 112717 bytes --]

The lk_array_get_ptr() function may return NULL when accessing the
accent table. Dereferences kddiac without checking,
which can lead to a crash.

Add a NULL check and return an error if an invalid entry is found.

Signed-off-by: Krdyan Areg <areg.krdian@gmail.com>
---
 po/cs.po             | 39 ++++++++++++++++++++++-----------------
 po/da.po             | 38 +++++++++++++++++++++-----------------
 po/de.po             | 41 ++++++++++++++++++++++++-----------------
 po/el.po             | 39 ++++++++++++++++++++++-----------------
 po/eo.po             | 39 ++++++++++++++++++++++-----------------
 po/es.po             | 39 ++++++++++++++++++++++-----------------
 po/hu.po             | 38 +++++++++++++++++++++-----------------
 po/id.po             | 39 ++++++++++++++++++++++-----------------
 po/it.po             | 38 +++++++++++++++++++++-----------------
 po/ka.po             | 38 +++++++++++++++++++++-----------------
 po/kbd.pot           | 38 +++++++++++++++++++++-----------------
 po/nl.po             | 38 +++++++++++++++++++++-----------------
 po/pl.po             | 39 ++++++++++++++++++++++-----------------
 po/pt.po             | 39 ++++++++++++++++++++++-----------------
 po/pt_BR.po          | 39 ++++++++++++++++++++++-----------------
 po/ro.po             | 39 ++++++++++++++++++++++-----------------
 po/ru.po             | 42 +++++++++++++++++++++++++-----------------
 po/sq.po             | 39 ++++++++++++++++++++++-----------------
 po/sr.po             | 39 ++++++++++++++++++++++-----------------
 po/sv.po             | 39 ++++++++++++++++++++++-----------------
 po/tr.po             | 38 +++++++++++++++++++++-----------------
 po/uk.po             | 39 ++++++++++++++++++++++-----------------
 po/vi.po             | 38 +++++++++++++++++++++-----------------
 po/zh_CN.po          | 38 +++++++++++++++++++++-----------------
 src/libkeymap/dump.c |  4 ++++
 25 files changed, 528 insertions(+), 408 deletions(-)

diff --git a/po/cs.po b/po/cs.po
index cf38c98..e589761 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2024-12-03 21:09+01:00\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -63,7 +63,7 @@ msgstr "Málo argumentů."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -494,7 +494,12 @@ msgstr "navázat klávesu %d na hodnotu %d nelze, protože je příliš velká"
 msgid "Error writing map to file"
 msgstr "Chyba při zápisu mapy do souboru"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Z tabulky diakritiky nelze odstranit položku"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "nemožné: není meta?\n"
@@ -577,12 +582,12 @@ msgstr "symbol nelze získat podle chybného typu: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "symbol typu %d nelze získat podle chybného indexu: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "předpokládá se %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "neznámý symbol klávesy „%s“"
@@ -699,12 +704,12 @@ msgstr "loadkeys: není známo, jak skládat pro %s"
 msgid "'%s' is not a function key symbol"
 msgstr "„%s“ není symbol funkční klávesy"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "příliš mnoho (%ld) záznamů na jednom řádku"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Zavádí se %s"
@@ -778,11 +783,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "Konzola není v textovém režimu"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "vysoká font není podporován"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr "S touto verzí jádra nelze takový font zavést"
 
@@ -850,7 +855,7 @@ msgstr[1] "# %d položky"
 msgstr[2] "# %d položek"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1258,25 +1263,25 @@ msgstr ""
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr "VT %d se používá; příkaz přerušen; použijte „%s -f“ pro vynucení."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Příkaz nelze nalézt."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Nelze nastavit novou relaci"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Použije se VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "%s nelze otevřít pro čtení i zápis"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Nebylo možné dealokovat konzolu %d"
@@ -1481,11 +1486,11 @@ msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 "Obnoví písmo a velikost písma a mapu Unicode na výchozí po startu systému."
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Příliš mnoho vstupních souborů."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr "Nelze zároveň obnovovat z ROM znaků a ze souboru. Písmo nezměněno."
 
diff --git a/po/da.po b/po/da.po
index 47a1489..cc8a3ec 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd-1.15.3-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2011-06-03 22:01+0200\n"
 "Last-Translator: Keld Simonsen <keld@keldix.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -61,7 +61,7 @@ msgstr "Fejl: Ikke nok argumenter.\n"
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -497,7 +497,11 @@ msgstr "kunne ikke binde tast %d til v
 msgid "Error writing map to file"
 msgstr "Fejl ved skrivning af tabel til fil\n"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "umuligt: ikke meta?\n"
@@ -581,12 +585,12 @@ msgstr ""
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr ""
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, fuzzy, c-format
 msgid "assuming %s %s"
 msgstr "antager iso-8859-1 %s\n"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, fuzzy, c-format
 msgid "unknown keysym '%s'"
 msgstr "ukendt tegnsymbol \"%s\"\n"
@@ -698,12 +702,12 @@ msgstr "loadkeys: v
 msgid "'%s' is not a function key symbol"
 msgstr "'%s' er ikke et symbol for en funktionstast"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, fuzzy, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "For mange (%d) indgange på én linje"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, fuzzy, c-format
 msgid "Loading %s"
 msgstr "Indlæser %s\n"
@@ -777,11 +781,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -850,7 +854,7 @@ msgstr[0] "post"
 msgstr[1] "post"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, fuzzy, c-format
@@ -1285,25 +1289,25 @@ msgstr "Kan ikke unders
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr "vt %d er i brug, kommandoen afbrudt, brug '%s -f' at gennemtvinge."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Kunne ikke finde kommando"
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Kan ikke sætte ny session"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Bruger VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Kan ikke åbne %s for læsning/skrivning"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Kunne ikke deallokere konsol %d"
@@ -1506,12 +1510,12 @@ msgstr ""
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 #, fuzzy
 msgid "Too many input files."
 msgstr "setfont: for mange inddatafiler\n"
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 #, fuzzy
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
diff --git a/po/de.po b/po/de.po
index 9099d1b..5523880 100644
--- a/po/de.po
+++ b/po/de.po
@@ -17,7 +17,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd-2.6-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2023-05-08 18:33+0200\n"
 "Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -70,7 +70,7 @@ msgstr "Nicht genügend Argumente."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -515,7 +515,14 @@ msgstr ""
 msgid "Error writing map to file"
 msgstr "Fehler beim Schreiben der Tabelle in die Datei."
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+"Eintrag konnte nicht aus der Tabelle der diakritischen Zeichen entfernt "
+"werden."
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "unmöglich: Keine Meta?\n"
@@ -599,12 +606,12 @@ msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr ""
 "Symbol des Typs %d konnte durch falschen Index nicht erhalten werden: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "%s %s wird angenommen"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "Unbekanntes Tastensymbol „%s“"
@@ -719,12 +726,12 @@ msgstr "loadkeys: Weiß nicht, wie Compose für %s funktionieren soll."
 msgid "'%s' is not a function key symbol"
 msgstr "'%s' ist kein Funktionstastensymbol."
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "Zu viele (%ld) Einträge in einer Zeile."
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "%s wird geladen"
@@ -798,12 +805,12 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 #, fuzzy
 msgid "tall font not supported"
 msgstr "Nicht unterstützt\n"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -870,7 +877,7 @@ msgstr[0] "# %d Eintrag"
 msgstr[1] "# %d Einträge"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1289,25 +1296,25 @@ msgstr ""
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr "VT %d wird bereits benutzt, Abbruch; „%s -f“ erzwingt dies."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Befehl konnte nicht gefunden werden."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Neue Sitzung kann nicht erzeugt werden."
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "VT %s wird benutzt"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "%s kann nicht zum Schreiben und Lesen geöffnet werden"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Konsole %d konnte nicht freigegeben werden"
@@ -1502,11 +1509,11 @@ msgstr "Unicode-Tabelle angehängt."
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Zu viele Eingabedateien."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Font kann nicht zugleich von ROM und Datei wiederhergestellt werden. Vorgang "
diff --git a/po/el.po b/po/el.po
index 0623bcf..47357f5 100644
--- a/po/el.po
+++ b/po/el.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd-2.6-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2023-05-09 19:15+0300\n"
 "Last-Translator: Lefteris Dimitroulakis <ledimitro@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -60,7 +60,7 @@ msgstr "Όχι αρκετά ορίσματα."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -499,7 +499,12 @@ msgstr "αποτυχία απόδωσης στο πλήκτρο %d της τιμ
 msgid "Error writing map to file"
 msgstr "Σφάλμα εγγραφής του πίνακα απεικόνισης στο αρχείο"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Αδυναμία αφαίρεσης στοιχείου από πίνακα διακριτικών"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "αδύνατον: δεν είναι meta;\n"
@@ -582,12 +587,12 @@ msgstr "unable to get symbol by wrong type: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "unable to get symbol of %d type by wrong index: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "υποθέτοντας %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "άγνωστο keysym «%s»"
@@ -698,12 +703,12 @@ msgstr "loadkeys: δεν ξέρω πώς να συνθέσω %s"
 msgid "'%s' is not a function key symbol"
 msgstr "«%s» δεν είναι σύμβολο πλήκτρου λειτουργίας"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "πάρα πολλες (%ld) σε μια γραμμή"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Φόρτωση %s"
@@ -778,12 +783,12 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 #, fuzzy
 msgid "tall font not supported"
 msgstr "Δεν υποστηρίζεται\n"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -850,7 +855,7 @@ msgstr[0] "# %d είσοδος"
 msgstr[1] "# %d είσοδοι"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1267,25 +1272,25 @@ msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr ""
 "vt %d εν χρήσει, εκτέλεση εντολής ματαιώθηκε, δώσε «%s -f» για εκτέλεση."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Αδυναμία εύρεσης εντολής."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Αδύνατον το άνοιγμα νέας συνόδου"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Χρησιμοποίηση VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Δεν μπορώ ν' ανοίξω το %s σε ανάγνωση/εγγραφή"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Αδυναμία αποδέσμευσης της κονσόλας %d"
@@ -1476,11 +1481,11 @@ msgstr "Προστέθηκε πίνακας Unicode"
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Πάρα πολλά αρχεία εισόδου."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Αδυναμία επιδιόρθωσης των χαρακτήρων από τη ROM και από το "
diff --git a/po/eo.po b/po/eo.po
index 79f9de6..fb73990 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.5-rc2\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2023-01-08 15:14-0300\n"
 "Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -61,7 +61,7 @@ msgstr "Ne sufiĉe da argumentoj."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -493,7 +493,12 @@ msgstr "ne eblas ligi klavon %d al valoro %d ĉar ĝi tro larĝas"
 msgid "Error writing map to file"
 msgstr "Eraro dum skribo de mapo al dosiero"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Ne eblas forigi eron el la diakrita tabelo"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "neeble: ne estas meta?\n"
@@ -576,12 +581,12 @@ msgstr "ne eblas preni simbolon per malkorekta tipo: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "ne eblas preni simbolon de tipo %d per malkorekta indico: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "ni konsideras %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "nekonata klavsimbolo '%s'"
@@ -691,12 +696,12 @@ msgstr "loadkeys: ne scias kiel komponi por %s"
 msgid "'%s' is not a function key symbol"
 msgstr "'%s' ne estas simbolo de funkcia klavo"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "tro da (%ld) enigoj en unu linio"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Åœargado je %s"
@@ -770,12 +775,12 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 #, fuzzy
 msgid "tall font not supported"
 msgstr "Ne subtenata\n"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -841,7 +846,7 @@ msgstr[0] "# %d enigo"
 msgstr[1] "# %d enigoj"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1248,25 +1253,25 @@ msgstr "Ne eblas kontroli ĉu vt %d estas libera; uzu '%s - f' por perforti."
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr "vt %d estas uzata; komando ĉesigita; uzu '%s -f' por perforti."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Ne eblas trovi la komandon."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Ne eblas ekigi novan seancon"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Ni uzadas VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Ne eblas malfermi %s lege/skribe"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Ne eblis liberigi la konzolon %d"
@@ -1458,11 +1463,11 @@ msgstr "Postmetita Unikoda mapo"
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Tro da enig-dosieroj."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Ne eblas restarigi kaj el signeca ROM kaj el dosiero. Tiparo neŝanĝita."
diff --git a/po/es.po b/po/es.po
index 006262b..7b01e77 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd-2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2025-05-14 14:05-0600\n"
 "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
@@ -60,7 +60,7 @@ msgstr "No hay argumentos suficientes."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -502,7 +502,12 @@ msgstr "no se pudo asignar la tecla %d al valor %d porque es demasiado grande"
 msgid "Error writing map to file"
 msgstr "Error al escribir el mapa al fichero"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "No se puede borrar el elemento de la tabla de diacríticos"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "imposible: ¿no será una tecla Meta?\n"
@@ -585,12 +590,12 @@ msgstr "no se pudo obtener el símbolo por el tipo erróneo: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "no se pudo obtener el símbolo de tipo %d por el índice erróneo: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "conjeturando %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "keysym '%s' desconocida"
@@ -702,12 +707,12 @@ msgstr "loadkeys: no se cómo componer para %s"
 msgid "'%s' is not a function key symbol"
 msgstr "'%s' no es un símbolo de tecla de función"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "demasiadas entradas (%ld) en una línea"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Cargando %s"
@@ -781,11 +786,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "La consola no está en modo texto"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "no se admiten tipos de letra altos"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr "No se puede cargar ese tipo de letra con esa versión de kernel"
 
@@ -853,7 +858,7 @@ msgstr[0] "# %d entrada"
 msgstr[1] "# %d entradas"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1269,25 +1274,25 @@ msgstr ""
 "La term. virt. %d está siendo utilizada; orden abortada; use `%s -f' para "
 "forzar."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "No se pudo encontrar la orden."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "No se pudo establecer nueva sesión"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Usando la terminal virtual %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "No se puede abrir %s para lectura/escritura"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "No se pudo liberar la consola %d"
@@ -1505,11 +1510,11 @@ msgstr ""
 "reinicia el tipo de letra de pantalla, tamaño y mapa unicode a los valores "
 "por defecto al arranque."
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Demasiados ficheros de entrada."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "No se puede recuperar a la vez de la ROM de caracteres y de archivo. No se "
diff --git a/po/hu.po b/po/hu.po
index 913ade0..c8e1366 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.0.4-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2017-05-05 20:38+0200\n"
 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -61,7 +61,7 @@ msgstr "Hiba: nincs elég argumentum.\n"
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -507,7 +507,11 @@ msgstr "nem sikerült a(z) %d billentyű kötése a(z) %d értékhez"
 msgid "Error writing map to file"
 msgstr "Hiba a térkép fájlba írásakor"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "lehetetlen: nem meta?\n"
@@ -591,12 +595,12 @@ msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr ""
 "nem sikerült lekérni a(z) %d típus szimbólumát a rossz index alapján: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, fuzzy, c-format
 msgid "assuming %s %s"
 msgstr "iso-8859-1 %s feltételezve"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, fuzzy, c-format
 msgid "unknown keysym '%s'"
 msgstr "ismeretlen billentyűszimbólum: „%s”\n"
@@ -707,12 +711,12 @@ msgstr ""
 msgid "'%s' is not a function key symbol"
 msgstr ""
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, fuzzy, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "Túl sok egyesítendő fájl\n"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, fuzzy, c-format
 msgid "Loading %s"
 msgstr "Hiba a(z) „%s” olvasásakor"
@@ -786,11 +790,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -859,7 +863,7 @@ msgstr[0] "bejegyzés"
 msgstr[1] "bejegyzés"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, fuzzy, c-format
@@ -1302,25 +1306,25 @@ msgstr ""
 "A %d. vt használatban van. A parancs megszakítva. Használja a „%s -f” "
 "parancsot a kényszerítéshez."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Nem található parancs."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Nem állítható be új munkamenet"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "%s VT használata"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Nem sikerült a(z) %s megnyitása olvasásra/írásra"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Nem sikerült a(z) %d. konzol felszabadítása"
@@ -1522,12 +1526,12 @@ msgstr ""
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 #, fuzzy
 msgid "Too many input files."
 msgstr "setfont: túl sok bemeneti fájl\n"
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 #, fuzzy
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
diff --git a/po/id.po b/po/id.po
index 6b8a101..a705a18 100644
--- a/po/id.po
+++ b/po/id.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2024-11-14 20:53+0700\n"
 "Last-Translator: Andika Triwidada <andika@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -61,7 +61,7 @@ msgstr "Tidak cukup argumen."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -498,7 +498,12 @@ msgstr "gagal mengikat tombol %d ke nilai %d karena itu terlalu besar"
 msgid "Error writing map to file"
 msgstr "Galat saat menulis peta ke berkas"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Tidak bisa menghapus butir dari tabel diakritikal"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "tidak mungkin: bukan meta?\n"
@@ -582,12 +587,12 @@ msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr ""
 "tidak bisa mendapatkan simbol dari tipe %d berdasarkan indeks salah: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "mengasumsikan %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "keysym '%s' tidak dikenal"
@@ -693,12 +698,12 @@ msgstr "loadkeys: tak tahu bagaimana meng-compose untuk %s"
 msgid "'%s' is not a function key symbol"
 msgstr "'%s' bukan suatu simbol tombol fungsi"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "terlalu banyak (%ld) entri dalam satu baris"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Memuat %s"
@@ -772,11 +777,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "Konsol dalam mode teks"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "fonta tinggi tidak didukung"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr "Tidak bisa memuat fonta seperti itu dengan versi kernel ini"
 
@@ -842,7 +847,7 @@ msgid_plural "# %d entries"
 msgstr[0] "# %d entri"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1258,25 +1263,25 @@ msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr ""
 "vt %d sedang digunakan; perintah digugurkan; pakai '%s -f' untuk memaksa."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Tidak bisa menemukan perintah."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Tidak bisa menata sesi baru"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Menggunakan VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Tidak bisa membuka %s baca/tulis"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Tidak bisa mendealokasi konsol %d"
@@ -1483,11 +1488,11 @@ msgstr "paksakan muat peta unicode."
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr "reset fonta, ukuran, dan peta unicode layar ke baku boot."
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Terlalu banyak berkas masukan."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Tidak bisa sekaligus memulihkan dari karakter ROM dan dari berkas. Fonta "
diff --git a/po/it.po b/po/it.po
index f99f68d..8d9e8c7 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd-1.15.3-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2011-06-13 00:36+0200\n"
 "Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -60,7 +60,7 @@ msgstr "Errore: argomenti non sufficienti.\n"
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -501,7 +501,11 @@ msgstr "associazione del tasto %d al valore %d non riuscita\n"
 msgid "Error writing map to file"
 msgstr "Errore nella scrittura della mappa sul file\n"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "impossibile: forse non è meta\n"
@@ -585,12 +589,12 @@ msgstr ""
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr ""
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, fuzzy, c-format
 msgid "assuming %s %s"
 msgstr "si assume iso-8859-1 %s\n"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, fuzzy, c-format
 msgid "unknown keysym '%s'"
 msgstr "simbolo di tasto \"%s\" sconosciuto\n"
@@ -702,12 +706,12 @@ msgstr "loadkeys: non si sa come gestire la composizione per %s\n"
 msgid "'%s' is not a function key symbol"
 msgstr "\"%s\" non è un simbolo di tasto funzione"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, fuzzy, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "troppe (%d) voci su una riga"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, fuzzy, c-format
 msgid "Loading %s"
 msgstr "Caricamento di %s\n"
@@ -781,11 +785,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -855,7 +859,7 @@ msgstr[0] "voce"
 msgstr[1] "voce"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, fuzzy, c-format
@@ -1300,25 +1304,25 @@ msgstr ""
 "Il terminale virtuale %d è in uso, comando interrotto; usare \"%s -f\" per "
 "forzarlo."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Impossibile trovare il comando."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Impossibile impostare una nuova sessione"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Viene usato il terminale virtuale %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Impossibile aprire %s in lettura/scrittura"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Impossibile deallocare la console %d"
@@ -1521,12 +1525,12 @@ msgstr ""
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 #, fuzzy
 msgid "Too many input files."
 msgstr "setfont: troppi file di input\n"
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 #, fuzzy
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
diff --git a/po/ka.po b/po/ka.po
index a3e2156..208d288 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2025-03-02 06:05+0100\n"
 "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
 "Language-Team: Georgian <(nothing)>\n"
@@ -60,7 +60,7 @@ msgstr "არასაკმარისი არგუმენტები."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -478,7 +478,11 @@ msgstr ""
 msgid "Error writing map to file"
 msgstr "რუკის ფაილში ჩაწერის შეცდომა"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "შეუძლებელია: მეტა არაა?\n"
@@ -561,12 +565,12 @@ msgstr ""
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr ""
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "ივარაუდება %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "უცნობი keysym '%s'"
@@ -676,12 +680,12 @@ msgstr ""
 msgid "'%s' is not a function key symbol"
 msgstr ""
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr ""
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "%s-ის ჩატვირთვა"
@@ -750,11 +754,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "კონსოლი ტექსტურ რეჟიმში არაა"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "მაღალი ფონტი მხარდაჭერილი არაა"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -815,7 +819,7 @@ msgstr[0] "# %d ჩანაწერი"
 msgstr[1] "# %d ჩანაწერი"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1214,25 +1218,25 @@ msgstr ""
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr ""
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "ბრძანება ვერ ვიპოვე."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "ახალი სესიის დაყენების შეცდომა"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "გამოიყენება VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "%s-ის წერაკითხვისთვის გახსნის შეცდომა"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "კონსოლის (%d) გამოყოფის გაუქმების შეცდომა)"
@@ -1416,11 +1420,11 @@ msgstr ""
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "მეტისმეტად ბევრი შეყვანის ფაილი."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 
diff --git a/po/kbd.pot b/po/kbd.pot
index 73d8d44..0eb0254 100644
--- a/po/kbd.pot
+++ b/po/kbd.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.9.0\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -59,7 +59,7 @@ msgstr ""
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -470,7 +470,11 @@ msgstr ""
 msgid "Error writing map to file"
 msgstr ""
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr ""
@@ -553,12 +557,12 @@ msgstr ""
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr ""
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr ""
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr ""
@@ -664,12 +668,12 @@ msgstr ""
 msgid "'%s' is not a function key symbol"
 msgstr ""
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr ""
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr ""
@@ -738,11 +742,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -803,7 +807,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1202,25 +1206,25 @@ msgstr ""
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr ""
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr ""
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr ""
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr ""
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr ""
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr ""
@@ -1404,11 +1408,11 @@ msgstr ""
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr ""
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 
diff --git a/po/nl.po b/po/nl.po
index 1e88b6a..3728a57 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd-2.0.4-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2017-01-07 15:02+0100\n"
 "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -64,7 +64,7 @@ msgstr "Fout: te weinig argumenten.\n"
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -509,7 +509,11 @@ msgstr "verbinden van toets %d met waarde %d is mislukt"
 msgid "Error writing map to file"
 msgstr "Fout tijdens schrijven van toetsenkaart naar bestand"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "onmogelijk: niet meta?\n"
@@ -592,12 +596,12 @@ msgstr "kan symbool niet verkrijgen wegens onjuist type: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "kan symbool van type %d niet verkrijgen wegens onjuiste index: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, fuzzy, c-format
 msgid "assuming %s %s"
 msgstr "iso-8859-1 '%s' wordt aangenomen"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, fuzzy, c-format
 msgid "unknown keysym '%s'"
 msgstr "onbekende toetsnaam '%s'\n"
@@ -708,12 +712,12 @@ msgstr "loadkeys: weet niet hoe %s samen te stellen\n"
 msgid "'%s' is not a function key symbol"
 msgstr "'%s' is geen functietoetssymbool"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, fuzzy, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "Te veel items (%d) op één regel"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, fuzzy, c-format
 msgid "Loading %s"
 msgstr "Laden van %s\n"
@@ -788,11 +792,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -861,7 +865,7 @@ msgstr[0] "item"
 msgstr[1] "item"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, fuzzy, c-format
@@ -1308,25 +1312,25 @@ msgstr ""
 "VT-%d is in gebruik; opdracht is afgebroken; gebruik '%s -f' om gebruik af "
 "te dwingen"
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Kan gegeven opdracht niet vinden."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Kan geen nieuwe sessie instellen"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "VT-%s wordt gebruikt"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Kan %s niet openen voor lezen-en-schrijven"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Kan console %d niet vrijgeven"
@@ -1523,12 +1527,12 @@ msgstr ""
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 #, fuzzy
 msgid "Too many input files."
 msgstr "setfont: te veel invoerbestanden\n"
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 #, fuzzy
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
diff --git a/po/pl.po b/po/pl.po
index 0b8294c..6c83769 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2024-10-30 19:07+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -59,7 +59,7 @@ msgstr "Za mało argumentów."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -493,7 +493,12 @@ msgstr "nie można dowiązać klawisza %d do wartości %d, ponieważ jest zbyt d
 msgid "Error writing map to file"
 msgstr "Błąd podczas zapisu mapy do pliku"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Nie udało się usunąć elementu z tablicy diakrytyków"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "niemożliwe: nie meta?\n"
@@ -576,12 +581,12 @@ msgstr "nie udało się pobrać symbolu poprzez niewłaściwy typ: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "nie udało się pobrać symbolu typu %d poprzez niewłaściwy indeks: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "przyjęto %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "nieznany symbol '%s'"
@@ -698,12 +703,12 @@ msgstr "loadkeys: nie wiem, jak wykonać compose dla %s"
 msgid "'%s' is not a function key symbol"
 msgstr "'%s' nie jest symbolem klawisza funkcyjnego"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "zbyt dużo (%ld) wpisów w jednym wierszu"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Ładowanie %s"
@@ -777,11 +782,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "Konsola nie jest w trybie tekstowym"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "font wysoki nie jest obsługiwany"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr "Nie można załadować takiego fontu pod tą wersją jądra"
 
@@ -849,7 +854,7 @@ msgstr[1] "# %d wpisy"
 msgstr[2] "# %d wpisów"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1261,25 +1266,25 @@ msgstr ""
 "vt %d jest używany, polecenie przerwano; można użyć `%s -f' w celu "
 "wymuszenia."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Nie udało się odnaleźć polecenia."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Nie można ustanowić nowej sesji"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Użycie VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Nie można otworzyć %s do odczytu i zapisu"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Nie udało się zwolnić konsoli %d"
@@ -1483,11 +1488,11 @@ msgstr ""
 "przywrócenie fontu ekranowego, rozmiaru i mapy unikodowej do ustawień "
 "rozruchowych."
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Za dużo plików wejściowych."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Nie można jednocześnie odtworzyć z ROM-u i z pliku. Font nie zmieniony."
diff --git a/po/pt.po b/po/pt.po
index 3786723..49af0ab 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2025-03-23 11:27+0000\n"
 "Last-Translator: Pedro Albuquerque <pmra@protonmail.com>\n"
 "Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n"
@@ -60,7 +60,7 @@ msgstr "Argumentos insuficientes."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -493,7 +493,12 @@ msgstr "impossível associar tecla %d a valor %d porque é demasiado grande"
 msgid "Error writing map to file"
 msgstr "Erro ao escrever mapa no ficheiro"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Impossível remover item da tabela diacrítica"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "impossível: não meta?\n"
@@ -576,12 +581,12 @@ msgstr "impossível obter símbolo por tipo errado: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "impossível obter símbolo de tipo %d por índice errado: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "a assumir %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "símbolo de tecla \"%s\" desconhecido"
@@ -692,12 +697,12 @@ msgstr "loadkeys: não sei como compor para %s"
 msgid "'%s' is not a function key symbol"
 msgstr "\"%s\" não é um símbolo de tecla de função"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "demasiadas entradas (%ld) numa linha"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "A carregar %s"
@@ -772,11 +777,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "A consola não está em modo de texto"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "letra alta não é suportado"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr "Impossível carregar essa letra com esta versão do kernel"
 
@@ -843,7 +848,7 @@ msgstr[0] "entrada # %d"
 msgstr[1] "entradas # %d"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1250,25 +1255,25 @@ msgstr "Impossível verificar se o TV %d está livre; use \"%s -f\" para forçar
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr "tv %d em uso; comando abortado; use \"%s -f\" para forçar."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Impossível localizar o comando."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Impossível definir nova sessão"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "A usar o TV %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Impossível abrir %s leitura/escrita"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Impossível desalocar a consola %d"
@@ -1479,11 +1484,11 @@ msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 "repor a letra do ecrã e o mapa unicode para as pré-definições de arranque."
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Demasiados ficheiros de entrada."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Impossível restaurar de ROM de carácter e de ficheiro. Letra inalterada."
diff --git a/po/pt_BR.po b/po/pt_BR.po
index f05f9c5..0c85677 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.2.90\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2020-06-03 07:52-0300\n"
 "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-"
@@ -60,7 +60,7 @@ msgstr "Argumentos insuficientes."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -501,7 +501,12 @@ msgstr "não é possível associar a tecla %d ao valor %d porque é grande demai
 msgid "Error writing map to file"
 msgstr "Erro ao escrever mapa para arquivo"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Não foi possível remover o item da tabela de diacríticos"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "impossível: não é meta?\n"
@@ -584,12 +589,12 @@ msgstr "não foi possível obter símbolo por tipo incorreto: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "não foi possível obter símbolo do tipo %d por índice incorreto: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "presumindo %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "símbolo de tecla (keysym) desconhecido \"%s\""
@@ -701,12 +706,12 @@ msgstr "loadkeys: não sei como compor para %s"
 msgid "'%s' is not a function key symbol"
 msgstr "\"%s\" não é um símbolo de tecla de função"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "número excessivo (%ld) de entradas em uma linha"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Carregando %s"
@@ -780,12 +785,12 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 #, fuzzy
 msgid "tall font not supported"
 msgstr "Sem suporte\n"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -852,7 +857,7 @@ msgstr[0] "# %d entrada"
 msgstr[1] "# %d entradas"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1265,25 +1270,25 @@ msgstr ""
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr "vt %d está em uso; comando abortado; use \"%s -f\" para forçar."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Não foi possível localizar comando."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Não foi possível definir uma nova sessão"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Usando o VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Não foi possível abrir %s para leitura/escrita"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Não foi possível desalocar o console %d"
@@ -1477,11 +1482,11 @@ msgstr "Mapa Unicode anexado"
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Número excessivo de arquivos de entrada."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Não é possível restaurar a partir de ROM de caractere e de arquivo. Fonte "
diff --git a/po/ro.po b/po/ro.po
index e5f2e19..02b20e2 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -25,7 +25,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2024-10-29 14:30+0100\n"
 "Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -79,7 +79,7 @@ msgstr "Nu sunt suficiente argumente."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -575,7 +575,12 @@ msgstr ""
 msgid "Error writing map to file"
 msgstr "Eroare la scrierea schemei în fișier"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Nu se poate elimina elementul din tabla de diacritice"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "imposibil: non meta?\n"
@@ -662,12 +667,12 @@ msgstr "nu se poate obține simbolul după tipul eronat: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "nu se poate obține simbolul de tip %d după indexul greșit: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "presupunând %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "simbol_tastă(keysym) „%s” necunoscut"
@@ -792,12 +797,12 @@ msgstr "loadkeys: nu știu cum să compun pentru %s"
 msgid "'%s' is not a function key symbol"
 msgstr "„%s” nu este un simbol al unei taste funcționale"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "prea multe (%ld) intrări într-o singură linie"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Se încarcă %s"
@@ -874,11 +879,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "Consola nu este în modul text"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "fontul înalt nu este acceptat"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr "Nu se poate încărca un astfel de font cu această versiune de nucleu"
 
@@ -951,7 +956,7 @@ msgstr[2] "# %d intrări"
 msgstr[3] "# %d de intrări"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1375,25 +1380,25 @@ msgstr ""
 "terminalul virtual(vt) %d este în uz; comanda a fost anulată; utilizați «%s "
 "-f» pentru a forța."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Nu se poate găsi comanda."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Nu se poate configura o nouă sesiune"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Se utilizează terminalul virtual(VT) %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Nu se poate deschide %s pentru citire/scriere"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Nu s-a putut elibera consola %d"
@@ -1616,11 +1621,11 @@ msgstr ""
 "restabilește fontul ecranului, dimensiunea și harta unicode la valorile "
 "implicite de la pornire."
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Prea multe fișiere de intrare."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Nu se poate restaura în același timp din ROM-ul de caractere, cât și din "
diff --git a/po/ru.po b/po/ru.po
index f707ecd..7ebf5a2 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.6-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2023-05-20 11:36+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
@@ -62,7 +62,7 @@ msgstr "Недостаточно аргументов."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -498,7 +498,12 @@ msgstr ""
 msgid "Error writing map to file"
 msgstr "Ошибка записи карты в файл"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Невозможно: не удалось получить элемент из диакритической таблицы"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "невозможно: не мета?\n"
@@ -582,12 +587,12 @@ msgstr "невозможно получить символ по некоррек
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "невозможно получить символ с типом %d по некорректному индексу: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "предполагается %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "неизвестный keysym «%s»"
@@ -703,12 +708,12 @@ msgstr "loadkeys: непонятно как выполнить составле
 msgid "'%s' is not a function key symbol"
 msgstr "«%s» не является символом функциональной клавиши"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "слишком много (%ld) элементов в одной строке"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Загружается %s"
@@ -783,12 +788,12 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 #, fuzzy
 msgid "tall font not supported"
 msgstr "Не поддерживается\n"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -856,7 +861,7 @@ msgstr[1] "# %d элемент"
 msgstr[2] "# %d элементов"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1272,25 +1277,25 @@ msgstr ""
 "vt %d используется; команда прервана; используйте «%s -f» для "
 "принудительного запуска."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Не удалось найти команду."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Не удалось установить новый сеанс"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Используется VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Не удалось открыть %s на чтение/запись"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Не удалось освободить консоль %d"
@@ -1486,11 +1491,11 @@ msgstr "Юникодная карта добавлена"
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Слишком много входных файлов."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Не удалось восстановить сразу из символьного ПЗУ и из файла. Шрифт не "
@@ -1962,6 +1967,9 @@ msgstr "Данное устройство tty (%s) не является вир
 msgid "The entire console display cannot be locked.\n"
 msgstr "Экран консоли не может быть быть заблокирован целиком.\n"
 
+#~ msgid "impossible: не удалось получить диакритический символ"
+#~ msgstr "невозможно: "
+
 #~ msgid "octal number too big"
 #~ msgstr "слишком большое восьмеричное число"
 
diff --git a/po/sq.po b/po/sq.po
index b1cdf27..a4fcd5e 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.6-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2024-10-26 18:56+0300\n"
 "Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
 "Language-Team: Albanian <translation-team-sq@lists.sourceforge.net>\n"
@@ -60,7 +60,7 @@ msgstr "S’ka argumente të mjaftueshëm."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -480,7 +480,12 @@ msgstr ""
 msgid "Error writing map to file"
 msgstr "Gabim në shkrimin tabele te kartela"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "S’arrihet të hiqet objekt nga tabelë diakritikësh"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr ""
@@ -563,12 +568,12 @@ msgstr ""
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr ""
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr ""
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr ""
@@ -678,12 +683,12 @@ msgstr ""
 msgid "'%s' is not a function key symbol"
 msgstr "'%s' s’është simbol tasti funksioni"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "shumë zëra (%ld) në një rresht"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Po ngarkohet %s"
@@ -756,12 +761,12 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 #, fuzzy
 msgid "tall font not supported"
 msgstr "Nuk mbulohet\n"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -822,7 +827,7 @@ msgstr[0] "# %d zë"
 msgstr[1] "# %d zëra"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1235,25 +1240,25 @@ msgstr ""
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr ""
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "S’arrihet të gjendet urdhër."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "S’arrihet të ujdiset sesion i ri"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Po përdoret TV %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "S’hapet dot %s lexim/shkrim"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr ""
@@ -1438,11 +1443,11 @@ msgstr ""
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Shumë kartela dhënie."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 
diff --git a/po/sr.po b/po/sr.po
index 3012092..517414f 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd-2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2024-12-18 21:56+0100\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -61,7 +61,7 @@ msgstr "Нема довољно аргумената."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -494,7 +494,12 @@ msgstr "не могу да свежем тастер %d на вредност %d
 msgid "Error writing map to file"
 msgstr "Грешка писања мапе у датотеку"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Не могу да уклоним ставку из дијакритичке табеле"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "немогуће: није мета?\n"
@@ -577,12 +582,12 @@ msgstr "не могу да добавим симбол погршном врст
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "не могу да добавим симбол %d врсте погршним индексом: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "подразумевам „%s %s“"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "непозната сума тастера „%s“"
@@ -697,12 +702,12 @@ msgstr "loadkeys: не знам како да саставим за „%s“"
 msgid "'%s' is not a function key symbol"
 msgstr "„%s“ није симбол тастера функције"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "превише (%ld) уноса у једном реду"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Учитавам „%s“"
@@ -776,11 +781,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "Конзола није у текстуалном режиму"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "високи словни ликови нису подржани"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr "Не могу да учитам такав словни лик са таквим издањем кернела"
 
@@ -848,7 +853,7 @@ msgstr[1] "# %d уноса"
 msgstr[2] "# %d уноса"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1264,25 +1269,25 @@ msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr ""
 "вт %d је у употреби; наредба је прекинута; користите „%s -f“ за приморавање."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Не могу да нађем наредбу."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Не могу да подесим нову сесију"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Користим ВТ %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Не могу да отворим „%s“ ради писања/уписа"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Не могу да разместим конзолу %d"
@@ -1493,11 +1498,11 @@ msgstr ""
 "поново поставља словни лик, величину и јуникод мапу екрана на подизне "
 "основности."
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Превише улазних датотека."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Не могу да вратим и из РОМ-а знака и из датотеке. Словни лик није измењен."
diff --git a/po/sv.po b/po/sv.po
index 3acf482..2f2ee31 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2024-10-30 22:24+0100\n"
 "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -63,7 +63,7 @@ msgstr "Inte tillräckligt med argument."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -502,7 +502,12 @@ msgstr ""
 msgid "Error writing map to file"
 msgstr "Fel vid skrivning av avbildningen till en fil"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Kan inte ta bort ett element från tabellen över diakritiska tecken"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "omöjligt: inte meta?\n"
@@ -585,12 +590,12 @@ msgstr "kan inte hämta symbol enligt fel typ: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "kan inte hämta symbol av typ %d enligt fel index: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "antar %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "okänd teckensymbol ”%s”"
@@ -701,12 +706,12 @@ msgstr "loadkeys: vet inte hur man komponerar för %s"
 msgid "'%s' is not a function key symbol"
 msgstr "”%s” är inte en funktionstangentsymbol"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "för många (%ld) poster på en rad"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Laddar %s"
@@ -780,11 +785,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "Konsolen är inte i textläge"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "höga typsnitt stödjs ej"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr "Kan inte ladda ett sådant typsnitt med en sådan kärnversion"
 
@@ -851,7 +856,7 @@ msgstr[0] "# %d post"
 msgstr[1] "# %d poster"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1263,25 +1268,25 @@ msgstr ""
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr "vt %d används, kommandot avbrutet; använd ”%s -f” för att framtvinga."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Kunde inte hitta kommandot."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Kan inte sätta ny session"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Använder VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Kan inte öppna %s för läsning/skrivning"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Kunde inte avallokera konsol %d"
@@ -1492,11 +1497,11 @@ msgstr ""
 "återställ skärmtypsnittet, storleken och unicode-avbildningen till "
 "startvärdena."
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "För många indatafiler."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
 "Kan inte både återställa från tecken-ROM och från fil.  Typsnittet "
diff --git a/po/tr.po b/po/tr.po
index 3383695..90c6531 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 1.10\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2004-01-21 06:15+0300\n"
 "Last-Translator: Nilgün Belma Bugüner <nilgun@superonline.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -57,7 +57,7 @@ msgstr ""
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -491,7 +491,11 @@ msgstr ""
 msgid "Error writing map to file"
 msgstr "E$lem dosyaya yazilirken hata\n"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "imkansiz: meta degil?\n"
@@ -574,12 +578,12 @@ msgstr ""
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr ""
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, fuzzy, c-format
 msgid "assuming %s %s"
 msgstr "iso-8859-1'deki  %s oldugu varsayildi\n"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, fuzzy, c-format
 msgid "unknown keysym '%s'"
 msgstr "'%s' sembolu bilinmiyor\n"
@@ -687,12 +691,12 @@ msgstr ""
 msgid "'%s' is not a function key symbol"
 msgstr ""
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, fuzzy, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "Birle$tirilecek dosya sayisi cok fazla\n"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, fuzzy, c-format
 msgid "Loading %s"
 msgstr "%s okunurken hata\n"
@@ -766,11 +770,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -837,7 +841,7 @@ msgstr[0] "girdi"
 msgstr[1] "girdi"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, fuzzy, c-format
@@ -1271,26 +1275,26 @@ msgstr "openvt: sanal terminal (vt) %d serbest mi denetlenemiyor\n"
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr "openvt: sanal terminal (vt) %d kullanimda; komut iptal edildi\n"
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr ""
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 #, fuzzy
 msgid "Unable to set new session"
 msgstr "openvt: yeni oturum (%s) ayarlanamiyor\n"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, fuzzy, c-format
 msgid "Using VT %s"
 msgstr "openvt: VT %s kullanarak\n"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, fuzzy, c-format
 msgid "Cannot open %s read/write"
 msgstr "openvt: %s oku/yaz kipinde acilamiyor (%s)\n"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, fuzzy, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "%s: %d konsolu kaldirilamadi\n"
@@ -1497,12 +1501,12 @@ msgstr ""
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 #, fuzzy
 msgid "Too many input files."
 msgstr "setfont: cok fazla girdi dosyasi\n"
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 #, fuzzy
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
diff --git a/po/uk.po b/po/uk.po
index b05955c..7174ede 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.7-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2024-10-29 18:02+0200\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@@ -63,7 +63,7 @@ msgstr "Недостатньо аргументів."
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -500,7 +500,12 @@ msgstr ""
 msgid "Error writing map to file"
 msgstr "Помилка запису у файл"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+#, fuzzy
+msgid "impossible: unable to get item from the diacritical table"
+msgstr "Не вдалося вилучити запис із таблиці діакритичних символів"
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "неможливо: не `meta'?\n"
@@ -583,12 +588,12 @@ msgstr "не вдалося отримати символ за помилков
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "не вдалося отримати символ типу %d за помилковим індексом: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "припускаємо %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "невідомий символ клавіші «%s»"
@@ -711,12 +716,12 @@ msgstr "loadkeys: невідомий спосіб створення сполу
 msgid "'%s' is not a function key symbol"
 msgstr "«%s» не є символом функціональної клавіші"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "занадто багато записів (%ld) в одному рядку"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "Завантажується «%s»"
@@ -790,11 +795,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr "Консоль не перебуває у текстовому режимі"
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr "підтримки високих шрифтів не передбачено"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr "Не вдалося завантажити такий шрифт із такою версією ядра"
 
@@ -863,7 +868,7 @@ msgstr[2] "# %d записів"
 msgstr[3] "# %d запис"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1278,25 +1283,25 @@ msgstr ""
 "vt %d вже використовується; виконання команди перервано; скористайтеся "
 "командою «%s -f» для встановлення у примусовому режимі."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Не вдалося знайти команду."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Не вдалося встановити новий сеанс"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Використовується ВТ %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "Не вдалося відкрити %s для читання або запису"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "не вдалося звільнити консоль %d"
@@ -1509,11 +1514,11 @@ msgstr ""
 "відновити типові значення під час завантаження для шрифту екрана, розміру та "
 "схеми unicode."
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "Надто багато вхідних файлів."
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr "Не вдалося ставити шрифт одразу з ПЗУ, та з файла. Шрифт не змінено."
 
diff --git a/po/vi.po b/po/vi.po
index a4df83e..d149c02 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.0.4-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2016-12-28 13:46+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -65,7 +65,7 @@ msgstr "Lỗi: không có đủ đối số.\n"
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -510,7 +510,11 @@ msgstr "gặp lỗi khi tổ hợp phím %d với giá trị %d"
 msgid "Error writing map to file"
 msgstr "Lỗi ghi nhớ ánh xạ vào tập tin"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "không thể: không phải meta?\n"
@@ -593,12 +597,12 @@ msgstr "không thể lấy ký hiệu bằng kiểu sai: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "không thể lấy ký hiệu của kiểu %d bằng chỉ số sai: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, fuzzy, c-format
 msgid "assuming %s %s"
 msgstr "coi là iso-8859-1 %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, fuzzy, c-format
 msgid "unknown keysym '%s'"
 msgstr "không rõ ký tự phím (keysym) “%s”\n"
@@ -703,12 +707,12 @@ msgstr "loadkeys: không biết cách cấu tạo cho %s\n"
 msgid "'%s' is not a function key symbol"
 msgstr "“%s” không phải là một ký hiệu phím chức năng"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, fuzzy, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "quá nhiều (%d) mục nhập trên cùng một dòng"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, fuzzy, c-format
 msgid "Loading %s"
 msgstr "Đang nạp %s\n"
@@ -782,11 +786,11 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 msgid "tall font not supported"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -854,7 +858,7 @@ msgid_plural "# %d entries"
 msgstr[0] "mục"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, fuzzy, c-format
@@ -1297,25 +1301,25 @@ msgstr ""
 "vt %d đang được sử dụng; lệnh bị bãi bỏ; sử dụng “%s -f” để ép buộc thực "
 "hiện."
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "Không thể tìm thấy lệnh."
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "Không thể đặt phiên làm việc mới"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "Đang dùng VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "không thể mở %s để đọc/ghi"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "Không thể cấp phát lại console (thiết bị điều khiển) %d"
@@ -1517,12 +1521,12 @@ msgstr ""
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 #, fuzzy
 msgid "Too many input files."
 msgstr "setfont: quá nhiều tập tin đầu vào\n"
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 #, fuzzy
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 03127ad..bc1cfc9 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kbd 2.5-rc2\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2025-09-04 11:19+0200\n"
+"POT-Creation-Date: 2026-02-14 20:09+0300\n"
 "PO-Revision-Date: 2022-06-30 11:35-0400\n"
 "Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -63,7 +63,7 @@ msgstr "参数不足。"
 #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
 #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
 #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
-#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
+#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
 #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
 #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
 #: src/totextmode.c:31
@@ -492,7 +492,11 @@ msgstr "将键 %d 绑定到值 %d 失败"
 msgid "Error writing map to file"
 msgstr "将映射写入文件失败"
 
-#: src/libkeymap/dump.c:546
+#: src/libkeymap/dump.c:227
+msgid "impossible: unable to get item from the diacritical table"
+msgstr ""
+
+#: src/libkeymap/dump.c:550
 #, c-format
 msgid "impossible: not meta?\n"
 msgstr "不可能:不是 meta 键?\n"
@@ -575,12 +579,12 @@ msgstr "无法以错误的类型获取符号: %d"
 msgid "unable to get symbol of %d type by wrong index: %d"
 msgstr "无法以错误的索引获取 %d 类型的符号: %d"
 
-#: src/libkeymap/ksyms.c:392
+#: src/libkeymap/ksyms.c:393
 #, c-format
 msgid "assuming %s %s"
 msgstr "假定 %s %s"
 
-#: src/libkeymap/ksyms.c:399
+#: src/libkeymap/ksyms.c:400
 #, c-format
 msgid "unknown keysym '%s'"
 msgstr "未知的 keysym '%s'"
@@ -685,12 +689,12 @@ msgstr "loadkeys: 不知道如何为 %s 进行组合\n"
 msgid "'%s' is not a function key symbol"
 msgstr "'%s' 不是一个功能键标志"
 
-#: src/libkeymap/parser.y:333
+#: src/libkeymap/parser.y:336
 #, fuzzy, c-format
 msgid "too many (%ld) entries on one line"
 msgstr "一行上存在太多的 ( %d 个) 条目"
 
-#: src/libkeymap/parser.y:399
+#: src/libkeymap/parser.y:402
 #, c-format
 msgid "Loading %s"
 msgstr "正在加载 %s"
@@ -764,12 +768,12 @@ msgstr ""
 msgid "Console is not in text mode"
 msgstr ""
 
-#: src/libkfont/kdfontop.c:196
+#: src/libkfont/kdfontop.c:197
 #, fuzzy
 msgid "tall font not supported"
 msgstr "不支持\n"
 
-#: src/libkfont/kdfontop.c:212
+#: src/libkfont/kdfontop.c:213
 msgid "Unable to load such font with such kernel version"
 msgstr ""
 
@@ -836,7 +840,7 @@ msgid_plural "# %d entries"
 msgstr[0] "个条目"
 
 #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
-#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
+#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
 #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
 #: src/psfxtable.c:143
 #, c-format
@@ -1248,25 +1252,25 @@ msgstr "无法检查 VT %d 是否空闲;使用“%s -f”强制执行。"
 msgid "vt %d is in use; command aborted; use `%s -f' to force."
 msgstr "vt %d 正在使用中;命令已中止;使用“%s -f”强制执行。"
 
-#: src/openvt.c:353
+#: src/openvt.c:354
 msgid "Unable to find command."
 msgstr "无法找到命令。"
 
-#: src/openvt.c:388
+#: src/openvt.c:386
 msgid "Unable to set new session"
 msgstr "无法设置新的会话"
 
-#: src/openvt.c:417
+#: src/openvt.c:415
 #, c-format
 msgid "Using VT %s"
 msgstr "正在使用 VT %s"
 
-#: src/openvt.c:423
+#: src/openvt.c:421
 #, c-format
 msgid "Cannot open %s read/write"
 msgstr "无法打开 %s 以供读写"
 
-#: src/openvt.c:470
+#: src/openvt.c:468
 #, c-format
 msgid "Couldn't deallocate console %d"
 msgstr "无法回收控制台 %d"
@@ -1459,11 +1463,11 @@ msgstr "Unicode 映射已附加\n"
 msgid "reset the screen font, size, and unicode map to the bootup defaults."
 msgstr ""
 
-#: src/setfont.c:296 src/setfont.c:304
+#: src/setfont.c:296 src/setfont.c:308
 msgid "Too many input files."
 msgstr "太多的输入文件。"
 
-#: src/setfont.c:309
+#: src/setfont.c:313
 #, fuzzy
 msgid "Cannot both restore from character ROM and from file. Font unchanged."
 msgstr "setfont: 无法既从字符 ROM 进行恢复又从文件进行恢复。字体不变。\n"
diff --git a/src/libkeymap/dump.c b/src/libkeymap/dump.c
index 47df091..1a1050e 100644
--- a/src/libkeymap/dump.c
+++ b/src/libkeymap/dump.c
@@ -223,6 +223,10 @@ int lk_dump_ctable(struct lk_ctx *ctx, FILE *fd)
 			unicode ? "uc" : "");
 	for (i = 0; i < ctx->accent_table->count; i++) {
 		kddiac = lk_array_get_ptr(ctx->accent_table, i);
+		if (!kddiac) {
+			ERR(ctx, _("impossible: unable to get item from the diacritical table"));
+			return -1;
+		}
 
 		fprintf(fd, "\t{");
 		outchar(fd, kddiac->diacr, 1);
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 4/4] libkeymap: add NULL check in lk_dump_ctable diacritical loop
  2026-02-14 17:27 ` [PATCH 4/4] libkeymap: add NULL check in lk_dump_ctable diacritical loop Krdyan Areg
@ 2026-02-14 23:08   ` Alexey Gladkov
  2026-02-15  8:04     ` Areg Krdyan
  0 siblings, 1 reply; 8+ messages in thread
From: Alexey Gladkov @ 2026-02-14 23:08 UTC (permalink / raw)
  To: Krdyan Areg; +Cc: kbd

On Sat, Feb 14, 2026 at 08:27:33PM +0300, Krdyan Areg wrote:
> The lk_array_get_ptr() function may return NULL when accessing the
> accent table. Dereferences kddiac without checking,
> which can lead to a crash.
> 
> Add a NULL check and return an error if an invalid entry is found.
> 
> Signed-off-by: Krdyan Areg <areg.krdian@gmail.com>
> ---
>  po/cs.po             | 39 ++++++++++++++++++++++-----------------
>  po/da.po             | 38 +++++++++++++++++++++-----------------
>  po/de.po             | 41 ++++++++++++++++++++++++-----------------
>  po/el.po             | 39 ++++++++++++++++++++++-----------------
>  po/eo.po             | 39 ++++++++++++++++++++++-----------------
>  po/es.po             | 39 ++++++++++++++++++++++-----------------
>  po/hu.po             | 38 +++++++++++++++++++++-----------------
>  po/id.po             | 39 ++++++++++++++++++++++-----------------
>  po/it.po             | 38 +++++++++++++++++++++-----------------
>  po/ka.po             | 38 +++++++++++++++++++++-----------------
>  po/kbd.pot           | 38 +++++++++++++++++++++-----------------
>  po/nl.po             | 38 +++++++++++++++++++++-----------------
>  po/pl.po             | 39 ++++++++++++++++++++++-----------------
>  po/pt.po             | 39 ++++++++++++++++++++++-----------------
>  po/pt_BR.po          | 39 ++++++++++++++++++++++-----------------
>  po/ro.po             | 39 ++++++++++++++++++++++-----------------
>  po/ru.po             | 42 +++++++++++++++++++++++++-----------------
>  po/sq.po             | 39 ++++++++++++++++++++++-----------------
>  po/sr.po             | 39 ++++++++++++++++++++++-----------------
>  po/sv.po             | 39 ++++++++++++++++++++++-----------------
>  po/tr.po             | 38 +++++++++++++++++++++-----------------
>  po/uk.po             | 39 ++++++++++++++++++++++-----------------
>  po/vi.po             | 38 +++++++++++++++++++++-----------------
>  po/zh_CN.po          | 38 +++++++++++++++++++++-----------------
>  src/libkeymap/dump.c |  4 ++++
>  25 files changed, 528 insertions(+), 408 deletions(-)

Sorry, but your commit messages and your changes look like they were
generated by AI. I'm not against AI, but not everything you fix is a
real bug.

Thanks anyway. I'll take another look at the code myself and try to fix
any suspicious code.

> diff --git a/po/cs.po b/po/cs.po
> index cf38c98..e589761 100644
> --- a/po/cs.po
> +++ b/po/cs.po
> @@ -11,7 +11,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2024-12-03 21:09+01:00\n"
>  "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
>  "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
> @@ -63,7 +63,7 @@ msgstr "Málo argumentů."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -494,7 +494,12 @@ msgstr "navázat klávesu %d na hodnotu %d nelze, protože je příliš velká"
>  msgid "Error writing map to file"
>  msgstr "Chyba při zápisu mapy do souboru"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Z tabulky diakritiky nelze odstranit položku"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "nemožné: není meta?\n"
> @@ -577,12 +582,12 @@ msgstr "symbol nelze získat podle chybného typu: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "symbol typu %d nelze získat podle chybného indexu: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "předpokládá se %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "neznámý symbol klávesy „%s“"
> @@ -699,12 +704,12 @@ msgstr "loadkeys: není známo, jak skládat pro %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "„%s“ není symbol funkční klávesy"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "příliš mnoho (%ld) záznamů na jednom řádku"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Zavádí se %s"
> @@ -778,11 +783,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "Konzola není v textovém režimu"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "vysoká font není podporován"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr "S touto verzí jádra nelze takový font zavést"
>  
> @@ -850,7 +855,7 @@ msgstr[1] "# %d položky"
>  msgstr[2] "# %d položek"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1258,25 +1263,25 @@ msgstr ""
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr "VT %d se používá; příkaz přerušen; použijte „%s -f“ pro vynucení."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Příkaz nelze nalézt."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Nelze nastavit novou relaci"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Použije se VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "%s nelze otevřít pro čtení i zápis"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Nebylo možné dealokovat konzolu %d"
> @@ -1481,11 +1486,11 @@ msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  "Obnoví písmo a velikost písma a mapu Unicode na výchozí po startu systému."
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Příliš mnoho vstupních souborů."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr "Nelze zároveň obnovovat z ROM znaků a ze souboru. Písmo nezměněno."
>  
> diff --git a/po/da.po b/po/da.po
> index 47a1489..cc8a3ec 100644
> --- a/po/da.po
> +++ b/po/da.po
> @@ -7,7 +7,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd-1.15.3-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2011-06-03 22:01+0200\n"
>  "Last-Translator: Keld Simonsen <keld@keldix.com>\n"
>  "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
> @@ -61,7 +61,7 @@ msgstr "Fejl: Ikke nok argumenter.\n"
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -497,7 +497,11 @@ msgstr "kunne ikke binde tast %d til v
>  msgid "Error writing map to file"
>  msgstr "Fejl ved skrivning af tabel til fil\n"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "umuligt: ikke meta?\n"
> @@ -581,12 +585,12 @@ msgstr ""
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr ""
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, fuzzy, c-format
>  msgid "assuming %s %s"
>  msgstr "antager iso-8859-1 %s\n"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, fuzzy, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "ukendt tegnsymbol \"%s\"\n"
> @@ -698,12 +702,12 @@ msgstr "loadkeys: v
>  msgid "'%s' is not a function key symbol"
>  msgstr "'%s' er ikke et symbol for en funktionstast"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, fuzzy, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "For mange (%d) indgange p? ?n linje"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, fuzzy, c-format
>  msgid "Loading %s"
>  msgstr "Indl?ser %s\n"
> @@ -777,11 +781,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -850,7 +854,7 @@ msgstr[0] "post"
>  msgstr[1] "post"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, fuzzy, c-format
> @@ -1285,25 +1289,25 @@ msgstr "Kan ikke unders
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr "vt %d er i brug, kommandoen afbrudt, brug '%s -f' at gennemtvinge."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Kunne ikke finde kommando"
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Kan ikke s?tte ny session"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Bruger VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Kan ikke ?bne %s for l?sning/skrivning"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Kunne ikke deallokere konsol %d"
> @@ -1506,12 +1510,12 @@ msgstr ""
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  #, fuzzy
>  msgid "Too many input files."
>  msgstr "setfont: for mange inddatafiler\n"
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  #, fuzzy
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
> diff --git a/po/de.po b/po/de.po
> index 9099d1b..5523880 100644
> --- a/po/de.po
> +++ b/po/de.po
> @@ -17,7 +17,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd-2.6-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2023-05-08 18:33+0200\n"
>  "Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
>  "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
> @@ -70,7 +70,7 @@ msgstr "Nicht genügend Argumente."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -515,7 +515,14 @@ msgstr ""
>  msgid "Error writing map to file"
>  msgstr "Fehler beim Schreiben der Tabelle in die Datei."
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +"Eintrag konnte nicht aus der Tabelle der diakritischen Zeichen entfernt "
> +"werden."
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "unmöglich: Keine Meta?\n"
> @@ -599,12 +606,12 @@ msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr ""
>  "Symbol des Typs %d konnte durch falschen Index nicht erhalten werden: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "%s %s wird angenommen"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "Unbekanntes Tastensymbol „%s“"
> @@ -719,12 +726,12 @@ msgstr "loadkeys: Weiß nicht, wie Compose für %s funktionieren soll."
>  msgid "'%s' is not a function key symbol"
>  msgstr "'%s' ist kein Funktionstastensymbol."
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "Zu viele (%ld) Einträge in einer Zeile."
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "%s wird geladen"
> @@ -798,12 +805,12 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  #, fuzzy
>  msgid "tall font not supported"
>  msgstr "Nicht unterstützt\n"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -870,7 +877,7 @@ msgstr[0] "# %d Eintrag"
>  msgstr[1] "# %d Einträge"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1289,25 +1296,25 @@ msgstr ""
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr "VT %d wird bereits benutzt, Abbruch; „%s -f“ erzwingt dies."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Befehl konnte nicht gefunden werden."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Neue Sitzung kann nicht erzeugt werden."
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "VT %s wird benutzt"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "%s kann nicht zum Schreiben und Lesen geöffnet werden"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Konsole %d konnte nicht freigegeben werden"
> @@ -1502,11 +1509,11 @@ msgstr "Unicode-Tabelle angehängt."
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Zu viele Eingabedateien."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Font kann nicht zugleich von ROM und Datei wiederhergestellt werden. Vorgang "
> diff --git a/po/el.po b/po/el.po
> index 0623bcf..47357f5 100644
> --- a/po/el.po
> +++ b/po/el.po
> @@ -7,7 +7,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd-2.6-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2023-05-09 19:15+0300\n"
>  "Last-Translator: Lefteris Dimitroulakis <ledimitro@gmail.com>\n"
>  "Language-Team: Greek <team@lists.gnome.gr>\n"
> @@ -60,7 +60,7 @@ msgstr "Όχι αρκετά ορίσματα."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -499,7 +499,12 @@ msgstr "αποτυχία απόδωσης στο πλήκτρο %d της τιμ
>  msgid "Error writing map to file"
>  msgstr "Σφάλμα εγγραφής του πίνακα απεικόνισης στο αρχείο"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Αδυναμία αφαίρεσης στοιχείου από πίνακα διακριτικών"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "αδύνατον: δεν είναι meta;\n"
> @@ -582,12 +587,12 @@ msgstr "unable to get symbol by wrong type: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "unable to get symbol of %d type by wrong index: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "υποθέτοντας %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "άγνωστο keysym «%s»"
> @@ -698,12 +703,12 @@ msgstr "loadkeys: δεν ξέρω πώς να συνθέσω %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "«%s» δεν είναι σύμβολο πλήκτρου λειτουργίας"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "πάρα πολλες (%ld) σε μια γραμμή"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Φόρτωση %s"
> @@ -778,12 +783,12 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  #, fuzzy
>  msgid "tall font not supported"
>  msgstr "Δεν υποστηρίζεται\n"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -850,7 +855,7 @@ msgstr[0] "# %d είσοδος"
>  msgstr[1] "# %d είσοδοι"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1267,25 +1272,25 @@ msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr ""
>  "vt %d εν χρήσει, εκτέλεση εντολής ματαιώθηκε, δώσε «%s -f» για εκτέλεση."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Αδυναμία εύρεσης εντολής."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Αδύνατον το άνοιγμα νέας συνόδου"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Χρησιμοποίηση VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Δεν μπορώ ν' ανοίξω το %s σε ανάγνωση/εγγραφή"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Αδυναμία αποδέσμευσης της κονσόλας %d"
> @@ -1476,11 +1481,11 @@ msgstr "Προστέθηκε πίνακας Unicode"
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Πάρα πολλά αρχεία εισόδου."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Αδυναμία επιδιόρθωσης των χαρακτήρων από τη ROM και από το "
> diff --git a/po/eo.po b/po/eo.po
> index 79f9de6..fb73990 100644
> --- a/po/eo.po
> +++ b/po/eo.po
> @@ -8,7 +8,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.5-rc2\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2023-01-08 15:14-0300\n"
>  "Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
>  "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
> @@ -61,7 +61,7 @@ msgstr "Ne sufiĉe da argumentoj."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -493,7 +493,12 @@ msgstr "ne eblas ligi klavon %d al valoro %d ĉar ĝi tro larĝas"
>  msgid "Error writing map to file"
>  msgstr "Eraro dum skribo de mapo al dosiero"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Ne eblas forigi eron el la diakrita tabelo"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "neeble: ne estas meta?\n"
> @@ -576,12 +581,12 @@ msgstr "ne eblas preni simbolon per malkorekta tipo: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "ne eblas preni simbolon de tipo %d per malkorekta indico: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "ni konsideras %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "nekonata klavsimbolo '%s'"
> @@ -691,12 +696,12 @@ msgstr "loadkeys: ne scias kiel komponi por %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "'%s' ne estas simbolo de funkcia klavo"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "tro da (%ld) enigoj en unu linio"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Ŝargado je %s"
> @@ -770,12 +775,12 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  #, fuzzy
>  msgid "tall font not supported"
>  msgstr "Ne subtenata\n"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -841,7 +846,7 @@ msgstr[0] "# %d enigo"
>  msgstr[1] "# %d enigoj"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1248,25 +1253,25 @@ msgstr "Ne eblas kontroli ĉu vt %d estas libera; uzu '%s - f' por perforti."
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr "vt %d estas uzata; komando ĉesigita; uzu '%s -f' por perforti."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Ne eblas trovi la komandon."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Ne eblas ekigi novan seancon"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Ni uzadas VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Ne eblas malfermi %s lege/skribe"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Ne eblis liberigi la konzolon %d"
> @@ -1458,11 +1463,11 @@ msgstr "Postmetita Unikoda mapo"
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Tro da enig-dosieroj."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Ne eblas restarigi kaj el signeca ROM kaj el dosiero. Tiparo neŝanĝita."
> diff --git a/po/es.po b/po/es.po
> index 006262b..7b01e77 100644
> --- a/po/es.po
> +++ b/po/es.po
> @@ -8,7 +8,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd-2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2025-05-14 14:05-0600\n"
>  "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
>  "Language-Team: Spanish <es@tp.org.es>\n"
> @@ -60,7 +60,7 @@ msgstr "No hay argumentos suficientes."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -502,7 +502,12 @@ msgstr "no se pudo asignar la tecla %d al valor %d porque es demasiado grande"
>  msgid "Error writing map to file"
>  msgstr "Error al escribir el mapa al fichero"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "No se puede borrar el elemento de la tabla de diacríticos"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "imposible: ¿no será una tecla Meta?\n"
> @@ -585,12 +590,12 @@ msgstr "no se pudo obtener el símbolo por el tipo erróneo: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "no se pudo obtener el símbolo de tipo %d por el índice erróneo: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "conjeturando %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "keysym '%s' desconocida"
> @@ -702,12 +707,12 @@ msgstr "loadkeys: no se cómo componer para %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "'%s' no es un símbolo de tecla de función"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "demasiadas entradas (%ld) en una línea"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Cargando %s"
> @@ -781,11 +786,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "La consola no está en modo texto"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "no se admiten tipos de letra altos"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr "No se puede cargar ese tipo de letra con esa versión de kernel"
>  
> @@ -853,7 +858,7 @@ msgstr[0] "# %d entrada"
>  msgstr[1] "# %d entradas"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1269,25 +1274,25 @@ msgstr ""
>  "La term. virt. %d está siendo utilizada; orden abortada; use `%s -f' para "
>  "forzar."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "No se pudo encontrar la orden."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "No se pudo establecer nueva sesión"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Usando la terminal virtual %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "No se puede abrir %s para lectura/escritura"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "No se pudo liberar la consola %d"
> @@ -1505,11 +1510,11 @@ msgstr ""
>  "reinicia el tipo de letra de pantalla, tamaño y mapa unicode a los valores "
>  "por defecto al arranque."
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Demasiados ficheros de entrada."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "No se puede recuperar a la vez de la ROM de caracteres y de archivo. No se "
> diff --git a/po/hu.po b/po/hu.po
> index 913ade0..c8e1366 100644
> --- a/po/hu.po
> +++ b/po/hu.po
> @@ -7,7 +7,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.0.4-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2017-05-05 20:38+0200\n"
>  "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
>  "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
> @@ -61,7 +61,7 @@ msgstr "Hiba: nincs elég argumentum.\n"
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -507,7 +507,11 @@ msgstr "nem sikerült a(z) %d billentyű kötése a(z) %d értékhez"
>  msgid "Error writing map to file"
>  msgstr "Hiba a térkép fájlba írásakor"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "lehetetlen: nem meta?\n"
> @@ -591,12 +595,12 @@ msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr ""
>  "nem sikerült lekérni a(z) %d típus szimbólumát a rossz index alapján: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, fuzzy, c-format
>  msgid "assuming %s %s"
>  msgstr "iso-8859-1 %s feltételezve"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, fuzzy, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "ismeretlen billentyűszimbólum: „%s”\n"
> @@ -707,12 +711,12 @@ msgstr ""
>  msgid "'%s' is not a function key symbol"
>  msgstr ""
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, fuzzy, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "Túl sok egyesítendő fájl\n"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, fuzzy, c-format
>  msgid "Loading %s"
>  msgstr "Hiba a(z) „%s” olvasásakor"
> @@ -786,11 +790,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -859,7 +863,7 @@ msgstr[0] "bejegyzés"
>  msgstr[1] "bejegyzés"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, fuzzy, c-format
> @@ -1302,25 +1306,25 @@ msgstr ""
>  "A %d. vt használatban van. A parancs megszakítva. Használja a „%s -f” "
>  "parancsot a kényszerítéshez."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Nem található parancs."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Nem állítható be új munkamenet"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "%s VT használata"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Nem sikerült a(z) %s megnyitása olvasásra/írásra"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Nem sikerült a(z) %d. konzol felszabadítása"
> @@ -1522,12 +1526,12 @@ msgstr ""
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  #, fuzzy
>  msgid "Too many input files."
>  msgstr "setfont: túl sok bemeneti fájl\n"
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  #, fuzzy
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
> diff --git a/po/id.po b/po/id.po
> index 6b8a101..a705a18 100644
> --- a/po/id.po
> +++ b/po/id.po
> @@ -8,7 +8,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2024-11-14 20:53+0700\n"
>  "Last-Translator: Andika Triwidada <andika@gmail.com>\n"
>  "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
> @@ -61,7 +61,7 @@ msgstr "Tidak cukup argumen."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -498,7 +498,12 @@ msgstr "gagal mengikat tombol %d ke nilai %d karena itu terlalu besar"
>  msgid "Error writing map to file"
>  msgstr "Galat saat menulis peta ke berkas"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Tidak bisa menghapus butir dari tabel diakritikal"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "tidak mungkin: bukan meta?\n"
> @@ -582,12 +587,12 @@ msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr ""
>  "tidak bisa mendapatkan simbol dari tipe %d berdasarkan indeks salah: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "mengasumsikan %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "keysym '%s' tidak dikenal"
> @@ -693,12 +698,12 @@ msgstr "loadkeys: tak tahu bagaimana meng-compose untuk %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "'%s' bukan suatu simbol tombol fungsi"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "terlalu banyak (%ld) entri dalam satu baris"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Memuat %s"
> @@ -772,11 +777,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "Konsol dalam mode teks"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "fonta tinggi tidak didukung"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr "Tidak bisa memuat fonta seperti itu dengan versi kernel ini"
>  
> @@ -842,7 +847,7 @@ msgid_plural "# %d entries"
>  msgstr[0] "# %d entri"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1258,25 +1263,25 @@ msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr ""
>  "vt %d sedang digunakan; perintah digugurkan; pakai '%s -f' untuk memaksa."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Tidak bisa menemukan perintah."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Tidak bisa menata sesi baru"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Menggunakan VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Tidak bisa membuka %s baca/tulis"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Tidak bisa mendealokasi konsol %d"
> @@ -1483,11 +1488,11 @@ msgstr "paksakan muat peta unicode."
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr "reset fonta, ukuran, dan peta unicode layar ke baku boot."
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Terlalu banyak berkas masukan."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Tidak bisa sekaligus memulihkan dari karakter ROM dan dari berkas. Fonta "
> diff --git a/po/it.po b/po/it.po
> index f99f68d..8d9e8c7 100644
> --- a/po/it.po
> +++ b/po/it.po
> @@ -7,7 +7,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd-1.15.3-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2011-06-13 00:36+0200\n"
>  "Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
>  "Language-Team: Italian <tp@lists.linux.it>\n"
> @@ -60,7 +60,7 @@ msgstr "Errore: argomenti non sufficienti.\n"
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -501,7 +501,11 @@ msgstr "associazione del tasto %d al valore %d non riuscita\n"
>  msgid "Error writing map to file"
>  msgstr "Errore nella scrittura della mappa sul file\n"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "impossibile: forse non è meta\n"
> @@ -585,12 +589,12 @@ msgstr ""
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr ""
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, fuzzy, c-format
>  msgid "assuming %s %s"
>  msgstr "si assume iso-8859-1 %s\n"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, fuzzy, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "simbolo di tasto \"%s\" sconosciuto\n"
> @@ -702,12 +706,12 @@ msgstr "loadkeys: non si sa come gestire la composizione per %s\n"
>  msgid "'%s' is not a function key symbol"
>  msgstr "\"%s\" non è un simbolo di tasto funzione"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, fuzzy, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "troppe (%d) voci su una riga"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, fuzzy, c-format
>  msgid "Loading %s"
>  msgstr "Caricamento di %s\n"
> @@ -781,11 +785,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -855,7 +859,7 @@ msgstr[0] "voce"
>  msgstr[1] "voce"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, fuzzy, c-format
> @@ -1300,25 +1304,25 @@ msgstr ""
>  "Il terminale virtuale %d è in uso, comando interrotto; usare \"%s -f\" per "
>  "forzarlo."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Impossibile trovare il comando."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Impossibile impostare una nuova sessione"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Viene usato il terminale virtuale %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Impossibile aprire %s in lettura/scrittura"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Impossibile deallocare la console %d"
> @@ -1521,12 +1525,12 @@ msgstr ""
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  #, fuzzy
>  msgid "Too many input files."
>  msgstr "setfont: troppi file di input\n"
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  #, fuzzy
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
> diff --git a/po/ka.po b/po/ka.po
> index a3e2156..208d288 100644
> --- a/po/ka.po
> +++ b/po/ka.po
> @@ -7,7 +7,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2025-03-02 06:05+0100\n"
>  "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
>  "Language-Team: Georgian <(nothing)>\n"
> @@ -60,7 +60,7 @@ msgstr "არასაკმარისი არგუმენტები."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -478,7 +478,11 @@ msgstr ""
>  msgid "Error writing map to file"
>  msgstr "რუკის ფაილში ჩაწერის შეცდომა"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "შეუძლებელია: მეტა არაა?\n"
> @@ -561,12 +565,12 @@ msgstr ""
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr ""
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "ივარაუდება %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "უცნობი keysym '%s'"
> @@ -676,12 +680,12 @@ msgstr ""
>  msgid "'%s' is not a function key symbol"
>  msgstr ""
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr ""
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "%s-ის ჩატვირთვა"
> @@ -750,11 +754,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "კონსოლი ტექსტურ რეჟიმში არაა"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "მაღალი ფონტი მხარდაჭერილი არაა"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -815,7 +819,7 @@ msgstr[0] "# %d ჩანაწერი"
>  msgstr[1] "# %d ჩანაწერი"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1214,25 +1218,25 @@ msgstr ""
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr ""
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "ბრძანება ვერ ვიპოვე."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "ახალი სესიის დაყენების შეცდომა"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "გამოიყენება VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "%s-ის წერაკითხვისთვის გახსნის შეცდომა"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "კონსოლის (%d) გამოყოფის გაუქმების შეცდომა)"
> @@ -1416,11 +1420,11 @@ msgstr ""
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "მეტისმეტად ბევრი შეყვანის ფაილი."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  
> diff --git a/po/kbd.pot b/po/kbd.pot
> index 73d8d44..0eb0254 100644
> --- a/po/kbd.pot
> +++ b/po/kbd.pot
> @@ -8,7 +8,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.9.0\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
>  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
>  "Language-Team: LANGUAGE <LL@li.org>\n"
> @@ -59,7 +59,7 @@ msgstr ""
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -470,7 +470,11 @@ msgstr ""
>  msgid "Error writing map to file"
>  msgstr ""
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr ""
> @@ -553,12 +557,12 @@ msgstr ""
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr ""
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr ""
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr ""
> @@ -664,12 +668,12 @@ msgstr ""
>  msgid "'%s' is not a function key symbol"
>  msgstr ""
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr ""
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr ""
> @@ -738,11 +742,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -803,7 +807,7 @@ msgstr[0] ""
>  msgstr[1] ""
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1202,25 +1206,25 @@ msgstr ""
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr ""
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr ""
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr ""
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr ""
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr ""
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr ""
> @@ -1404,11 +1408,11 @@ msgstr ""
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr ""
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  
> diff --git a/po/nl.po b/po/nl.po
> index 1e88b6a..3728a57 100644
> --- a/po/nl.po
> +++ b/po/nl.po
> @@ -10,7 +10,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd-2.0.4-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2017-01-07 15:02+0100\n"
>  "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
>  "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
> @@ -64,7 +64,7 @@ msgstr "Fout: te weinig argumenten.\n"
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -509,7 +509,11 @@ msgstr "verbinden van toets %d met waarde %d is mislukt"
>  msgid "Error writing map to file"
>  msgstr "Fout tijdens schrijven van toetsenkaart naar bestand"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "onmogelijk: niet meta?\n"
> @@ -592,12 +596,12 @@ msgstr "kan symbool niet verkrijgen wegens onjuist type: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "kan symbool van type %d niet verkrijgen wegens onjuiste index: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, fuzzy, c-format
>  msgid "assuming %s %s"
>  msgstr "iso-8859-1 '%s' wordt aangenomen"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, fuzzy, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "onbekende toetsnaam '%s'\n"
> @@ -708,12 +712,12 @@ msgstr "loadkeys: weet niet hoe %s samen te stellen\n"
>  msgid "'%s' is not a function key symbol"
>  msgstr "'%s' is geen functietoetssymbool"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, fuzzy, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "Te veel items (%d) op één regel"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, fuzzy, c-format
>  msgid "Loading %s"
>  msgstr "Laden van %s\n"
> @@ -788,11 +792,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -861,7 +865,7 @@ msgstr[0] "item"
>  msgstr[1] "item"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, fuzzy, c-format
> @@ -1308,25 +1312,25 @@ msgstr ""
>  "VT-%d is in gebruik; opdracht is afgebroken; gebruik '%s -f' om gebruik af "
>  "te dwingen"
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Kan gegeven opdracht niet vinden."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Kan geen nieuwe sessie instellen"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "VT-%s wordt gebruikt"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Kan %s niet openen voor lezen-en-schrijven"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Kan console %d niet vrijgeven"
> @@ -1523,12 +1527,12 @@ msgstr ""
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  #, fuzzy
>  msgid "Too many input files."
>  msgstr "setfont: te veel invoerbestanden\n"
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  #, fuzzy
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
> diff --git a/po/pl.po b/po/pl.po
> index 0b8294c..6c83769 100644
> --- a/po/pl.po
> +++ b/po/pl.po
> @@ -6,7 +6,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2024-10-30 19:07+0100\n"
>  "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
>  "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
> @@ -59,7 +59,7 @@ msgstr "Za mało argumentów."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -493,7 +493,12 @@ msgstr "nie można dowiązać klawisza %d do wartości %d, ponieważ jest zbyt d
>  msgid "Error writing map to file"
>  msgstr "Błąd podczas zapisu mapy do pliku"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Nie udało się usunąć elementu z tablicy diakrytyków"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "niemożliwe: nie meta?\n"
> @@ -576,12 +581,12 @@ msgstr "nie udało się pobrać symbolu poprzez niewłaściwy typ: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "nie udało się pobrać symbolu typu %d poprzez niewłaściwy indeks: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "przyjęto %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "nieznany symbol '%s'"
> @@ -698,12 +703,12 @@ msgstr "loadkeys: nie wiem, jak wykonać compose dla %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "'%s' nie jest symbolem klawisza funkcyjnego"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "zbyt dużo (%ld) wpisów w jednym wierszu"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Ładowanie %s"
> @@ -777,11 +782,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "Konsola nie jest w trybie tekstowym"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "font wysoki nie jest obsługiwany"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr "Nie można załadować takiego fontu pod tą wersją jądra"
>  
> @@ -849,7 +854,7 @@ msgstr[1] "# %d wpisy"
>  msgstr[2] "# %d wpisów"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1261,25 +1266,25 @@ msgstr ""
>  "vt %d jest używany, polecenie przerwano; można użyć `%s -f' w celu "
>  "wymuszenia."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Nie udało się odnaleźć polecenia."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Nie można ustanowić nowej sesji"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Użycie VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Nie można otworzyć %s do odczytu i zapisu"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Nie udało się zwolnić konsoli %d"
> @@ -1483,11 +1488,11 @@ msgstr ""
>  "przywrócenie fontu ekranowego, rozmiaru i mapy unikodowej do ustawień "
>  "rozruchowych."
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Za dużo plików wejściowych."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Nie można jednocześnie odtworzyć z ROM-u i z pliku. Font nie zmieniony."
> diff --git a/po/pt.po b/po/pt.po
> index 3786723..49af0ab 100644
> --- a/po/pt.po
> +++ b/po/pt.po
> @@ -7,7 +7,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2025-03-23 11:27+0000\n"
>  "Last-Translator: Pedro Albuquerque <pmra@protonmail.com>\n"
>  "Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n"
> @@ -60,7 +60,7 @@ msgstr "Argumentos insuficientes."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -493,7 +493,12 @@ msgstr "impossível associar tecla %d a valor %d porque é demasiado grande"
>  msgid "Error writing map to file"
>  msgstr "Erro ao escrever mapa no ficheiro"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Impossível remover item da tabela diacrítica"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "impossível: não meta?\n"
> @@ -576,12 +581,12 @@ msgstr "impossível obter símbolo por tipo errado: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "impossível obter símbolo de tipo %d por índice errado: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "a assumir %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "símbolo de tecla \"%s\" desconhecido"
> @@ -692,12 +697,12 @@ msgstr "loadkeys: não sei como compor para %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "\"%s\" não é um símbolo de tecla de função"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "demasiadas entradas (%ld) numa linha"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "A carregar %s"
> @@ -772,11 +777,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "A consola não está em modo de texto"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "letra alta não é suportado"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr "Impossível carregar essa letra com esta versão do kernel"
>  
> @@ -843,7 +848,7 @@ msgstr[0] "entrada # %d"
>  msgstr[1] "entradas # %d"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1250,25 +1255,25 @@ msgstr "Impossível verificar se o TV %d está livre; use \"%s -f\" para forçar
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr "tv %d em uso; comando abortado; use \"%s -f\" para forçar."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Impossível localizar o comando."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Impossível definir nova sessão"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "A usar o TV %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Impossível abrir %s leitura/escrita"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Impossível desalocar a consola %d"
> @@ -1479,11 +1484,11 @@ msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  "repor a letra do ecrã e o mapa unicode para as pré-definições de arranque."
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Demasiados ficheiros de entrada."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Impossível restaurar de ROM de carácter e de ficheiro. Letra inalterada."
> diff --git a/po/pt_BR.po b/po/pt_BR.po
> index f05f9c5..0c85677 100644
> --- a/po/pt_BR.po
> +++ b/po/pt_BR.po
> @@ -6,7 +6,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.2.90\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2020-06-03 07:52-0300\n"
>  "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
>  "Language-Team: Brazilian Portuguese <ldpbr-"
> @@ -60,7 +60,7 @@ msgstr "Argumentos insuficientes."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -501,7 +501,12 @@ msgstr "não é possível associar a tecla %d ao valor %d porque é grande demai
>  msgid "Error writing map to file"
>  msgstr "Erro ao escrever mapa para arquivo"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Não foi possível remover o item da tabela de diacríticos"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "impossível: não é meta?\n"
> @@ -584,12 +589,12 @@ msgstr "não foi possível obter símbolo por tipo incorreto: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "não foi possível obter símbolo do tipo %d por índice incorreto: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "presumindo %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "símbolo de tecla (keysym) desconhecido \"%s\""
> @@ -701,12 +706,12 @@ msgstr "loadkeys: não sei como compor para %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "\"%s\" não é um símbolo de tecla de função"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "número excessivo (%ld) de entradas em uma linha"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Carregando %s"
> @@ -780,12 +785,12 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  #, fuzzy
>  msgid "tall font not supported"
>  msgstr "Sem suporte\n"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -852,7 +857,7 @@ msgstr[0] "# %d entrada"
>  msgstr[1] "# %d entradas"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1265,25 +1270,25 @@ msgstr ""
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr "vt %d está em uso; comando abortado; use \"%s -f\" para forçar."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Não foi possível localizar comando."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Não foi possível definir uma nova sessão"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Usando o VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Não foi possível abrir %s para leitura/escrita"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Não foi possível desalocar o console %d"
> @@ -1477,11 +1482,11 @@ msgstr "Mapa Unicode anexado"
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Número excessivo de arquivos de entrada."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Não é possível restaurar a partir de ROM de caractere e de arquivo. Fonte "
> diff --git a/po/ro.po b/po/ro.po
> index e5f2e19..02b20e2 100644
> --- a/po/ro.po
> +++ b/po/ro.po
> @@ -25,7 +25,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2024-10-29 14:30+0100\n"
>  "Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
>  "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
> @@ -79,7 +79,7 @@ msgstr "Nu sunt suficiente argumente."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -575,7 +575,12 @@ msgstr ""
>  msgid "Error writing map to file"
>  msgstr "Eroare la scrierea schemei în fișier"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Nu se poate elimina elementul din tabla de diacritice"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "imposibil: non meta?\n"
> @@ -662,12 +667,12 @@ msgstr "nu se poate obține simbolul după tipul eronat: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "nu se poate obține simbolul de tip %d după indexul greșit: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "presupunând %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "simbol_tastă(keysym) „%s” necunoscut"
> @@ -792,12 +797,12 @@ msgstr "loadkeys: nu știu cum să compun pentru %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "„%s” nu este un simbol al unei taste funcționale"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "prea multe (%ld) intrări într-o singură linie"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Se încarcă %s"
> @@ -874,11 +879,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "Consola nu este în modul text"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "fontul înalt nu este acceptat"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr "Nu se poate încărca un astfel de font cu această versiune de nucleu"
>  
> @@ -951,7 +956,7 @@ msgstr[2] "# %d intrări"
>  msgstr[3] "# %d de intrări"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1375,25 +1380,25 @@ msgstr ""
>  "terminalul virtual(vt) %d este în uz; comanda a fost anulată; utilizați «%s "
>  "-f» pentru a forța."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Nu se poate găsi comanda."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Nu se poate configura o nouă sesiune"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Se utilizează terminalul virtual(VT) %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Nu se poate deschide %s pentru citire/scriere"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Nu s-a putut elibera consola %d"
> @@ -1616,11 +1621,11 @@ msgstr ""
>  "restabilește fontul ecranului, dimensiunea și harta unicode la valorile "
>  "implicite de la pornire."
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Prea multe fișiere de intrare."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Nu se poate restaura în același timp din ROM-ul de caractere, cât și din "
> diff --git a/po/ru.po b/po/ru.po
> index f707ecd..7ebf5a2 100644
> --- a/po/ru.po
> +++ b/po/ru.po
> @@ -8,7 +8,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.6-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2023-05-20 11:36+0300\n"
>  "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
>  "Language-Team: Russian <gnu@d07.ru>\n"
> @@ -62,7 +62,7 @@ msgstr "Недостаточно аргументов."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -498,7 +498,12 @@ msgstr ""
>  msgid "Error writing map to file"
>  msgstr "Ошибка записи карты в файл"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Невозможно: не удалось получить элемент из диакритической таблицы"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "невозможно: не мета?\n"
> @@ -582,12 +587,12 @@ msgstr "невозможно получить символ по некоррек
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "невозможно получить символ с типом %d по некорректному индексу: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "предполагается %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "неизвестный keysym «%s»"
> @@ -703,12 +708,12 @@ msgstr "loadkeys: непонятно как выполнить составле
>  msgid "'%s' is not a function key symbol"
>  msgstr "«%s» не является символом функциональной клавиши"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "слишком много (%ld) элементов в одной строке"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Загружается %s"
> @@ -783,12 +788,12 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  #, fuzzy
>  msgid "tall font not supported"
>  msgstr "Не поддерживается\n"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -856,7 +861,7 @@ msgstr[1] "# %d элемент"
>  msgstr[2] "# %d элементов"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1272,25 +1277,25 @@ msgstr ""
>  "vt %d используется; команда прервана; используйте «%s -f» для "
>  "принудительного запуска."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Не удалось найти команду."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Не удалось установить новый сеанс"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Используется VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Не удалось открыть %s на чтение/запись"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Не удалось освободить консоль %d"
> @@ -1486,11 +1491,11 @@ msgstr "Юникодная карта добавлена"
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Слишком много входных файлов."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Не удалось восстановить сразу из символьного ПЗУ и из файла. Шрифт не "
> @@ -1962,6 +1967,9 @@ msgstr "Данное устройство tty (%s) не является вир
>  msgid "The entire console display cannot be locked.\n"
>  msgstr "Экран консоли не может быть быть заблокирован целиком.\n"
>  
> +#~ msgid "impossible: не удалось получить диакритический символ"
> +#~ msgstr "невозможно: "
> +
>  #~ msgid "octal number too big"
>  #~ msgstr "слишком большое восьмеричное число"
>  
> diff --git a/po/sq.po b/po/sq.po
> index b1cdf27..a4fcd5e 100644
> --- a/po/sq.po
> +++ b/po/sq.po
> @@ -7,7 +7,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.6-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2024-10-26 18:56+0300\n"
>  "Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
>  "Language-Team: Albanian <translation-team-sq@lists.sourceforge.net>\n"
> @@ -60,7 +60,7 @@ msgstr "S’ka argumente të mjaftueshëm."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -480,7 +480,12 @@ msgstr ""
>  msgid "Error writing map to file"
>  msgstr "Gabim në shkrimin tabele te kartela"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "S’arrihet të hiqet objekt nga tabelë diakritikësh"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr ""
> @@ -563,12 +568,12 @@ msgstr ""
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr ""
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr ""
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr ""
> @@ -678,12 +683,12 @@ msgstr ""
>  msgid "'%s' is not a function key symbol"
>  msgstr "'%s' s’është simbol tasti funksioni"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "shumë zëra (%ld) në një rresht"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Po ngarkohet %s"
> @@ -756,12 +761,12 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  #, fuzzy
>  msgid "tall font not supported"
>  msgstr "Nuk mbulohet\n"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -822,7 +827,7 @@ msgstr[0] "# %d zë"
>  msgstr[1] "# %d zëra"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1235,25 +1240,25 @@ msgstr ""
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr ""
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "S’arrihet të gjendet urdhër."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "S’arrihet të ujdiset sesion i ri"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Po përdoret TV %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "S’hapet dot %s lexim/shkrim"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr ""
> @@ -1438,11 +1443,11 @@ msgstr ""
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Shumë kartela dhënie."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  
> diff --git a/po/sr.po b/po/sr.po
> index 3012092..517414f 100644
> --- a/po/sr.po
> +++ b/po/sr.po
> @@ -7,7 +7,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd-2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2024-12-18 21:56+0100\n"
>  "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
>  "Language-Team: Serbian <(nothing)>\n"
> @@ -61,7 +61,7 @@ msgstr "Нема довољно аргумената."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -494,7 +494,12 @@ msgstr "не могу да свежем тастер %d на вредност %d
>  msgid "Error writing map to file"
>  msgstr "Грешка писања мапе у датотеку"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Не могу да уклоним ставку из дијакритичке табеле"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "немогуће: није мета?\n"
> @@ -577,12 +582,12 @@ msgstr "не могу да добавим симбол погршном врст
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "не могу да добавим симбол %d врсте погршним индексом: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "подразумевам „%s %s“"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "непозната сума тастера „%s“"
> @@ -697,12 +702,12 @@ msgstr "loadkeys: не знам како да саставим за „%s“"
>  msgid "'%s' is not a function key symbol"
>  msgstr "„%s“ није симбол тастера функције"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "превише (%ld) уноса у једном реду"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Учитавам „%s“"
> @@ -776,11 +781,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "Конзола није у текстуалном режиму"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "високи словни ликови нису подржани"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr "Не могу да учитам такав словни лик са таквим издањем кернела"
>  
> @@ -848,7 +853,7 @@ msgstr[1] "# %d уноса"
>  msgstr[2] "# %d уноса"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1264,25 +1269,25 @@ msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr ""
>  "вт %d је у употреби; наредба је прекинута; користите „%s -f“ за приморавање."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Не могу да нађем наредбу."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Не могу да подесим нову сесију"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Користим ВТ %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Не могу да отворим „%s“ ради писања/уписа"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Не могу да разместим конзолу %d"
> @@ -1493,11 +1498,11 @@ msgstr ""
>  "поново поставља словни лик, величину и јуникод мапу екрана на подизне "
>  "основности."
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Превише улазних датотека."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Не могу да вратим и из РОМ-а знака и из датотеке. Словни лик није измењен."
> diff --git a/po/sv.po b/po/sv.po
> index 3acf482..2f2ee31 100644
> --- a/po/sv.po
> +++ b/po/sv.po
> @@ -11,7 +11,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2024-10-30 22:24+0100\n"
>  "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
>  "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
> @@ -63,7 +63,7 @@ msgstr "Inte tillräckligt med argument."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -502,7 +502,12 @@ msgstr ""
>  msgid "Error writing map to file"
>  msgstr "Fel vid skrivning av avbildningen till en fil"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Kan inte ta bort ett element från tabellen över diakritiska tecken"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "omöjligt: inte meta?\n"
> @@ -585,12 +590,12 @@ msgstr "kan inte hämta symbol enligt fel typ: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "kan inte hämta symbol av typ %d enligt fel index: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "antar %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "okänd teckensymbol ”%s”"
> @@ -701,12 +706,12 @@ msgstr "loadkeys: vet inte hur man komponerar för %s"
>  msgid "'%s' is not a function key symbol"
>  msgstr "”%s” är inte en funktionstangentsymbol"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "för många (%ld) poster på en rad"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Laddar %s"
> @@ -780,11 +785,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "Konsolen är inte i textläge"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "höga typsnitt stödjs ej"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr "Kan inte ladda ett sådant typsnitt med en sådan kärnversion"
>  
> @@ -851,7 +856,7 @@ msgstr[0] "# %d post"
>  msgstr[1] "# %d poster"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1263,25 +1268,25 @@ msgstr ""
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr "vt %d används, kommandot avbrutet; använd ”%s -f” för att framtvinga."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Kunde inte hitta kommandot."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Kan inte sätta ny session"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Använder VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Kan inte öppna %s för läsning/skrivning"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Kunde inte avallokera konsol %d"
> @@ -1492,11 +1497,11 @@ msgstr ""
>  "återställ skärmtypsnittet, storleken och unicode-avbildningen till "
>  "startvärdena."
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "För många indatafiler."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
>  "Kan inte både återställa från tecken-ROM och från fil.  Typsnittet "
> diff --git a/po/tr.po b/po/tr.po
> index 3383695..90c6531 100644
> --- a/po/tr.po
> +++ b/po/tr.po
> @@ -5,7 +5,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 1.10\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2004-01-21 06:15+0300\n"
>  "Last-Translator: Nilgün Belma Bugüner <nilgun@superonline.com>\n"
>  "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
> @@ -57,7 +57,7 @@ msgstr ""
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -491,7 +491,11 @@ msgstr ""
>  msgid "Error writing map to file"
>  msgstr "E$lem dosyaya yazilirken hata\n"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "imkansiz: meta degil?\n"
> @@ -574,12 +578,12 @@ msgstr ""
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr ""
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, fuzzy, c-format
>  msgid "assuming %s %s"
>  msgstr "iso-8859-1'deki  %s oldugu varsayildi\n"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, fuzzy, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "'%s' sembolu bilinmiyor\n"
> @@ -687,12 +691,12 @@ msgstr ""
>  msgid "'%s' is not a function key symbol"
>  msgstr ""
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, fuzzy, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "Birle$tirilecek dosya sayisi cok fazla\n"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, fuzzy, c-format
>  msgid "Loading %s"
>  msgstr "%s okunurken hata\n"
> @@ -766,11 +770,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -837,7 +841,7 @@ msgstr[0] "girdi"
>  msgstr[1] "girdi"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, fuzzy, c-format
> @@ -1271,26 +1275,26 @@ msgstr "openvt: sanal terminal (vt) %d serbest mi denetlenemiyor\n"
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr "openvt: sanal terminal (vt) %d kullanimda; komut iptal edildi\n"
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr ""
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  #, fuzzy
>  msgid "Unable to set new session"
>  msgstr "openvt: yeni oturum (%s) ayarlanamiyor\n"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, fuzzy, c-format
>  msgid "Using VT %s"
>  msgstr "openvt: VT %s kullanarak\n"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, fuzzy, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "openvt: %s oku/yaz kipinde acilamiyor (%s)\n"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, fuzzy, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "%s: %d konsolu kaldirilamadi\n"
> @@ -1497,12 +1501,12 @@ msgstr ""
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  #, fuzzy
>  msgid "Too many input files."
>  msgstr "setfont: cok fazla girdi dosyasi\n"
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  #, fuzzy
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
> diff --git a/po/uk.po b/po/uk.po
> index b05955c..7174ede 100644
> --- a/po/uk.po
> +++ b/po/uk.po
> @@ -7,7 +7,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.7-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2024-10-29 18:02+0200\n"
>  "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
>  "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
> @@ -63,7 +63,7 @@ msgstr "Недостатньо аргументів."
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -500,7 +500,12 @@ msgstr ""
>  msgid "Error writing map to file"
>  msgstr "Помилка запису у файл"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +#, fuzzy
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr "Не вдалося вилучити запис із таблиці діакритичних символів"
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "неможливо: не `meta'?\n"
> @@ -583,12 +588,12 @@ msgstr "не вдалося отримати символ за помилков
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "не вдалося отримати символ типу %d за помилковим індексом: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "припускаємо %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "невідомий символ клавіші «%s»"
> @@ -711,12 +716,12 @@ msgstr "loadkeys: невідомий спосіб створення сполу
>  msgid "'%s' is not a function key symbol"
>  msgstr "«%s» не є символом функціональної клавіші"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "занадто багато записів (%ld) в одному рядку"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "Завантажується «%s»"
> @@ -790,11 +795,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr "Консоль не перебуває у текстовому режимі"
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr "підтримки високих шрифтів не передбачено"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr "Не вдалося завантажити такий шрифт із такою версією ядра"
>  
> @@ -863,7 +868,7 @@ msgstr[2] "# %d записів"
>  msgstr[3] "# %d запис"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1278,25 +1283,25 @@ msgstr ""
>  "vt %d вже використовується; виконання команди перервано; скористайтеся "
>  "командою «%s -f» для встановлення у примусовому режимі."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Не вдалося знайти команду."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Не вдалося встановити новий сеанс"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Використовується ВТ %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "Не вдалося відкрити %s для читання або запису"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "не вдалося звільнити консоль %d"
> @@ -1509,11 +1514,11 @@ msgstr ""
>  "відновити типові значення під час завантаження для шрифту екрана, розміру та "
>  "схеми unicode."
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "Надто багато вхідних файлів."
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr "Не вдалося ставити шрифт одразу з ПЗУ, та з файла. Шрифт не змінено."
>  
> diff --git a/po/vi.po b/po/vi.po
> index a4df83e..d149c02 100644
> --- a/po/vi.po
> +++ b/po/vi.po
> @@ -10,7 +10,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.0.4-rc1\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2016-12-28 13:46+0700\n"
>  "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
>  "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
> @@ -65,7 +65,7 @@ msgstr "Lỗi: không có đủ đối số.\n"
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -510,7 +510,11 @@ msgstr "gặp lỗi khi tổ hợp phím %d với giá trị %d"
>  msgid "Error writing map to file"
>  msgstr "Lỗi ghi nhớ ánh xạ vào tập tin"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "không thể: không phải meta?\n"
> @@ -593,12 +597,12 @@ msgstr "không thể lấy ký hiệu bằng kiểu sai: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "không thể lấy ký hiệu của kiểu %d bằng chỉ số sai: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, fuzzy, c-format
>  msgid "assuming %s %s"
>  msgstr "coi là iso-8859-1 %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, fuzzy, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "không rõ ký tự phím (keysym) “%s”\n"
> @@ -703,12 +707,12 @@ msgstr "loadkeys: không biết cách cấu tạo cho %s\n"
>  msgid "'%s' is not a function key symbol"
>  msgstr "“%s” không phải là một ký hiệu phím chức năng"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, fuzzy, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "quá nhiều (%d) mục nhập trên cùng một dòng"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, fuzzy, c-format
>  msgid "Loading %s"
>  msgstr "Đang nạp %s\n"
> @@ -782,11 +786,11 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  msgid "tall font not supported"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -854,7 +858,7 @@ msgid_plural "# %d entries"
>  msgstr[0] "mục"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, fuzzy, c-format
> @@ -1297,25 +1301,25 @@ msgstr ""
>  "vt %d đang được sử dụng; lệnh bị bãi bỏ; sử dụng “%s -f” để ép buộc thực "
>  "hiện."
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "Không thể tìm thấy lệnh."
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "Không thể đặt phiên làm việc mới"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "Đang dùng VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "không thể mở %s để đọc/ghi"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "Không thể cấp phát lại console (thiết bị điều khiển) %d"
> @@ -1517,12 +1521,12 @@ msgstr ""
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  #, fuzzy
>  msgid "Too many input files."
>  msgstr "setfont: quá nhiều tập tin đầu vào\n"
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  #, fuzzy
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr ""
> diff --git a/po/zh_CN.po b/po/zh_CN.po
> index 03127ad..bc1cfc9 100644
> --- a/po/zh_CN.po
> +++ b/po/zh_CN.po
> @@ -10,7 +10,7 @@ msgid ""
>  msgstr ""
>  "Project-Id-Version: kbd 2.5-rc2\n"
>  "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
> -"POT-Creation-Date: 2025-09-04 11:19+0200\n"
> +"POT-Creation-Date: 2026-02-14 20:09+0300\n"
>  "PO-Revision-Date: 2022-06-30 11:35-0400\n"
>  "Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
>  "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
> @@ -63,7 +63,7 @@ msgstr "参数不足。"
>  #: src/fgconsole.c:74 src/getkeycodes.c:67 src/getunimap.c:94 src/kbdinfo.c:100
>  #: src/kbd_mode.c:153 src/libcommon/getfd.c:88 src/loadkeys.c:200
>  #: src/loadunimap.c:88 src/mapscrn.c:90 src/openvt.c:328 src/resizecons.c:168
> -#: src/setfont.c:313 src/setkeycodes.c:117 src/setlogcons.c:96
> +#: src/setfont.c:317 src/setkeycodes.c:117 src/setlogcons.c:96
>  #: src/setmetamode.c:116 src/setpalette.c:80 src/setvesablank.c:31
>  #: src/setvtrgb.c:202 src/showconsolefont.c:173 src/showkey.c:198
>  #: src/totextmode.c:31
> @@ -492,7 +492,11 @@ msgstr "将键 %d 绑定到值 %d 失败"
>  msgid "Error writing map to file"
>  msgstr "将映射写入文件失败"
>  
> -#: src/libkeymap/dump.c:546
> +#: src/libkeymap/dump.c:227
> +msgid "impossible: unable to get item from the diacritical table"
> +msgstr ""
> +
> +#: src/libkeymap/dump.c:550
>  #, c-format
>  msgid "impossible: not meta?\n"
>  msgstr "不可能:不是 meta 键?\n"
> @@ -575,12 +579,12 @@ msgstr "无法以错误的类型获取符号: %d"
>  msgid "unable to get symbol of %d type by wrong index: %d"
>  msgstr "无法以错误的索引获取 %d 类型的符号: %d"
>  
> -#: src/libkeymap/ksyms.c:392
> +#: src/libkeymap/ksyms.c:393
>  #, c-format
>  msgid "assuming %s %s"
>  msgstr "假定 %s %s"
>  
> -#: src/libkeymap/ksyms.c:399
> +#: src/libkeymap/ksyms.c:400
>  #, c-format
>  msgid "unknown keysym '%s'"
>  msgstr "未知的 keysym '%s'"
> @@ -685,12 +689,12 @@ msgstr "loadkeys: 不知道如何为 %s 进行组合\n"
>  msgid "'%s' is not a function key symbol"
>  msgstr "'%s' 不是一个功能键标志"
>  
> -#: src/libkeymap/parser.y:333
> +#: src/libkeymap/parser.y:336
>  #, fuzzy, c-format
>  msgid "too many (%ld) entries on one line"
>  msgstr "一行上存在太多的 ( %d 个) 条目"
>  
> -#: src/libkeymap/parser.y:399
> +#: src/libkeymap/parser.y:402
>  #, c-format
>  msgid "Loading %s"
>  msgstr "正在加载 %s"
> @@ -764,12 +768,12 @@ msgstr ""
>  msgid "Console is not in text mode"
>  msgstr ""
>  
> -#: src/libkfont/kdfontop.c:196
> +#: src/libkfont/kdfontop.c:197
>  #, fuzzy
>  msgid "tall font not supported"
>  msgstr "不支持\n"
>  
> -#: src/libkfont/kdfontop.c:212
> +#: src/libkfont/kdfontop.c:213
>  msgid "Unable to load such font with such kernel version"
>  msgstr ""
>  
> @@ -836,7 +840,7 @@ msgid_plural "# %d entries"
>  msgstr[0] "个条目"
>  
>  #: src/libkfont/loadunimap.c:316 src/libkfont/mapscrn.c:100
> -#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:413
> +#: src/libkfont/mapscrn.c:230 src/loadkeys.c:273 src/openvt.c:411
>  #: src/psfxtable.c:120 src/psfxtable.c:127 src/psfxtable.c:136
>  #: src/psfxtable.c:143
>  #, c-format
> @@ -1248,25 +1252,25 @@ msgstr "无法检查 VT %d 是否空闲;使用“%s -f”强制执行。"
>  msgid "vt %d is in use; command aborted; use `%s -f' to force."
>  msgstr "vt %d 正在使用中;命令已中止;使用“%s -f”强制执行。"
>  
> -#: src/openvt.c:353
> +#: src/openvt.c:354
>  msgid "Unable to find command."
>  msgstr "无法找到命令。"
>  
> -#: src/openvt.c:388
> +#: src/openvt.c:386
>  msgid "Unable to set new session"
>  msgstr "无法设置新的会话"
>  
> -#: src/openvt.c:417
> +#: src/openvt.c:415
>  #, c-format
>  msgid "Using VT %s"
>  msgstr "正在使用 VT %s"
>  
> -#: src/openvt.c:423
> +#: src/openvt.c:421
>  #, c-format
>  msgid "Cannot open %s read/write"
>  msgstr "无法打开 %s 以供读写"
>  
> -#: src/openvt.c:470
> +#: src/openvt.c:468
>  #, c-format
>  msgid "Couldn't deallocate console %d"
>  msgstr "无法回收控制台 %d"
> @@ -1459,11 +1463,11 @@ msgstr "Unicode 映射已附加\n"
>  msgid "reset the screen font, size, and unicode map to the bootup defaults."
>  msgstr ""
>  
> -#: src/setfont.c:296 src/setfont.c:304
> +#: src/setfont.c:296 src/setfont.c:308
>  msgid "Too many input files."
>  msgstr "太多的输入文件。"
>  
> -#: src/setfont.c:309
> +#: src/setfont.c:313
>  #, fuzzy
>  msgid "Cannot both restore from character ROM and from file. Font unchanged."
>  msgstr "setfont: 无法既从字符 ROM 进行恢复又从文件进行恢复。字体不变。\n"
> diff --git a/src/libkeymap/dump.c b/src/libkeymap/dump.c
> index 47df091..1a1050e 100644
> --- a/src/libkeymap/dump.c
> +++ b/src/libkeymap/dump.c
> @@ -223,6 +223,10 @@ int lk_dump_ctable(struct lk_ctx *ctx, FILE *fd)
>  			unicode ? "uc" : "");
>  	for (i = 0; i < ctx->accent_table->count; i++) {
>  		kddiac = lk_array_get_ptr(ctx->accent_table, i);
> +		if (!kddiac) {
> +			ERR(ctx, _("impossible: unable to get item from the diacritical table"));
> +			return -1;
> +		}
>  
>  		fprintf(fd, "\t{");
>  		outchar(fd, kddiac->diacr, 1);
> -- 
> 2.52.0
> 

-- 
Rgrds, legion


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 4/4] libkeymap: add NULL check in lk_dump_ctable diacritical loop
  2026-02-14 23:08   ` Alexey Gladkov
@ 2026-02-15  8:04     ` Areg Krdyan
  2026-02-15 17:49       ` Alexey Gladkov
  0 siblings, 1 reply; 8+ messages in thread
From: Areg Krdyan @ 2026-02-15  8:04 UTC (permalink / raw)
  To: Alexey Gladkov; +Cc: kbd

Thanks for the reply! All the changes that I made were done by myself.

I am currently undergoing an internship at Redsoft and my task is to
check the output of the static analyzer for kbd. I also wanted to fix
these static analyzer calls, some of them have already been fixed. Not
all of them are real errors, but they can help to detect the error
when changing the code.

Such checks are already in the project. Eg:
for (t = 0; t < MAX_NR_KEYMAPS; t++) { // libkeymap/kernel.c:24
    if (t > UCHAR_MAX) {
        ERR(ctx, _("table %d must be less than %d"), t, UCHAR_MAX);
        return -1;
    }
    .....
}
With these constants, the error will never be triggered, since
MAX_NR_KEYMAPS = 256 and UCHAR_MAX = 255. But in the future, when
changing MAX_NR_KEYMAPS, it will be useful to have a check to detect
an error.

Please let me know if patches of this kind are not needed.
Thanks again for your time.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/4] libkeymap: prevent NULL dereference in parser
  2026-02-14 17:27 [PATCH 1/4] libkeymap: prevent NULL dereference in parser Krdyan Areg
                   ` (2 preceding siblings ...)
  2026-02-14 17:27 ` [PATCH 4/4] libkeymap: add NULL check in lk_dump_ctable diacritical loop Krdyan Areg
@ 2026-02-15 17:34 ` Alexey Gladkov
  3 siblings, 0 replies; 8+ messages in thread
From: Alexey Gladkov @ 2026-02-15 17:34 UTC (permalink / raw)
  To: Krdyan Areg; +Cc: kbd

On Sat, Feb 14, 2026 at 08:27:30PM +0300, Krdyan Areg wrote:
> The parser accesses ctx->key_line array elements without checking if
> lk_array_get() returns NULL, which can lead to crashes.
> 
> Add NULL checks before dereferencing array values.
> 
> Signed-off-by: Krdyan Areg areg.krdian@gmail.com
> ---
>  src/libkeymap/parser.y | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/libkeymap/parser.y b/src/libkeymap/parser.y
> index 2cd509f..a87fb54 100644
> --- a/src/libkeymap/parser.y
> +++ b/src/libkeymap/parser.y
> @@ -320,6 +320,9 @@ singleline	: KEYCODE NUMBER EQUALS rvalue0 EOL
>  
>  							if (i < ctx->key_line->count) {
>  								val = lk_array_get(ctx->key_line, i);
> +								if (!val)
> +									YYERROR;
> +

I do not think this change is needed right now. In these parser paths,
lk_array_get() is used with indices bounded by ctx->key_line->count, and
count is built only through lk_array_append().

I already fixed in master the real failure by checking lk_array_append()
and aborting on OOM.

So this patch mostly adds defensive checks for an internal-corruption
scenario, rather than fixing a practical bug in normal execution.

>  								keycode = *val;
>  							}
>  
> @@ -338,7 +341,7 @@ singleline	: KEYCODE NUMBER EQUALS rvalue0 EOL
>  					for (i = 0; i < ctx->key_line->count; i++) {
>  						val = lk_array_get(ctx->key_line, i);
>  
> -						if (lk_add_key(ctx, i, $2, *val) < 0)
> +						if (!val || lk_add_key(ctx, i, $2, *val) < 0)
>  							YYERROR;
>  					}
>  				}
> -- 
> 2.52.0
> 

-- 
Rgrds, legion


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 4/4] libkeymap: add NULL check in lk_dump_ctable diacritical loop
  2026-02-15  8:04     ` Areg Krdyan
@ 2026-02-15 17:49       ` Alexey Gladkov
  0 siblings, 0 replies; 8+ messages in thread
From: Alexey Gladkov @ 2026-02-15 17:49 UTC (permalink / raw)
  To: Areg Krdyan; +Cc: kbd

On Sun, Feb 15, 2026 at 11:04:05AM +0300, Areg Krdyan wrote:
> Thanks for the reply! All the changes that I made were done by myself.
> 
> I am currently undergoing an internship at Redsoft and my task is to
> check the output of the static analyzer for kbd. I also wanted to fix
> these static analyzer calls, some of them have already been fixed. Not
> all of them are real errors, but they can help to detect the error
> when changing the code.

That's good, but the desire to satisfy the static analyzer should not be
the only reason for making changes. Especially if the analyzer clearly
does not fully understand the code.

> Such checks are already in the project. Eg:
> for (t = 0; t < MAX_NR_KEYMAPS; t++) { // libkeymap/kernel.c:24
>     if (t > UCHAR_MAX) {
>         ERR(ctx, _("table %d must be less than %d"), t, UCHAR_MAX);
>         return -1;
>     }
>     .....
> }
> With these constants, the error will never be triggered, since
> MAX_NR_KEYMAPS = 256 and UCHAR_MAX = 255. But in the future, when
> changing MAX_NR_KEYMAPS, it will be useful to have a check to detect
> an error.

The check for UCHAR_MAX here is not because of MAX_NR_KEYMAPS, but because
KDGKBENT/KDSKBENT use struct kbentry, which defines kb_table as unsigned
char. This cannot be changed because it is part of the Linux kernel API.

> 
> Please let me know if patches of this kind are not needed.
> Thanks again for your time.
> 

-- 
Rgrds, legion


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-02-15 17:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-14 17:27 [PATCH 1/4] libkeymap: prevent NULL dereference in parser Krdyan Areg
2026-02-14 17:27 ` [PATCH 2/4] kbdfile: remove redundant NULL check in findfile_by_fullname Krdyan Areg
2026-02-14 17:27 ` [PATCH 3/4] libkeymap: add NULL check in kt_latin symbol lookup Krdyan Areg
2026-02-14 17:27 ` [PATCH 4/4] libkeymap: add NULL check in lk_dump_ctable diacritical loop Krdyan Areg
2026-02-14 23:08   ` Alexey Gladkov
2026-02-15  8:04     ` Areg Krdyan
2026-02-15 17:49       ` Alexey Gladkov
2026-02-15 17:34 ` [PATCH 1/4] libkeymap: prevent NULL dereference in parser Alexey Gladkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox