OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <cctype> | 10 #include <cctype> |
(...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
740 if (!m_pData) { | 740 if (!m_pData) { |
741 return; | 741 return; |
742 } | 742 } |
743 ASSERT(nIndex >= 0); | 743 ASSERT(nIndex >= 0); |
744 ASSERT(nIndex < m_pData->m_nDataLength); | 744 ASSERT(nIndex < m_pData->m_nDataLength); |
745 ReallocBeforeWrite(m_pData->m_nDataLength); | 745 ReallocBeforeWrite(m_pData->m_nDataLength); |
746 m_pData->m_String[nIndex] = ch; | 746 m_pData->m_String[nIndex] = ch; |
747 } | 747 } |
748 | 748 |
749 // static | 749 // static |
750 CFX_WideString CFX_WideString::FromLocal(const CFX_ByteString& str) { | 750 CFX_WideString CFX_WideString::FromLocal(const CFX_ByteStringC& str) { |
751 return FromCodePage(str, 0); | 751 return FromCodePage(str, 0); |
752 } | 752 } |
753 | 753 |
754 // static | 754 // static |
755 CFX_WideString CFX_WideString::FromCodePage(const CFX_ByteString& str, | 755 CFX_WideString CFX_WideString::FromCodePage(const CFX_ByteStringC& str, |
756 uint16_t codepage) { | 756 uint16_t codepage) { |
757 return CFX_CharMap::GetWideString(codepage, str); | 757 return CFX_CharMap::GetWideString(codepage, str); |
758 } | 758 } |
759 | 759 |
760 // static | 760 // static |
761 CFX_WideString CFX_WideString::FromUTF8(const CFX_ByteStringC& str) { | 761 CFX_WideString CFX_WideString::FromUTF8(const CFX_ByteStringC& str) { |
762 if (str.IsEmpty()) | 762 if (str.IsEmpty()) |
763 return CFX_WideString(); | 763 return CFX_WideString(); |
764 | 764 |
765 CFX_UTF8Decoder decoder; | 765 CFX_UTF8Decoder decoder; |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
936 int CFX_WideString::GetInteger() const { | 936 int CFX_WideString::GetInteger() const { |
937 return m_pData ? FXSYS_wtoi(m_pData->m_String) : 0; | 937 return m_pData ? FXSYS_wtoi(m_pData->m_String) : 0; |
938 } | 938 } |
939 | 939 |
940 FX_FLOAT CFX_WideString::GetFloat() const { | 940 FX_FLOAT CFX_WideString::GetFloat() const { |
941 return m_pData ? FX_wtof(m_pData->m_String, m_pData->m_nDataLength) : 0.0f; | 941 return m_pData ? FX_wtof(m_pData->m_String, m_pData->m_nDataLength) : 0.0f; |
942 } | 942 } |
943 | 943 |
944 // static | 944 // static |
945 CFX_ByteString CFX_CharMap::GetByteString(uint16_t codepage, | 945 CFX_ByteString CFX_CharMap::GetByteString(uint16_t codepage, |
946 const CFX_WideString& wstr) { | 946 const CFX_WideStringC& wstr) { |
947 FXSYS_assert(IsValidCodePage(codepage)); | 947 FXSYS_assert(IsValidCodePage(codepage)); |
948 int src_len = wstr.GetLength(); | 948 int src_len = wstr.GetLength(); |
949 int dest_len = FXSYS_WideCharToMultiByte(codepage, 0, wstr.c_str(), src_len, | 949 int dest_len = FXSYS_WideCharToMultiByte(codepage, 0, wstr.c_str(), src_len, |
950 nullptr, 0, nullptr, nullptr); | 950 nullptr, 0, nullptr, nullptr); |
951 CFX_ByteString bstr; | 951 CFX_ByteString bstr; |
952 if (dest_len) { | 952 if (dest_len) { |
953 FX_CHAR* dest_buf = bstr.GetBuffer(dest_len); | 953 FX_CHAR* dest_buf = bstr.GetBuffer(dest_len); |
954 FXSYS_WideCharToMultiByte(codepage, 0, wstr.c_str(), src_len, dest_buf, | 954 FXSYS_WideCharToMultiByte(codepage, 0, wstr.c_str(), src_len, dest_buf, |
955 dest_len, nullptr, nullptr); | 955 dest_len, nullptr, nullptr); |
956 bstr.ReleaseBuffer(dest_len); | 956 bstr.ReleaseBuffer(dest_len); |
957 } | 957 } |
958 return bstr; | 958 return bstr; |
959 } | 959 } |
960 | 960 |
961 // static | 961 // static |
962 CFX_WideString CFX_CharMap::GetWideString(uint16_t codepage, | 962 CFX_WideString CFX_CharMap::GetWideString(uint16_t codepage, |
963 const CFX_ByteString& bstr) { | 963 const CFX_ByteStringC& bstr) { |
964 FXSYS_assert(IsValidCodePage(codepage)); | 964 FXSYS_assert(IsValidCodePage(codepage)); |
965 int src_len = bstr.GetLength(); | 965 int src_len = bstr.GetLength(); |
966 int dest_len = | 966 int dest_len = |
967 FXSYS_MultiByteToWideChar(codepage, 0, bstr, src_len, nullptr, 0); | 967 FXSYS_MultiByteToWideChar(codepage, 0, bstr.c_str(), src_len, nullptr, 0); |
968 CFX_WideString wstr; | 968 CFX_WideString wstr; |
969 if (dest_len) { | 969 if (dest_len) { |
970 FX_WCHAR* dest_buf = wstr.GetBuffer(dest_len); | 970 FX_WCHAR* dest_buf = wstr.GetBuffer(dest_len); |
971 FXSYS_MultiByteToWideChar(codepage, 0, bstr, src_len, dest_buf, dest_len); | 971 FXSYS_MultiByteToWideChar(codepage, 0, bstr.c_str(), src_len, dest_buf, |
| 972 dest_len); |
972 wstr.ReleaseBuffer(dest_len); | 973 wstr.ReleaseBuffer(dest_len); |
973 } | 974 } |
974 return wstr; | 975 return wstr; |
975 } | 976 } |
OLD | NEW |