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();
|
virtual status_t SetToPosix();
|
||||||
|
|
||||||
status_t Strcoll(const char* a, const char* b, int& out);
|
status_t Strcoll(const char* a, const char* b, int& out);
|
||||||
status_t Strxfrm(char* out, const char* in, size_t size,
|
status_t Strxfrm(char* out, const char* in,
|
||||||
size_t& outSize);
|
size_t outSize, size_t& requiredSize);
|
||||||
status_t Wcscoll(const wchar_t* a, const wchar_t* b,
|
status_t Wcscoll(const wchar_t* a, const wchar_t* b,
|
||||||
int& out);
|
int& out);
|
||||||
status_t Wcsxfrm(wchar_t* out, const wchar_t* in,
|
status_t Wcsxfrm(wchar_t* out, const wchar_t* in,
|
||||||
|
@ -59,8 +59,8 @@ public:
|
|||||||
virtual const char* GetLanginfo(int index);
|
virtual const char* GetLanginfo(int index);
|
||||||
|
|
||||||
virtual status_t Strcoll(const char* a, const char* b, int& out);
|
virtual status_t Strcoll(const char* a, const char* b, int& out);
|
||||||
virtual status_t Strxfrm(char* out, const char* in, size_t size,
|
virtual status_t Strxfrm(char* out, const char* in,
|
||||||
size_t& outSize);
|
size_t outSize, size_t& requiredSize);
|
||||||
virtual status_t Wcscoll(const wchar_t* a, const wchar_t* b,
|
virtual status_t Wcscoll(const wchar_t* a, const wchar_t* b,
|
||||||
int& out);
|
int& out);
|
||||||
virtual status_t Wcsxfrm(wchar_t* out, const wchar_t* in,
|
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,
|
virtual status_t Strcoll(const char* a, const char* b,
|
||||||
int& out) = 0;
|
int& out) = 0;
|
||||||
virtual status_t Strxfrm(char* out, const char* in, size_t size,
|
virtual status_t Strxfrm(char* out, const char* in,
|
||||||
size_t& outSize) = 0;
|
size_t outSize, size_t& requiredSize) = 0;
|
||||||
virtual status_t Wcscoll(const wchar_t* a, const wchar_t* b,
|
virtual status_t Wcscoll(const wchar_t* a, const wchar_t* b,
|
||||||
int& out) = 0;
|
int& out) = 0;
|
||||||
virtual status_t Wcsxfrm(wchar_t* out, const wchar_t* in,
|
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
|
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) {
|
if (in == NULL) {
|
||||||
outSize = 0;
|
requiredSize = 0;
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fCollator == NULL || strcmp(fPosixLocaleName, "POSIX") == 0) {
|
if (fCollator == NULL || strcmp(fPosixLocaleName, "POSIX") == 0) {
|
||||||
// handle POSIX here as the collator ICU uses for that (english) is
|
// handle POSIX here as the collator ICU uses for that (english) is
|
||||||
// incompatible in too many ways
|
// incompatible in too many ways
|
||||||
outSize = strlcpy(out, in, size);
|
requiredSize = strlcpy(out, in, outSize);
|
||||||
for (const char* inIter = in; *inIter != 0; ++inIter) {
|
for (const char* inIter = in; *inIter != 0; ++inIter) {
|
||||||
if (*inIter < 0)
|
if (*inIter < 0)
|
||||||
return B_BAD_VALUE;
|
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)
|
if (_ToUnicodeString(in, unicodeIn) != B_OK)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
|
|
||||||
outSize = fCollator->getSortKey(unicodeIn, (uint8_t*)out, size);
|
requiredSize = fCollator->getSortKey(unicodeIn, (uint8_t*)out, outSize);
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
@ -296,12 +296,12 @@ ICULocaleBackend::Strcoll(const char* a, const char* b, int& result)
|
|||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
ICULocaleBackend::Strxfrm(char* out, const char* in, size_t size,
|
ICULocaleBackend::Strxfrm(char* out, const char* in,
|
||||||
size_t& outSize)
|
size_t outSize, size_t& requiredSize)
|
||||||
{
|
{
|
||||||
ErrnoMaintainer errnoMaintainer;
|
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