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> // For offsetof(). | 7 #include <stddef.h> // For offsetof(). |
8 #include <cctype> | 8 #include <cctype> |
9 | 9 |
10 #include "core/include/fxcrt/fx_basic.h" | 10 #include "core/include/fxcrt/fx_basic.h" |
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
903 CopyBeforeWrite(); | 903 CopyBeforeWrite(); |
904 m_pData->m_String[nIndex] = ch; | 904 m_pData->m_String[nIndex] = ch; |
905 } | 905 } |
906 CFX_WideString CFX_ByteString::UTF8Decode() const { | 906 CFX_WideString CFX_ByteString::UTF8Decode() const { |
907 CFX_UTF8Decoder decoder; | 907 CFX_UTF8Decoder decoder; |
908 for (FX_STRSIZE i = 0; i < GetLength(); i++) { | 908 for (FX_STRSIZE i = 0; i < GetLength(); i++) { |
909 decoder.Input((uint8_t)m_pData->m_String[i]); | 909 decoder.Input((uint8_t)m_pData->m_String[i]); |
910 } | 910 } |
911 return decoder.GetResult(); | 911 return decoder.GetResult(); |
912 } | 912 } |
| 913 |
| 914 // static |
913 CFX_ByteString CFX_ByteString::FromUnicode(const FX_WCHAR* str, | 915 CFX_ByteString CFX_ByteString::FromUnicode(const FX_WCHAR* str, |
914 FX_STRSIZE len) { | 916 FX_STRSIZE len) { |
915 if (len < 0) { | 917 FX_STRSIZE str_len = len >= 0 ? len : FXSYS_wcslen(str); |
916 len = FXSYS_wcslen(str); | 918 return FromUnicode(CFX_WideString(str, str_len)); |
917 } | |
918 CFX_ByteString bstr; | |
919 bstr.ConvertFrom(CFX_WideString(str, len)); | |
920 return bstr; | |
921 } | 919 } |
| 920 |
| 921 // static |
922 CFX_ByteString CFX_ByteString::FromUnicode(const CFX_WideString& str) { | 922 CFX_ByteString CFX_ByteString::FromUnicode(const CFX_WideString& str) { |
923 return FromUnicode(str.c_str(), str.GetLength()); | 923 CFX_CharMap* pCharMap = CFX_CharMap::GetDefaultMapper(); |
| 924 return (*pCharMap->m_GetByteString)(pCharMap, str); |
924 } | 925 } |
925 void CFX_ByteString::ConvertFrom(const CFX_WideString& str, | 926 |
926 CFX_CharMap* pCharMap) { | |
927 if (!pCharMap) { | |
928 pCharMap = CFX_CharMap::GetDefaultMapper(); | |
929 } | |
930 *this = (*pCharMap->m_GetByteString)(pCharMap, str); | |
931 } | |
932 int CFX_ByteString::Compare(const CFX_ByteStringC& str) const { | 927 int CFX_ByteString::Compare(const CFX_ByteStringC& str) const { |
933 if (!m_pData) { | 928 if (!m_pData) { |
934 return str.IsEmpty() ? 0 : -1; | 929 return str.IsEmpty() ? 0 : -1; |
935 } | 930 } |
936 int this_len = m_pData->m_nDataLength; | 931 int this_len = m_pData->m_nDataLength; |
937 int that_len = str.GetLength(); | 932 int that_len = str.GetLength(); |
938 int min_len = this_len < that_len ? this_len : that_len; | 933 int min_len = this_len < that_len ? this_len : that_len; |
939 for (int i = 0; i < min_len; i++) { | 934 for (int i = 0; i < min_len; i++) { |
940 if ((uint8_t)m_pData->m_String[i] < str.GetAt(i)) { | 935 if ((uint8_t)m_pData->m_String[i] < str.GetAt(i)) { |
941 return -1; | 936 return -1; |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1087 fraction %= scale; | 1082 fraction %= scale; |
1088 scale /= 10; | 1083 scale /= 10; |
1089 } | 1084 } |
1090 return buf_size; | 1085 return buf_size; |
1091 } | 1086 } |
1092 CFX_ByteString CFX_ByteString::FormatFloat(FX_FLOAT d, int precision) { | 1087 CFX_ByteString CFX_ByteString::FormatFloat(FX_FLOAT d, int precision) { |
1093 FX_CHAR buf[32]; | 1088 FX_CHAR buf[32]; |
1094 FX_STRSIZE len = FX_ftoa(d, buf); | 1089 FX_STRSIZE len = FX_ftoa(d, buf); |
1095 return CFX_ByteString(buf, len); | 1090 return CFX_ByteString(buf, len); |
1096 } | 1091 } |
OLD | NEW |