summaryrefslogtreecommitdiff
path: root/core/src/fxcrt
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/fxcrt')
-rw-r--r--core/src/fxcrt/fx_basic_bstring.cpp23
-rw-r--r--core/src/fxcrt/fx_basic_wstring.cpp28
-rw-r--r--core/src/fxcrt/fx_extension.cpp3
3 files changed, 28 insertions, 26 deletions
diff --git a/core/src/fxcrt/fx_basic_bstring.cpp b/core/src/fxcrt/fx_basic_bstring.cpp
index e0d1146068..85e5041095 100644
--- a/core/src/fxcrt/fx_basic_bstring.cpp
+++ b/core/src/fxcrt/fx_basic_bstring.cpp
@@ -910,25 +910,20 @@ CFX_WideString CFX_ByteString::UTF8Decode() const {
}
return decoder.GetResult();
}
+
+// static
CFX_ByteString CFX_ByteString::FromUnicode(const FX_WCHAR* str,
FX_STRSIZE len) {
- if (len < 0) {
- len = FXSYS_wcslen(str);
- }
- CFX_ByteString bstr;
- bstr.ConvertFrom(CFX_WideString(str, len));
- return bstr;
+ FX_STRSIZE str_len = len >= 0 ? len : FXSYS_wcslen(str);
+ return FromUnicode(CFX_WideString(str, str_len));
}
+
+// static
CFX_ByteString CFX_ByteString::FromUnicode(const CFX_WideString& str) {
- return FromUnicode(str.c_str(), str.GetLength());
-}
-void CFX_ByteString::ConvertFrom(const CFX_WideString& str,
- CFX_CharMap* pCharMap) {
- if (!pCharMap) {
- pCharMap = CFX_CharMap::GetDefaultMapper();
- }
- *this = (*pCharMap->m_GetByteString)(pCharMap, str);
+ CFX_CharMap* pCharMap = CFX_CharMap::GetDefaultMapper();
+ return (*pCharMap->m_GetByteString)(pCharMap, str);
}
+
int CFX_ByteString::Compare(const CFX_ByteStringC& str) const {
if (!m_pData) {
return str.IsEmpty() ? 0 : -1;
diff --git a/core/src/fxcrt/fx_basic_wstring.cpp b/core/src/fxcrt/fx_basic_wstring.cpp
index 2370c87cf1..d83aa85213 100644
--- a/core/src/fxcrt/fx_basic_wstring.cpp
+++ b/core/src/fxcrt/fx_basic_wstring.cpp
@@ -303,13 +303,7 @@ CFX_ByteString CFX_WideString::UTF16LE_Encode() const {
result.ReleaseBuffer(len * 2 + 2);
return result;
}
-void CFX_WideString::ConvertFrom(const CFX_ByteString& str,
- CFX_CharMap* pCharMap) {
- if (!pCharMap) {
- pCharMap = CFX_CharMap::GetDefaultMapper();
- }
- *this = pCharMap->m_GetWideString(pCharMap, str);
-}
+
void CFX_WideString::Reserve(FX_STRSIZE len) {
GetBuffer(len);
ReleaseBuffer(GetLength());
@@ -346,11 +340,20 @@ FX_WCHAR* CFX_WideString::GetBuffer(FX_STRSIZE nMinBufLength) {
pOldData->Release();
return m_pData->m_String;
}
-CFX_WideString CFX_WideString::FromLocal(const char* str, FX_STRSIZE len) {
- CFX_WideString result;
- result.ConvertFrom(CFX_ByteString(str, len));
- return result;
+
+// static
+CFX_WideString CFX_WideString::FromLocal(const CFX_ByteString& str) {
+ return FromCodePage(str, 0);
}
+
+// static
+CFX_WideString CFX_WideString::FromCodePage(const CFX_ByteString& str,
+ FX_WORD codepage) {
+ CFX_CharMap* pCharMap = CFX_CharMap::GetDefaultMapper(codepage);
+ return pCharMap->m_GetWideString(pCharMap, str);
+}
+
+// static
CFX_WideString CFX_WideString::FromUTF8(const char* str, FX_STRSIZE len) {
if (!str || 0 == len) {
return CFX_WideString();
@@ -362,6 +365,8 @@ CFX_WideString CFX_WideString::FromUTF8(const char* str, FX_STRSIZE len) {
}
return decoder.GetResult();
}
+
+// static
CFX_WideString CFX_WideString::FromUTF16LE(const unsigned short* wstr,
FX_STRSIZE wlen) {
if (!wstr || 0 == wlen) {
@@ -376,6 +381,7 @@ CFX_WideString CFX_WideString::FromUTF16LE(const unsigned short* wstr,
result.ReleaseBuffer(wlen);
return result;
}
+
FX_STRSIZE CFX_WideString::WStringLength(const unsigned short* str) {
FX_STRSIZE len = 0;
if (str)
diff --git a/core/src/fxcrt/fx_extension.cpp b/core/src/fxcrt/fx_extension.cpp
index fa6245c9d3..cae1763c7e 100644
--- a/core/src/fxcrt/fx_extension.cpp
+++ b/core/src/fxcrt/fx_extension.cpp
@@ -133,7 +133,8 @@ FX_FLOAT FXSYS_strtof(const FX_CHAR* pcsStr,
if (iLength < 0) {
iLength = (int32_t)FXSYS_strlen(pcsStr);
}
- CFX_WideString ws = CFX_WideString::FromLocal(pcsStr, iLength);
+ CFX_WideString ws =
+ CFX_WideString::FromLocal(CFX_ByteString(pcsStr, iLength));
return FXSYS_wcstof(ws.c_str(), iLength, pUsedLen);
}
FX_FLOAT FXSYS_wcstof(const FX_WCHAR* pwsStr,