1
0
Fork 0

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
1 changed files with 5 additions and 3 deletions

View File

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