libroot: Disambiguate parameters of ICUCollateData::Strxfrm.

Same thing that was done for wcsxfrm in 218604196afb8f7bc142ab94af6e9cafdf5327b2.
This commit is contained in:
Augustin Cavalier 2023-04-08 14:17:15 -04:00
parent e69e1b2b3a
commit 3e1163d6af
5 changed files with 14 additions and 13 deletions

View File

@ -28,8 +28,8 @@ public:
virtual status_t SetToPosix();
status_t Strcoll(const char* a, const char* b, int& out);
status_t Strxfrm(char* out, const char* in, size_t size,
size_t& outSize);
status_t Strxfrm(char* out, const char* in,
size_t outSize, size_t& requiredSize);
status_t Wcscoll(const wchar_t* a, const wchar_t* b,
int& out);
status_t Wcsxfrm(wchar_t* out, const wchar_t* in,

View File

@ -59,8 +59,8 @@ public:
virtual const char* GetLanginfo(int index);
virtual status_t Strcoll(const char* a, const char* b, int& out);
virtual status_t Strxfrm(char* out, const char* in, size_t size,
size_t& outSize);
virtual status_t Strxfrm(char* out, const char* in,
size_t outSize, size_t& requiredSize);
virtual status_t Wcscoll(const wchar_t* a, const wchar_t* b,
int& out);
virtual status_t Wcsxfrm(wchar_t* out, const wchar_t* in,

View File

@ -167,8 +167,8 @@ public:
virtual status_t Strcoll(const char* a, const char* b,
int& out) = 0;
virtual status_t Strxfrm(char* out, const char* in, size_t size,
size_t& outSize) = 0;
virtual status_t Strxfrm(char* out, const char* in,
size_t outSize, size_t& requiredSize) = 0;
virtual status_t Wcscoll(const wchar_t* a, const wchar_t* b,
int& out) = 0;
virtual status_t Wcsxfrm(wchar_t* out, const wchar_t* in,

View File

@ -114,17 +114,18 @@ ICUCollateData::Strcoll(const char* a, const char* b, int& result)
status_t
ICUCollateData::Strxfrm(char* out, const char* in, size_t size, size_t& outSize)
ICUCollateData::Strxfrm(char* out, const char* in,
size_t outSize, size_t& requiredSize)
{
if (in == NULL) {
outSize = 0;
requiredSize = 0;
return B_OK;
}
if (fCollator == NULL || strcmp(fPosixLocaleName, "POSIX") == 0) {
// handle POSIX here as the collator ICU uses for that (english) is
// incompatible in too many ways
outSize = strlcpy(out, in, size);
requiredSize = strlcpy(out, in, outSize);
for (const char* inIter = in; *inIter != 0; ++inIter) {
if (*inIter < 0)
return B_BAD_VALUE;
@ -136,7 +137,7 @@ ICUCollateData::Strxfrm(char* out, const char* in, size_t size, size_t& outSize)
if (_ToUnicodeString(in, unicodeIn) != B_OK)
return B_BAD_VALUE;
outSize = fCollator->getSortKey(unicodeIn, (uint8_t*)out, size);
requiredSize = fCollator->getSortKey(unicodeIn, (uint8_t*)out, outSize);
return B_OK;
}

View File

@ -296,12 +296,12 @@ ICULocaleBackend::Strcoll(const char* a, const char* b, int& result)
status_t
ICULocaleBackend::Strxfrm(char* out, const char* in, size_t size,
size_t& outSize)
ICULocaleBackend::Strxfrm(char* out, const char* in,
size_t outSize, size_t& requiredSize)
{
ErrnoMaintainer errnoMaintainer;
return fCollateData.Strxfrm(out, in, size, outSize);
return fCollateData.Strxfrm(out, in, outSize, requiredSize);
}