applet/swkbd: use UTF-16 string to test string size

Also removed a TODO as it is verified that max_text_length is inclusive (allows size = max_text_length)
This commit is contained in:
Weiyi Wang 2019-03-04 10:33:23 -05:00
parent 5f80075c31
commit 47ed3f4db5

View file

@ -52,8 +52,10 @@ ValidationError SoftwareKeyboard::ValidateInput(const std::string& input) const
return error;
}
// TODO(jroweboy): Is max_text_length inclusive or exclusive?
if (input.size() > config.max_text_length) {
// 3DS uses UTF-16 string to test string size
std::u16string u16input = Common::UTF8ToUTF16(input);
if (u16input.size() > config.max_text_length) {
return ValidationError::MaxLengthExceeded;
}
@ -62,7 +64,7 @@ ValidationError SoftwareKeyboard::ValidateInput(const std::string& input) const
bool is_empty = input.empty();
switch (config.accept_mode) {
case AcceptedInput::FixedLength:
if (input.size() != config.max_text_length) {
if (u16input.size() != config.max_text_length) {
return ValidationError::FixedLengthRequired;
}
break;