diff options
| author | 2021-11-08 14:57:53 -0500 | |
|---|---|---|
| committer | 2021-11-08 14:57:53 -0500 | |
| commit | 3af2117c886a7751a45ae6bb26216a686b3057ba (patch) | |
| tree | fc34ff9929b59a913f2c555dcf8067fff5c9e5bf | |
| parent | applets/swkbd: Skip text checking if the text has been confirmed (diff) | |
| download | yuzu-3af2117c886a7751a45ae6bb26216a686b3057ba.tar.gz yuzu-3af2117c886a7751a45ae6bb26216a686b3057ba.tar.xz yuzu-3af2117c886a7751a45ae6bb26216a686b3057ba.zip | |
applets/swkbd: Fix text check message encoding
The text check message can be encoded in UTF-8.
Diffstat (limited to '')
| -rw-r--r-- | src/core/hle/service/am/applets/applet_software_keyboard.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/core/hle/service/am/applets/applet_software_keyboard.cpp b/src/core/hle/service/am/applets/applet_software_keyboard.cpp index 1f21cee91..f38f53f69 100644 --- a/src/core/hle/service/am/applets/applet_software_keyboard.cpp +++ b/src/core/hle/service/am/applets/applet_software_keyboard.cpp | |||
| @@ -278,13 +278,21 @@ void SoftwareKeyboard::ProcessTextCheck() { | |||
| 278 | 278 | ||
| 279 | std::memcpy(&swkbd_text_check, text_check_data.data(), sizeof(SwkbdTextCheck)); | 279 | std::memcpy(&swkbd_text_check, text_check_data.data(), sizeof(SwkbdTextCheck)); |
| 280 | 280 | ||
| 281 | std::u16string text_check_message = | 281 | std::u16string text_check_message = [this, &swkbd_text_check]() -> std::u16string { |
| 282 | swkbd_text_check.text_check_result == SwkbdTextCheckResult::Failure || | 282 | if (swkbd_text_check.text_check_result == SwkbdTextCheckResult::Failure || |
| 283 | swkbd_text_check.text_check_result == SwkbdTextCheckResult::Confirm | 283 | swkbd_text_check.text_check_result == SwkbdTextCheckResult::Confirm) { |
| 284 | ? Common::UTF16StringFromFixedZeroTerminatedBuffer( | 284 | return swkbd_config_common.use_utf8 |
| 285 | swkbd_text_check.text_check_message.data(), | 285 | ? Common::UTF8ToUTF16(Common::StringFromFixedZeroTerminatedBuffer( |
| 286 | swkbd_text_check.text_check_message.size()) | 286 | reinterpret_cast<const char*>( |
| 287 | : u""; | 287 | swkbd_text_check.text_check_message.data()), |
| 288 | swkbd_text_check.text_check_message.size() * sizeof(char16_t))) | ||
| 289 | : Common::UTF16StringFromFixedZeroTerminatedBuffer( | ||
| 290 | swkbd_text_check.text_check_message.data(), | ||
| 291 | swkbd_text_check.text_check_message.size()); | ||
| 292 | } else { | ||
| 293 | return u""; | ||
| 294 | } | ||
| 295 | }(); | ||
| 288 | 296 | ||
| 289 | LOG_INFO(Service_AM, "\nTextCheckResult: {}\nTextCheckMessage: {}", | 297 | LOG_INFO(Service_AM, "\nTextCheckResult: {}\nTextCheckMessage: {}", |
| 290 | GetTextCheckResultName(swkbd_text_check.text_check_result), | 298 | GetTextCheckResultName(swkbd_text_check.text_check_result), |