Skip to content

Fix potential unicode conversion issues for *nix #7506

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

tex3d
Copy link
Contributor

@tex3d tex3d commented Jun 3, 2025

There were multiple issues with Unicode conversion on *nix platforms. This PR fixes issues I found with the conversion functions that were causing failures when running locally, due to issues with setting the locale. It also had incorrect behavior for emulating the MultiByteToWideChar API.

This change makes the local setting thread safe and more robust to different available locales in runtime environments.

I fixed some off-by-one issues related to null termination, and eliminated some extra copies caused by detecting a string length, then passing the size without the null-terminator to a function which then had to copy the input string again to guarantee null-termination.

The CompilerTest::CompileWithEncodeFlagTestSource test has minor updates for clarity and an added scenario.

The changed code passes the Unicode tests now without asserting across all platforms.
This change should have no functional impacts, except maybe potential double-null-termination in some cases.

Copy link
Collaborator

@llvm-beanz llvm-beanz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a more robust solution to the problem #7458 is trying to address.

@tex3d can you confirm?

@tex3d
Copy link
Contributor Author

tex3d commented Jul 11, 2025

I think this is a more robust solution to the problem #7458 is trying to address.

@tex3d can you confirm?

Yeah, this one fixes a number of other (potential) issues too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: New
Development

Successfully merging this pull request may close these issues.

2 participants