diff --git a/headers/private/libroot/locale/ICUCollateData.h b/headers/private/libroot/locale/ICUCollateData.h index fd481f3f71..5d8e13eaee 100644 --- a/headers/private/libroot/locale/ICUCollateData.h +++ b/headers/private/libroot/locale/ICUCollateData.h @@ -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, diff --git a/headers/private/libroot/locale/ICULocaleBackend.h b/headers/private/libroot/locale/ICULocaleBackend.h index 93e4d9f819..c8f034d3d5 100644 --- a/headers/private/libroot/locale/ICULocaleBackend.h +++ b/headers/private/libroot/locale/ICULocaleBackend.h @@ -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, diff --git a/headers/private/libroot/locale/LocaleBackend.h b/headers/private/libroot/locale/LocaleBackend.h index 5309595a98..272bbf77dc 100644 --- a/headers/private/libroot/locale/LocaleBackend.h +++ b/headers/private/libroot/locale/LocaleBackend.h @@ -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, diff --git a/src/system/libroot/add-ons/icu/ICUCollateData.cpp b/src/system/libroot/add-ons/icu/ICUCollateData.cpp index ce3466a880..57b86b3a88 100644 --- a/src/system/libroot/add-ons/icu/ICUCollateData.cpp +++ b/src/system/libroot/add-ons/icu/ICUCollateData.cpp @@ -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; } diff --git a/src/system/libroot/add-ons/icu/ICULocaleBackend.cpp b/src/system/libroot/add-ons/icu/ICULocaleBackend.cpp index 5ce51a62d6..7c9657a496 100644 --- a/src/system/libroot/add-ons/icu/ICULocaleBackend.cpp +++ b/src/system/libroot/add-ons/icu/ICULocaleBackend.cpp @@ -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); }