Repository navigation
Conversation
First step in moving ext/intl from C-style code towards C++. Replace the uloc_* buffer/retry loops with helpers that preflight the call and return an exactly sized zend_string or icu::UnicodeString. Also use LocalUEnumerationPointer, icu::Locale::getDefault() and C++ casts. locale_add_likely_subtags() and locale_minimize_subtags() keep their ULOC_FULLNAME_CAPACITY buffer: older ICU (e.g. 74) accepts overlong input there and would otherwise return it instead of failing. The uloc_* accessors are kept: icu::Locale normalises the ID and would change results for existing inputs. Further C++ replacements need a newer ICU than the 57.1 minimum: Locale::addLikelySubtags(), minimizeSubtags() and std::string getKeywordValue() (ICU 63), LocaleMatcher for acceptFromHttp (ICU 65).
devnexen
force-pushed
the
intl_cpp_conversion_1
branch
from
October 25, 2026 12:33
f33d898 to
ccf37e5
Compare
devnexen
marked this pull request as ready for review
October 25, 2026 14:13
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.
First step in moving ext/intl from C-style code towards C++.
Replace the uloc_* buffer/retry loops with helpers that preflight the call and return an exactly sized zend_string or icu::UnicodeString. Also use LocalUEnumerationPointer, icu::Locale::getDefault() and C++ casts.
The uloc_* accessors are kept: icu::Locale normalises the ID and would change results for existing inputs. Further C++ replacements need a newer ICU than the 57.1 minimum: Locale::addLikelySubtags(), minimizeSubtags() and std::string getKeywordValue() (ICU 63), LocaleMatcher for acceptFromHttp (ICU 65).