summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/osk_gui.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/osk_gui.cpp b/src/osk_gui.cpp
index 42ff5b5bf..80a87edd5 100644
--- a/src/osk_gui.cpp
+++ b/src/osk_gui.cpp
@@ -299,14 +299,22 @@ void GetKeyboardLayout()
if (StrEmpty(_keyboard_opt[1])) {
GetString(keyboard[1], STR_OSK_KEYBOARD_LAYOUT_CAPS, lastof(keyboard[1]));
} else {
- strncpy(keyboard[0], _keyboard_opt[0], lengthof(keyboard[1]));
+ strncpy(keyboard[1], _keyboard_opt[1], lengthof(keyboard[1]));
}
for (uint j = 0; j < 2; j++) {
const char *kbd = keyboard[j];
+ bool ended = false;
for (uint i = 0; i < OSK_KEYBOARD_ENTRIES; i++) {
_keyboard[j][i] = Utf8Consume(&kbd);
+ /* Be lenient when the last characters are missing (is quite normal) */
+ if (_keyboard[j][i] == '\0' || ended) {
+ ended = true;
+ _keyboard[j][i] = ' ';
+ continue;
+ }
+
if (IsPrintable(_keyboard[j][i])) {
errormark[j][i] = ' ';
} else {