From 3d8bd6245ee0f1813f0f01d56cd63aab46facbb7 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 26 Mar 2008 11:50:53 +0000 Subject: (svn r12428) -Fix [FS#1878]: loading from the config file could fail even when the data is correct. Patch by Dominik. --- src/osk_gui.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/osk_gui.cpp') 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 { -- cgit v1.2.3-54-g00ecf