diff --git a/docs/dev/debt/libSceIcu.md b/docs/dev/debt/libSceIcu.md index d391020a67..c7a0c26d89 100644 --- a/docs/dev/debt/libSceIcu.md +++ b/docs/dev/debt/libSceIcu.md @@ -139,6 +139,7 @@ - [UTF-16 string comparison](../../../core/libs/prx/libSceIcu/Compare.cpp) is unverified on a console. `u_strCompare` follows ICU 78.1 [ustring.cpp](https://github.com/unicode-org/icu/blob/049e0d6a420629ac7db77256987d083a563287b5/icu4c/source/common/ustring.cpp): a difference of units for NUL-terminated strings, -1, 0 or 1 for equal prefixes of counted strings, a 0x2800 adjustment in code point order, and 0 for null pointers or lengths below -1. The `UBool` argument is read as one signed byte. The NID comes from the 3.20 inventory and its presence on current firmware is unproven (see ICU export availability). `u_strCompareIter` is not implemented: it needs the `UCharIterator` layout. Closes when: compared with the console. - [UTF-16 substring search](../../../core/libs/prx/libSceIcu/Search.cpp) is unverified on a console. `u_strstr` and `u_strrstr` follow ICU 78.1 [ustring.cpp](https://github.com/unicode-org/icu/blob/049e0d6a420629ac7db77256987d083a563287b5/icu4c/source/common/ustring.cpp) (`u_strFindFirst` and `u_strFindLast` with both strings NUL-terminated), including the rejection of matches that split a surrogate pair, a null substring returning the string and a null string returning null. The NIDs come from the 3.20 inventory and their presence on current firmware is unproven (see ICU export availability). Closes when: compared with the console. - [Character classification and digit helpers](../../../core/libs/prx/libSceIcu/Character.cpp) are unverified on a console. `u_isISOControl` and `u_forDigit` follow ICU 78.1 [uchar.cpp](https://github.com/unicode-org/icu/blob/049e0d6a420629ac7db77256987d083a563287b5/icu4c/source/common/uchar.cpp): the C0 and C1 control ranges need no Unicode property data, and `u_forDigit` returns 0 for a radix outside 2..36 or a digit outside the radix. `UBool` is returned and `int8_t` radix is read as one signed byte. The NIDs come from the 3.20 inventory and their presence on current firmware is unproven (see ICU export availability). Closes when: compared with the console. +- [Locking configuration](../../../core/libs/prx/libSceIcu/Configuration.cpp) is unverified on a console. `u_setMutexFunctions` and `u_setAtomicIncDecFunctions` follow the deprecated ICU 78.1 [umutex.cpp](https://github.com/unicode-org/icu/blob/049e0d6a420629ac7db77256987d083a563287b5/icu4c/source/common/umutex.cpp): they ignore their callbacks and set `U_UNSUPPORTED_ERROR` unless the status already is a failure. The callbacks are declared as untyped pointers because they are never called. A null `UErrorCode` throws where ICU dereferences it. The NIDs come from the 3.20 inventory and their presence on current firmware is unproven (see ICU export availability). Closes when: compared with the console. - [Java modified UTF-8 to UTF-16 conversion](../../../core/libs/prx/libSceIcu/JavaUtf8.cpp) is unverified on a console. `u_strFromJavaModifiedUTF8WithSub` follows ICU 78.1 [ustrtrns.cpp](https://github.com/unicode-org/icu/blob/049e0d6a420629ac7db77256987d083a563287b5/icu4c/source/common/ustrtrns.cpp) and [utf_impl.cpp](https://github.com/unicode-org/icu/blob/049e0d6a420629ac7db77256987d083a563287b5/icu4c/source/common/utf_impl.cpp), including the bytes a malformed sequence swallows and the preflight count of one unit per substituted sequence after the destination fills, even for a supplementary substitution character. A null `UErrorCode` and a result longer than `INT32_MAX` throw. The NID comes from the 3.20 inventory and its presence on current firmware is unproven (see ICU export availability). Closes when: compared with the console. - [UTF-16 to Java modified UTF-8 conversion](../../../core/libs/prx/libSceIcu/JavaUtf8.cpp) is unverified on a console. `u_strToJavaModifiedUTF8` follows ICU 78.1 [ustrtrns.cpp](https://github.com/unicode-org/icu/blob/049e0d6a420629ac7db77256987d083a563287b5/icu4c/source/common/ustrtrns.cpp): each code unit is encoded alone (surrogates take three bytes, U+0000 takes two), output stops at the first unit that does not fit, and the result codes follow `u_terminateChars`. A null `UErrorCode` and a result longer than `INT32_MAX` throw. The NID comes from the 3.20 inventory and its presence on current firmware is unproven (see ICU export availability). Closes when: compared with the console. - [UTF-16 to UTF-32 conversion](../../../core/libs/prx/libSceIcu/Utf32.cpp) is unverified on a console. `u_strToUTF32` and `u_strToUTF32WithSub` follow ICU 78.1 [ustrtrns.cpp](https://github.com/unicode-org/icu/blob/049e0d6a420629ac7db77256987d083a563287b5/icu4c/source/common/ustrtrns.cpp): only a lead surrogate followed by a trail surrogate is combined, every other surrogate is replaced or fails with `U_INVALID_CHAR_FOUND`, and the result codes follow `u_terminateUChar32s`. A null `UErrorCode` and a result longer than `INT32_MAX` throw. The NIDs come from the 3.20 inventory and their presence on current firmware is unproven (see ICU export availability). Closes when: compared with the console.