src/osk_gui.cpp
changeset 9235 02e09ffa89dc
parent 9233 4daa9bb8dbf7
child 10399 79a272c88359
equal deleted inserted replaced
9234:8123d1c8e796 9235:02e09ffa89dc
   297 	}
   297 	}
   298 
   298 
   299 	if (StrEmpty(_keyboard_opt[1])) {
   299 	if (StrEmpty(_keyboard_opt[1])) {
   300 		GetString(keyboard[1], STR_OSK_KEYBOARD_LAYOUT_CAPS, lastof(keyboard[1]));
   300 		GetString(keyboard[1], STR_OSK_KEYBOARD_LAYOUT_CAPS, lastof(keyboard[1]));
   301 	} else {
   301 	} else {
   302 		strncpy(keyboard[0], _keyboard_opt[0], lengthof(keyboard[1]));
   302 		strncpy(keyboard[1], _keyboard_opt[1], lengthof(keyboard[1]));
   303 	}
   303 	}
   304 
   304 
   305 	for (uint j = 0; j < 2; j++) {
   305 	for (uint j = 0; j < 2; j++) {
   306 		const char *kbd = keyboard[j];
   306 		const char *kbd = keyboard[j];
       
   307 		bool ended = false;
   307 		for (uint i = 0; i < OSK_KEYBOARD_ENTRIES; i++) {
   308 		for (uint i = 0; i < OSK_KEYBOARD_ENTRIES; i++) {
   308 			_keyboard[j][i] = Utf8Consume(&kbd);
   309 			_keyboard[j][i] = Utf8Consume(&kbd);
       
   310 
       
   311 			/* Be lenient when the last characters are missing (is quite normal) */
       
   312 			if (_keyboard[j][i] == '\0' || ended) {
       
   313 				ended = true;
       
   314 				_keyboard[j][i] = ' ';
       
   315 				continue;
       
   316 			}
   309 
   317 
   310 			if (IsPrintable(_keyboard[j][i])) {
   318 			if (IsPrintable(_keyboard[j][i])) {
   311 				errormark[j][i] = ' ';
   319 				errormark[j][i] = ' ';
   312 			} else {
   320 			} else {
   313 				has_error = true;
   321 				has_error = true;