feat(icu4c): Add ICU4C support to UTF8 string operations - #3187
Draft
CryoTheRenegade wants to merge 3 commits into
Draft
feat(icu4c): Add ICU4C support to UTF8 string operations#3187CryoTheRenegade wants to merge 3 commits into
CryoTheRenegade wants to merge 3 commits into
Conversation
Use vcpkg or the Windows SDK C API on modern builds, keep VC6 on runtime LoadLibrary, and only probe system icu.dll for the delay-loaded SDK path.
Preserve bobtista's original change comments and append the ICU conversion notes instead of replacing them.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the hand-rolled WWLib UTF-8 converter with ICU4C, and links ICU into the engine so later code can use the rest of the suite.
AsciiString::translate/UnicodeString::translatenow convert through ICU instead of 7-bit ASCII. Invalid UTF-8 still falls back to the original one-byte-to-one-wide-unit behavior so legacy CP1252 data is preserved. LAN player names are truncated on a UTF-8 code-point boundary instead of chopping mid-sequence.ICU is selected in this order:
find_package(ICU)from vcpkg / system (C and C++ APIs)icu.lib+/DELAYLOAD:icu.dllon modern MSVCLoadLibraryof OSicu.dll, with Win32CP_UTF8if that DLL is missingWWLib/IcuSupport.his the engine include for linked ICU. vcpkg now depends onicuon all platforms.