libroot: Disambiguate parameters of ICUCollateData::Strxfrm.
Same thing that was done for wcsxfrm in 218604196afb8f7bc142ab94af6e9cafdf5327b2.
This commit is contained in:
parent
e69e1b2b3a
commit
3e1163d6af
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user