From: <sv...@op...> - 2024-06-25 14:04:12
|
Author: manx Date: Tue Jun 25 16:04:01 2024 New Revision: 21063 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21063 Log: Merged revision(s) 21056 from trunk/OpenMPT: [Fix] mpt/string_transcode/transcode.hpp: When converting to UTF16 from UTF32 or UTF8 and encountering a Unicode codepoint outside of official range, do not output a \0 character after the replacement character. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/src/mpt/string_transcode/transcode.hpp Modified: branches/OpenMPT-1.31/src/mpt/string_transcode/transcode.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/string_transcode/transcode.hpp Tue Jun 25 16:02:34 2024 (r21062) +++ branches/OpenMPT-1.31/src/mpt/string_transcode/transcode.hpp Tue Jun 25 16:04:01 2024 (r21063) @@ -678,6 +678,7 @@ out.push_back(replacement); ucs4 = 0; charsleft = 0; + continue; } if (ucs4 <= 0xffff) { out.push_back(static_cast<mpt::widechar>(ucs4)); @@ -817,7 +818,7 @@ char32_t ucs4 = static_cast<char32_t>(static_cast<uint32>(in[i])); if (ucs4 > 0x1fffff) { out.push_back(static_cast<typename Tdststring::value_type>(static_cast<uint16>(replacement))); - ucs4 = 0; + continue; } if (ucs4 <= 0xffff) { out.push_back(static_cast<typename Tdststring::value_type>(static_cast<uint16>(ucs4))); |