Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1321)

Side by Side Diff: core/include/fxcrt/fx_string.h

Issue 1171733003: Remove typdefs for pointer types in fx_system.h (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Manual fixes. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/include/fxcrt/fx_stream.h ('k') | core/include/fxcrt/fx_system.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef CORE_INCLUDE_FXCRT_FX_STRING_H_ 7 #ifndef CORE_INCLUDE_FXCRT_FX_STRING_H_
8 #define CORE_INCLUDE_FXCRT_FX_STRING_H_ 8 #define CORE_INCLUDE_FXCRT_FX_STRING_H_
9 9
10 #include <stdint.h> // For intptr_t. 10 #include <stdint.h> // For intptr_t.
(...skipping 13 matching lines...) Expand all
24 { 24 {
25 public: 25 public:
26 typedef FX_CHAR value_type; 26 typedef FX_CHAR value_type;
27 27
28 CFX_ByteStringC() 28 CFX_ByteStringC()
29 { 29 {
30 m_Ptr = NULL; 30 m_Ptr = NULL;
31 m_Length = 0; 31 m_Length = 0;
32 } 32 }
33 33
34 CFX_ByteStringC(FX_LPCBYTE ptr, FX_STRSIZE size) 34 CFX_ByteStringC(const uint8_t* ptr, FX_STRSIZE size)
35 { 35 {
36 m_Ptr = ptr; 36 m_Ptr = ptr;
37 m_Length = size; 37 m_Length = size;
38 } 38 }
39 39
40 CFX_ByteStringC(FX_LPCSTR ptr) 40 CFX_ByteStringC(const FX_CHAR* ptr)
41 { 41 {
42 m_Ptr = (FX_LPCBYTE)ptr; 42 m_Ptr = (const uint8_t*)ptr;
43 m_Length = ptr ? FXSYS_strlen(ptr) : 0; 43 m_Length = ptr ? FXSYS_strlen(ptr) : 0;
44 } 44 }
45 45
46 // |ch| must be an lvalue that outlives the the CFX_ByteStringC. However, 46 // |ch| must be an lvalue that outlives the the CFX_ByteStringC. However,
47 // the use of char rvalues are not caught at compile time. They are 47 // the use of char rvalues are not caught at compile time. They are
48 // implicitly promoted to CFX_ByteString (see below) and then the 48 // implicitly promoted to CFX_ByteString (see below) and then the
49 // CFX_ByteStringC is constructed from the CFX_ByteString via the alternate 49 // CFX_ByteStringC is constructed from the CFX_ByteString via the alternate
50 // constructor below. The CFX_ByteString then typically goes out of scope 50 // constructor below. The CFX_ByteString then typically goes out of scope
51 // and |m_Ptr| may be left pointing to invalid memory. Beware. 51 // and |m_Ptr| may be left pointing to invalid memory. Beware.
52 // TODO(tsepez): Mark single-argument string constructors as explicit. 52 // TODO(tsepez): Mark single-argument string constructors as explicit.
53 CFX_ByteStringC(FX_CHAR& ch) 53 CFX_ByteStringC(FX_CHAR& ch)
54 { 54 {
55 m_Ptr = (FX_LPCBYTE)&ch; 55 m_Ptr = (const uint8_t*)&ch;
56 m_Length = 1; 56 m_Length = 1;
57 } 57 }
58 58
59 CFX_ByteStringC(FX_LPCSTR ptr, FX_STRSIZE len) 59 CFX_ByteStringC(const FX_CHAR* ptr, FX_STRSIZE len)
60 { 60 {
61 m_Ptr = (FX_LPCBYTE)ptr; 61 m_Ptr = (const uint8_t*)ptr;
62 m_Length = (len == -1) ? FXSYS_strlen(ptr) : len; 62 m_Length = (len == -1) ? FXSYS_strlen(ptr) : len;
63 } 63 }
64 64
65 CFX_ByteStringC(const CFX_ByteStringC& src) 65 CFX_ByteStringC(const CFX_ByteStringC& src)
66 { 66 {
67 m_Ptr = src.m_Ptr; 67 m_Ptr = src.m_Ptr;
68 m_Length = src.m_Length; 68 m_Length = src.m_Length;
69 } 69 }
70 70
71 CFX_ByteStringC(const CFX_ByteString& src); 71 CFX_ByteStringC(const CFX_ByteString& src);
72 72
73 CFX_ByteStringC& operator = (FX_LPCSTR src) 73 CFX_ByteStringC& operator = (const FX_CHAR* src)
74 { 74 {
75 m_Ptr = (FX_LPCBYTE)src; 75 m_Ptr = (const uint8_t*)src;
76 m_Length = m_Ptr ? FXSYS_strlen(src) : 0; 76 m_Length = m_Ptr ? FXSYS_strlen(src) : 0;
77 return *this; 77 return *this;
78 } 78 }
79 79
80 CFX_ByteStringC& operator = (const CFX_ByteStringC& src) 80 CFX_ByteStringC& operator = (const CFX_ByteStringC& src)
81 { 81 {
82 m_Ptr = src.m_Ptr; 82 m_Ptr = src.m_Ptr;
83 m_Length = src.m_Length; 83 m_Length = src.m_Length;
84 return *this; 84 return *this;
85 } 85 }
86 86
87 CFX_ByteStringC& operator = (const CFX_ByteString& src); 87 CFX_ByteStringC& operator = (const CFX_ByteString& src);
88 88
89 bool operator== (const char* ptr) const { 89 bool operator== (const char* ptr) const {
90 return FXSYS_strlen(ptr) == m_Length && 90 return FXSYS_strlen(ptr) == m_Length &&
91 FXSYS_memcmp32(ptr, m_Ptr, m_Length) == 0; 91 FXSYS_memcmp32(ptr, m_Ptr, m_Length) == 0;
92 } 92 }
93 bool operator== (const CFX_ByteStringC& other) const { 93 bool operator== (const CFX_ByteStringC& other) const {
94 return other.m_Length == m_Length && 94 return other.m_Length == m_Length &&
95 FXSYS_memcmp32(other.m_Ptr, m_Ptr, m_Length) == 0; 95 FXSYS_memcmp32(other.m_Ptr, m_Ptr, m_Length) == 0;
96 } 96 }
97 bool operator!= (const char* ptr) const { return !(*this == ptr); } 97 bool operator!= (const char* ptr) const { return !(*this == ptr); }
98 bool operator!= (const CFX_ByteStringC& other) const { 98 bool operator!= (const CFX_ByteStringC& other) const {
99 return !(*this == other); 99 return !(*this == other);
100 } 100 }
101 101
102 FX_DWORD GetID(FX_STRSIZE start_pos = 0) const; 102 FX_DWORD GetID(FX_STRSIZE start_pos = 0) const;
103 103
104 FX_LPCBYTE» » GetPtr() const 104 const uint8_t*» » GetPtr() const
105 { 105 {
106 return m_Ptr; 106 return m_Ptr;
107 } 107 }
108 108
109 FX_LPCSTR» » GetCStr() const 109 const FX_CHAR*» » GetCStr() const
110 { 110 {
111 return (FX_LPCSTR)m_Ptr; 111 return (const FX_CHAR*)m_Ptr;
112 } 112 }
113 113
114 FX_STRSIZE GetLength() const 114 FX_STRSIZE GetLength() const
115 { 115 {
116 return m_Length; 116 return m_Length;
117 } 117 }
118 118
119 bool IsEmpty() const 119 bool IsEmpty() const
120 { 120 {
121 return m_Length == 0; 121 return m_Length == 0;
(...skipping 23 matching lines...) Expand all
145 return m_Ptr[index]; 145 return m_Ptr[index];
146 } 146 }
147 147
148 bool operator< (const CFX_ByteStringC& that) const 148 bool operator< (const CFX_ByteStringC& that) const
149 { 149 {
150 int result = memcmp(m_Ptr, that.m_Ptr, std::min(m_Length, that.m_Length) ); 150 int result = memcmp(m_Ptr, that.m_Ptr, std::min(m_Length, that.m_Length) );
151 return result < 0 || (result == 0 && m_Length < that.m_Length); 151 return result < 0 || (result == 0 && m_Length < that.m_Length);
152 } 152 }
153 153
154 protected: 154 protected:
155 FX_LPCBYTE» » m_Ptr; 155 const uint8_t*» » m_Ptr;
156 FX_STRSIZE m_Length; 156 FX_STRSIZE m_Length;
157 157
158 private: 158 private:
159 void* operator new (size_t) throw() 159 void* operator new (size_t) throw()
160 { 160 {
161 return NULL; 161 return NULL;
162 } 162 }
163 }; 163 };
164 inline bool operator== (const char* lhs, const CFX_ByteStringC& rhs) { 164 inline bool operator== (const char* lhs, const CFX_ByteStringC& rhs) {
165 return rhs == lhs; 165 return rhs == lhs;
(...skipping 17 matching lines...) Expand all
183 // Copy constructor. 183 // Copy constructor.
184 CFX_ByteString(const CFX_ByteString& str); 184 CFX_ByteString(const CFX_ByteString& str);
185 185
186 // Move constructor. 186 // Move constructor.
187 inline CFX_ByteString(CFX_ByteString&& other) { 187 inline CFX_ByteString(CFX_ByteString&& other) {
188 this->m_pData = other.m_pData; 188 this->m_pData = other.m_pData;
189 other.m_pData = nullptr; 189 other.m_pData = nullptr;
190 } 190 }
191 191
192 CFX_ByteString(char ch); 192 CFX_ByteString(char ch);
193 CFX_ByteString(FX_LPCSTR ptr) 193 CFX_ByteString(const FX_CHAR* ptr)
194 : CFX_ByteString(ptr, ptr ? FXSYS_strlen(ptr) : 0) { } 194 : CFX_ByteString(ptr, ptr ? FXSYS_strlen(ptr) : 0) { }
195 195
196 CFX_ByteString(FX_LPCSTR ptr, FX_STRSIZE len); 196 CFX_ByteString(const FX_CHAR* ptr, FX_STRSIZE len);
197 CFX_ByteString(FX_LPCBYTE ptr, FX_STRSIZE len); 197 CFX_ByteString(const uint8_t* ptr, FX_STRSIZE len);
198 198
199 CFX_ByteString(FX_BSTR bstrc); 199 CFX_ByteString(FX_BSTR bstrc);
200 CFX_ByteString(FX_BSTR bstrc1, FX_BSTR bstrc2); 200 CFX_ByteString(FX_BSTR bstrc1, FX_BSTR bstrc2);
201 201
202 ~CFX_ByteString(); 202 ~CFX_ByteString();
203 203
204 static CFX_ByteString» FromUnicode(FX_LPCWSTR ptr, FX_STRSIZE len = -1) ; 204 static CFX_ByteString» FromUnicode(const FX_WCHAR* ptr, FX_STRSIZE len = -1);
205 205
206 static CFX_ByteString FromUnicode(const CFX_WideString& str); 206 static CFX_ByteString FromUnicode(const CFX_WideString& str);
207 207
208 // Explicit conversion to raw string 208 // Explicit conversion to raw string
209 FX_LPCSTR c_str() const 209 const FX_CHAR* c_str() const
210 { 210 {
211 return m_pData ? m_pData->m_String : ""; 211 return m_pData ? m_pData->m_String : "";
212 } 212 }
213 213
214 // Implicit conversion to C-style string -- deprecated 214 // Implicit conversion to C-style string -- deprecated
215 operator» » » » FX_LPCSTR() const 215 operator» » » » const FX_CHAR*() const
216 { 216 {
217 return m_pData ? m_pData->m_String : ""; 217 return m_pData ? m_pData->m_String : "";
218 } 218 }
219 219
220 operator» » » » FX_LPCBYTE() const 220 operator» » » » const uint8_t*() const
221 { 221 {
222 return m_pData ? (FX_LPCBYTE)m_pData->m_String : NULL; 222 return m_pData ? (const uint8_t*)m_pData->m_String : NULL;
223 } 223 }
224 224
225 FX_STRSIZE GetLength() const 225 FX_STRSIZE GetLength() const
226 { 226 {
227 return m_pData ? m_pData->m_nDataLength : 0; 227 return m_pData ? m_pData->m_nDataLength : 0;
228 } 228 }
229 229
230 bool IsEmpty() const 230 bool IsEmpty() const
231 { 231 {
232 return !GetLength(); 232 return !GetLength();
(...skipping 21 matching lines...) Expand all
254 } 254 }
255 255
256 bool operator< (const CFX_ByteString& str) const 256 bool operator< (const CFX_ByteString& str) const
257 { 257 {
258 int result = FXSYS_memcmp32(c_str(), str.c_str(), std::min(GetLength(), str.GetLength())); 258 int result = FXSYS_memcmp32(c_str(), str.c_str(), std::min(GetLength(), str.GetLength()));
259 return result < 0 || (result == 0 && GetLength() < str.GetLength()); 259 return result < 0 || (result == 0 && GetLength() < str.GetLength());
260 } 260 }
261 261
262 void Empty(); 262 void Empty();
263 263
264 const CFX_ByteString&» operator = (FX_LPCSTR str); 264 const CFX_ByteString&» operator = (const FX_CHAR* str);
265 265
266 const CFX_ByteString& operator = (FX_BSTR bstrc); 266 const CFX_ByteString& operator = (FX_BSTR bstrc);
267 267
268 const CFX_ByteString& operator = (const CFX_ByteString& stringSrc); 268 const CFX_ByteString& operator = (const CFX_ByteString& stringSrc);
269 269
270 const CFX_ByteString& operator = (const CFX_BinaryBuf& buf); 270 const CFX_ByteString& operator = (const CFX_BinaryBuf& buf);
271 271
272 void» » » » » Load(FX_LPCBYTE str, FX_STRSIZE len); 272 void» » » » » Load(const uint8_t* str, FX_STRS IZE len);
273 273
274 const CFX_ByteString& operator += (FX_CHAR ch); 274 const CFX_ByteString& operator += (FX_CHAR ch);
275 275
276 const CFX_ByteString&» operator += (FX_LPCSTR str); 276 const CFX_ByteString&» operator += (const FX_CHAR* str);
277 277
278 const CFX_ByteString& operator += (const CFX_ByteString& str); 278 const CFX_ByteString& operator += (const CFX_ByteString& str);
279 279
280 const CFX_ByteString& operator += (FX_BSTR bstrc); 280 const CFX_ByteString& operator += (FX_BSTR bstrc);
281 281
282 uint8_t GetAt(FX_STRSIZE nIndex) const 282 uint8_t GetAt(FX_STRSIZE nIndex) const
283 { 283 {
284 return m_pData ? m_pData->m_String[nIndex] : 0; 284 return m_pData ? m_pData->m_String[nIndex] : 0;
285 } 285 }
286 286
287 uint8_t operator[](FX_STRSIZE nIndex) co nst 287 uint8_t operator[](FX_STRSIZE nIndex) co nst
288 { 288 {
289 return m_pData ? m_pData->m_String[nIndex] : 0; 289 return m_pData ? m_pData->m_String[nIndex] : 0;
290 } 290 }
291 291
292 void SetAt(FX_STRSIZE nIndex, FX_CHAR ch); 292 void SetAt(FX_STRSIZE nIndex, FX_CHAR ch);
293 293
294 FX_STRSIZE Insert(FX_STRSIZE index, FX_CHAR ch); 294 FX_STRSIZE Insert(FX_STRSIZE index, FX_CHAR ch);
295 295
296 FX_STRSIZE Delete(FX_STRSIZE index, FX_STRSIZE coun t = 1); 296 FX_STRSIZE Delete(FX_STRSIZE index, FX_STRSIZE coun t = 1);
297 297
298 298
299 void» » » » » Format(FX_LPCSTR lpszFormat, ... ); 299 void» » » » » Format(const FX_CHAR* lpszFormat , ... );
300 300
301 void» » » » » FormatV(FX_LPCSTR lpszFormat, va _list argList); 301 void» » » » » FormatV(const FX_CHAR* lpszForma t, va_list argList);
302 302
303 303
304 void Reserve(FX_STRSIZE len); 304 void Reserve(FX_STRSIZE len);
305 305
306 FX_LPSTR» » » » GetBuffer(FX_STRSIZE len); 306 FX_CHAR*» » » » GetBuffer(FX_STRSIZE len);
307 307
308 void ReleaseBuffer(FX_STRSIZE len = - 1); 308 void ReleaseBuffer(FX_STRSIZE len = - 1);
309 309
310 CFX_ByteString Mid(FX_STRSIZE first) const; 310 CFX_ByteString Mid(FX_STRSIZE first) const;
311 311
312 CFX_ByteString Mid(FX_STRSIZE first, FX_STRSIZE count) const; 312 CFX_ByteString Mid(FX_STRSIZE first, FX_STRSIZE count) const;
313 313
314 CFX_ByteString Left(FX_STRSIZE count) const; 314 CFX_ByteString Left(FX_STRSIZE count) const;
315 315
316 CFX_ByteString Right(FX_STRSIZE count) const; 316 CFX_ByteString Right(FX_STRSIZE count) const;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 : m_nRefs(1), m_nDataLength(dataLen), m_nAllocLength(allocLen) { 377 : m_nRefs(1), m_nDataLength(dataLen), m_nAllocLength(allocLen) {
378 FXSYS_assert(dataLen >= 0); 378 FXSYS_assert(dataLen >= 0);
379 FXSYS_assert(allocLen >= 0); 379 FXSYS_assert(allocLen >= 0);
380 FXSYS_assert(dataLen <= allocLen); 380 FXSYS_assert(dataLen <= allocLen);
381 m_String[dataLen] = 0; 381 m_String[dataLen] = 0;
382 } 382 }
383 ~StringData() = delete; 383 ~StringData() = delete;
384 }; 384 };
385 385
386 void AllocCopy(CFX_ByteString& dest, FX_STRSIZE nCopyLen, FX_STRSIZE nCopyIndex) const; 386 void AllocCopy(CFX_ByteString& dest, FX_STRSIZE nCopyLen, FX_STRSIZE nCopyIndex) const;
387 void» » » » » AssignCopy(FX_STRSIZE nSrcLen, F X_LPCSTR lpszSrcData); 387 void» » » » » AssignCopy(FX_STRSIZE nSrcLen, c onst FX_CHAR* lpszSrcData);
388 void» » » » » ConcatCopy(FX_STRSIZE nSrc1Len, FX_LPCSTR lpszSrc1Data, FX_STRSIZE nSrc2Len, FX_LPCSTR lpszSrc2Data); 388 void» » » » » ConcatCopy(FX_STRSIZE nSrc1Len, const FX_CHAR* lpszSrc1Data, FX_STRSIZE nSrc2Len, const FX_CHAR* lpszSrc2Data);
389 void» » » » » ConcatInPlace(FX_STRSIZE nSrcLen , FX_LPCSTR lpszSrcData); 389 void» » » » » ConcatInPlace(FX_STRSIZE nSrcLen , const FX_CHAR* lpszSrcData);
390 void CopyBeforeWrite(); 390 void CopyBeforeWrite();
391 void AllocBeforeWrite(FX_STRSIZE nLen ); 391 void AllocBeforeWrite(FX_STRSIZE nLen );
392 392
393 StringData* m_pData; 393 StringData* m_pData;
394 friend class fxcrt_ByteStringConcatInPlace_Test; 394 friend class fxcrt_ByteStringConcatInPlace_Test;
395 }; 395 };
396 inline CFX_ByteStringC::CFX_ByteStringC(const CFX_ByteString& src) 396 inline CFX_ByteStringC::CFX_ByteStringC(const CFX_ByteString& src)
397 { 397 {
398 m_Ptr = (FX_LPCBYTE)src; 398 m_Ptr = (const uint8_t*)src;
399 m_Length = src.GetLength(); 399 m_Length = src.GetLength();
400 } 400 }
401 inline CFX_ByteStringC& CFX_ByteStringC::operator = (const CFX_ByteString& src) 401 inline CFX_ByteStringC& CFX_ByteStringC::operator = (const CFX_ByteString& src)
402 { 402 {
403 m_Ptr = (FX_LPCBYTE)src; 403 m_Ptr = (const uint8_t*)src;
404 m_Length = src.GetLength(); 404 m_Length = src.GetLength();
405 return *this; 405 return *this;
406 } 406 }
407 407
408 inline bool operator== (const char* lhs, const CFX_ByteString& rhs) { 408 inline bool operator== (const char* lhs, const CFX_ByteString& rhs) {
409 return rhs == lhs; 409 return rhs == lhs;
410 } 410 }
411 inline bool operator== (const CFX_ByteStringC& lhs, const CFX_ByteString& rhs) { 411 inline bool operator== (const CFX_ByteStringC& lhs, const CFX_ByteString& rhs) {
412 return rhs == lhs; 412 return rhs == lhs;
413 } 413 }
414 inline bool operator!= (const char* lhs, const CFX_ByteString& rhs) { 414 inline bool operator!= (const char* lhs, const CFX_ByteString& rhs) {
415 return rhs != lhs; 415 return rhs != lhs;
416 } 416 }
417 inline bool operator!= (const CFX_ByteStringC& lhs, const CFX_ByteString& rhs) { 417 inline bool operator!= (const CFX_ByteStringC& lhs, const CFX_ByteString& rhs) {
418 return rhs != lhs; 418 return rhs != lhs;
419 } 419 }
420 420
421 inline CFX_ByteString operator + (FX_BSTR str1, FX_BSTR str2) 421 inline CFX_ByteString operator + (FX_BSTR str1, FX_BSTR str2)
422 { 422 {
423 return CFX_ByteString(str1, str2); 423 return CFX_ByteString(str1, str2);
424 } 424 }
425 inline CFX_ByteString operator + (FX_BSTR str1, FX_LPCSTR str2) 425 inline CFX_ByteString operator + (FX_BSTR str1, const FX_CHAR* str2)
426 { 426 {
427 return CFX_ByteString(str1, str2); 427 return CFX_ByteString(str1, str2);
428 } 428 }
429 inline CFX_ByteString operator + (FX_LPCSTR str1, FX_BSTR str2) 429 inline CFX_ByteString operator + (const FX_CHAR* str1, FX_BSTR str2)
430 { 430 {
431 return CFX_ByteString(str1, str2); 431 return CFX_ByteString(str1, str2);
432 } 432 }
433 inline CFX_ByteString operator + (FX_BSTR str1, FX_CHAR ch) 433 inline CFX_ByteString operator + (FX_BSTR str1, FX_CHAR ch)
434 { 434 {
435 return CFX_ByteString(str1, CFX_ByteStringC(ch)); 435 return CFX_ByteString(str1, CFX_ByteStringC(ch));
436 } 436 }
437 inline CFX_ByteString operator + (FX_CHAR ch, FX_BSTR str2) 437 inline CFX_ByteString operator + (FX_CHAR ch, FX_BSTR str2)
438 { 438 {
439 return CFX_ByteString(ch, str2); 439 return CFX_ByteString(ch, str2);
440 } 440 }
441 inline CFX_ByteString operator + (const CFX_ByteString& str1, const CFX_ByteStri ng& str2) 441 inline CFX_ByteString operator + (const CFX_ByteString& str1, const CFX_ByteStri ng& str2)
442 { 442 {
443 return CFX_ByteString(str1, str2); 443 return CFX_ByteString(str1, str2);
444 } 444 }
445 inline CFX_ByteString operator + (const CFX_ByteString& str1, FX_CHAR ch) 445 inline CFX_ByteString operator + (const CFX_ByteString& str1, FX_CHAR ch)
446 { 446 {
447 return CFX_ByteString(str1, CFX_ByteStringC(ch)); 447 return CFX_ByteString(str1, CFX_ByteStringC(ch));
448 } 448 }
449 inline CFX_ByteString operator + (FX_CHAR ch, const CFX_ByteString& str2) 449 inline CFX_ByteString operator + (FX_CHAR ch, const CFX_ByteString& str2)
450 { 450 {
451 return CFX_ByteString(ch, str2); 451 return CFX_ByteString(ch, str2);
452 } 452 }
453 inline CFX_ByteString operator + (const CFX_ByteString& str1, FX_LPCSTR str2) 453 inline CFX_ByteString operator + (const CFX_ByteString& str1, const FX_CHAR* str 2)
454 { 454 {
455 return CFX_ByteString(str1, str2); 455 return CFX_ByteString(str1, str2);
456 } 456 }
457 inline CFX_ByteString operator + (FX_LPCSTR str1, const CFX_ByteString& str2) 457 inline CFX_ByteString operator + (const FX_CHAR* str1, const CFX_ByteString& str 2)
458 { 458 {
459 return CFX_ByteString(str1, str2); 459 return CFX_ByteString(str1, str2);
460 } 460 }
461 inline CFX_ByteString operator + (const CFX_ByteString& str1, FX_BSTR str2) 461 inline CFX_ByteString operator + (const CFX_ByteString& str1, FX_BSTR str2)
462 { 462 {
463 return CFX_ByteString(str1, str2); 463 return CFX_ByteString(str1, str2);
464 } 464 }
465 inline CFX_ByteString operator + (FX_BSTR str1, const CFX_ByteString& str2) 465 inline CFX_ByteString operator + (FX_BSTR str1, const CFX_ByteString& str2)
466 { 466 {
467 return CFX_ByteString(str1, str2); 467 return CFX_ByteString(str1, str2);
468 } 468 }
469 class CFX_WideStringC 469 class CFX_WideStringC
470 { 470 {
471 public: 471 public:
472 typedef FX_WCHAR value_type; 472 typedef FX_WCHAR value_type;
473 473
474 CFX_WideStringC() 474 CFX_WideStringC()
475 { 475 {
476 m_Ptr = NULL; 476 m_Ptr = NULL;
477 m_Length = 0; 477 m_Length = 0;
478 } 478 }
479 479
480 CFX_WideStringC(FX_LPCWSTR ptr) 480 CFX_WideStringC(const FX_WCHAR* ptr)
481 { 481 {
482 m_Ptr = ptr; 482 m_Ptr = ptr;
483 m_Length = ptr ? FXSYS_wcslen(ptr) : 0; 483 m_Length = ptr ? FXSYS_wcslen(ptr) : 0;
484 } 484 }
485 485
486 CFX_WideStringC(FX_WCHAR& ch) 486 CFX_WideStringC(FX_WCHAR& ch)
487 { 487 {
488 m_Ptr = &ch; 488 m_Ptr = &ch;
489 m_Length = 1; 489 m_Length = 1;
490 } 490 }
491 491
492 CFX_WideStringC(FX_LPCWSTR ptr, FX_STRSIZE len) 492 CFX_WideStringC(const FX_WCHAR* ptr, FX_STRSIZE len)
493 { 493 {
494 m_Ptr = ptr; 494 m_Ptr = ptr;
495 m_Length = (len == -1) ? FXSYS_wcslen(ptr) : len; 495 m_Length = (len == -1) ? FXSYS_wcslen(ptr) : len;
496 } 496 }
497 497
498 CFX_WideStringC(const CFX_WideStringC& src) 498 CFX_WideStringC(const CFX_WideStringC& src)
499 { 499 {
500 m_Ptr = src.m_Ptr; 500 m_Ptr = src.m_Ptr;
501 m_Length = src.m_Length; 501 m_Length = src.m_Length;
502 } 502 }
503 503
504 CFX_WideStringC(const CFX_WideString& src); 504 CFX_WideStringC(const CFX_WideString& src);
505 505
506 CFX_WideStringC& operator = (FX_LPCWSTR src) 506 CFX_WideStringC& operator = (const FX_WCHAR* src)
507 { 507 {
508 m_Ptr = src; 508 m_Ptr = src;
509 m_Length = FXSYS_wcslen(src); 509 m_Length = FXSYS_wcslen(src);
510 return *this; 510 return *this;
511 } 511 }
512 512
513 CFX_WideStringC& operator = (const CFX_WideStringC& src) 513 CFX_WideStringC& operator = (const CFX_WideStringC& src)
514 { 514 {
515 m_Ptr = src.m_Ptr; 515 m_Ptr = src.m_Ptr;
516 m_Length = src.m_Length; 516 m_Length = src.m_Length;
517 return *this; 517 return *this;
518 } 518 }
519 519
520 CFX_WideStringC& operator = (const CFX_WideString& src); 520 CFX_WideStringC& operator = (const CFX_WideString& src);
521 521
522 bool operator== (const wchar_t* ptr) const { 522 bool operator== (const wchar_t* ptr) const {
523 return FXSYS_wcslen(ptr) == m_Length && 523 return FXSYS_wcslen(ptr) == m_Length &&
524 wmemcmp(ptr, m_Ptr, m_Length) == 0; 524 wmemcmp(ptr, m_Ptr, m_Length) == 0;
525 } 525 }
526 bool operator== (const CFX_WideStringC& str) const { 526 bool operator== (const CFX_WideStringC& str) const {
527 return str.m_Length == m_Length && 527 return str.m_Length == m_Length &&
528 wmemcmp(str.m_Ptr, m_Ptr, m_Length) == 0; 528 wmemcmp(str.m_Ptr, m_Ptr, m_Length) == 0;
529 } 529 }
530 bool operator!= (const wchar_t* ptr) const { return !(*this == ptr); } 530 bool operator!= (const wchar_t* ptr) const { return !(*this == ptr); }
531 bool operator!= (const CFX_WideStringC& str) const { 531 bool operator!= (const CFX_WideStringC& str) const {
532 return !(*this == str); 532 return !(*this == str);
533 } 533 }
534 534
535 FX_LPCWSTR» » GetPtr() const 535 const FX_WCHAR*» » GetPtr() const
536 { 536 {
537 return m_Ptr; 537 return m_Ptr;
538 } 538 }
539 539
540 FX_STRSIZE GetLength() const 540 FX_STRSIZE GetLength() const
541 { 541 {
542 return m_Length; 542 return m_Length;
543 } 543 }
544 544
545 bool IsEmpty() const 545 bool IsEmpty() const
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 return m_Ptr[index]; 593 return m_Ptr[index];
594 } 594 }
595 595
596 bool operator< (const CFX_WideStringC& that) const 596 bool operator< (const CFX_WideStringC& that) const
597 { 597 {
598 int result = wmemcmp(m_Ptr, that.m_Ptr, std::min(m_Length, that.m_Length )); 598 int result = wmemcmp(m_Ptr, that.m_Ptr, std::min(m_Length, that.m_Length ));
599 return result < 0 || (result == 0 && m_Length < that.m_Length); 599 return result < 0 || (result == 0 && m_Length < that.m_Length);
600 } 600 }
601 601
602 protected: 602 protected:
603 FX_LPCWSTR» » m_Ptr; 603 const FX_WCHAR*» » m_Ptr;
604 FX_STRSIZE m_Length; 604 FX_STRSIZE m_Length;
605 605
606 private: 606 private:
607 void* operator new (size_t) throw() 607 void* operator new (size_t) throw()
608 { 608 {
609 return NULL; 609 return NULL;
610 } 610 }
611 }; 611 };
612 inline bool operator== (const wchar_t* lhs, const CFX_WideStringC& rhs) { 612 inline bool operator== (const wchar_t* lhs, const CFX_WideStringC& rhs) {
613 return rhs == lhs; 613 return rhs == lhs;
(...skipping 15 matching lines...) Expand all
629 629
630 // Copy constructor. 630 // Copy constructor.
631 CFX_WideString(const CFX_WideString& str); 631 CFX_WideString(const CFX_WideString& str);
632 632
633 // Move constructor. 633 // Move constructor.
634 inline CFX_WideString(CFX_WideString&& other) { 634 inline CFX_WideString(CFX_WideString&& other) {
635 this->m_pData = other.m_pData; 635 this->m_pData = other.m_pData;
636 other.m_pData = nullptr; 636 other.m_pData = nullptr;
637 } 637 }
638 638
639 CFX_WideString(FX_LPCWSTR ptr) 639 CFX_WideString(const FX_WCHAR* ptr)
640 : CFX_WideString(ptr, ptr ? FXSYS_wcslen(ptr) : 0) { } 640 : CFX_WideString(ptr, ptr ? FXSYS_wcslen(ptr) : 0) { }
641 641
642 CFX_WideString(FX_LPCWSTR ptr, FX_STRSIZE len); 642 CFX_WideString(const FX_WCHAR* ptr, FX_STRSIZE len);
643 643
644 CFX_WideString(FX_WCHAR ch); 644 CFX_WideString(FX_WCHAR ch);
645 645
646 CFX_WideString(const CFX_WideStringC& str); 646 CFX_WideString(const CFX_WideStringC& str);
647 647
648 CFX_WideString(const CFX_WideStringC& str1, const CFX_WideStringC& str2); 648 CFX_WideString(const CFX_WideStringC& str1, const CFX_WideStringC& str2);
649 649
650 ~CFX_WideString(); 650 ~CFX_WideString();
651 651
652 static CFX_WideString FromLocal(const char* str, FX_STRSIZE len = -1); 652 static CFX_WideString FromLocal(const char* str, FX_STRSIZE len = -1);
653 653
654 static CFX_WideString FromUTF8(const char* str, FX_STRSIZE len); 654 static CFX_WideString FromUTF8(const char* str, FX_STRSIZE len);
655 655
656 static CFX_WideString FromUTF16LE(const unsigned short* str, FX_STRSIZ E len); 656 static CFX_WideString FromUTF16LE(const unsigned short* str, FX_STRSIZ E len);
657 657
658 static FX_STRSIZE WStringLength(const unsigned short* str); 658 static FX_STRSIZE WStringLength(const unsigned short* str);
659 659
660 // Explicit conversion to raw string 660 // Explicit conversion to raw string
661 FX_LPCWSTR c_str() const 661 const FX_WCHAR* c_str() const
662 { 662 {
663 return m_pData ? m_pData->m_String : L""; 663 return m_pData ? m_pData->m_String : L"";
664 } 664 }
665 665
666 // Implicit conversion to C-style wide string -- deprecated 666 // Implicit conversion to C-style wide string -- deprecated
667 operator FX_LPCWSTR() const 667 operator const FX_WCHAR*() const
668 { 668 {
669 return m_pData ? m_pData->m_String : L""; 669 return m_pData ? m_pData->m_String : L"";
670 } 670 }
671 671
672 void Empty(); 672 void Empty();
673 673
674 674
675 FX_BOOL IsEmpty() const 675 FX_BOOL IsEmpty() const
676 { 676 {
677 return !GetLength(); 677 return !GetLength();
678 } 678 }
679 679
680 FX_STRSIZE GetLength() const 680 FX_STRSIZE GetLength() const
681 { 681 {
682 return m_pData ? m_pData->m_nDataLength : 0; 682 return m_pData ? m_pData->m_nDataLength : 0;
683 } 683 }
684 684
685 const CFX_WideString&» operator = (FX_LPCWSTR str); 685 const CFX_WideString&» operator = (const FX_WCHAR* str);
686 686
687 const CFX_WideString& operator =(const CFX_WideString& stringSrc); 687 const CFX_WideString& operator =(const CFX_WideString& stringSrc);
688 688
689 const CFX_WideString& operator =(const CFX_WideStringC& stringSrc); 689 const CFX_WideString& operator =(const CFX_WideStringC& stringSrc);
690 690
691 const CFX_WideString&» operator += (FX_LPCWSTR str); 691 const CFX_WideString&» operator += (const FX_WCHAR* str);
692 692
693 const CFX_WideString& operator += (FX_WCHAR ch); 693 const CFX_WideString& operator += (FX_WCHAR ch);
694 694
695 const CFX_WideString& operator += (const CFX_WideString& str); 695 const CFX_WideString& operator += (const CFX_WideString& str);
696 696
697 const CFX_WideString& operator += (const CFX_WideStringC& str); 697 const CFX_WideString& operator += (const CFX_WideStringC& str);
698 698
699 bool operator== (const wchar_t* ptr) const { return Equal(ptr); } 699 bool operator== (const wchar_t* ptr) const { return Equal(ptr); }
700 bool operator== (const CFX_WideStringC& str) const { return Equal(str); } 700 bool operator== (const CFX_WideStringC& str) const { return Equal(str); }
701 bool operator== (const CFX_WideString& other) const { return Equal(other); } 701 bool operator== (const CFX_WideString& other) const { return Equal(other); }
(...skipping 16 matching lines...) Expand all
718 return m_pData ? m_pData->m_String[nIndex] : 0; 718 return m_pData ? m_pData->m_String[nIndex] : 0;
719 } 719 }
720 720
721 FX_WCHAR operator[](FX_STRSIZE nIndex) const 721 FX_WCHAR operator[](FX_STRSIZE nIndex) const
722 { 722 {
723 return m_pData ? m_pData->m_String[nIndex] : 0; 723 return m_pData ? m_pData->m_String[nIndex] : 0;
724 } 724 }
725 725
726 void SetAt(FX_STRSIZE nIndex, FX_WCHA R ch); 726 void SetAt(FX_STRSIZE nIndex, FX_WCHA R ch);
727 727
728 int»» » » » » Compare(FX_LPCWSTR str) const; 728 int»» » » » » Compare(const FX_WCHAR* str) con st;
729 729
730 int Compare(const CFX_WideString& st r) const; 730 int Compare(const CFX_WideString& st r) const;
731 731
732 int»» » » » » CompareNoCase(FX_LPCWSTR str) co nst; 732 int»» » » » » CompareNoCase(const FX_WCHAR* st r) const;
733 733
734 bool Equal(const wchar_t* ptr) const; 734 bool Equal(const wchar_t* ptr) const;
735 bool Equal(const CFX_WideStringC& str) const; 735 bool Equal(const CFX_WideStringC& str) const;
736 bool Equal(const CFX_WideString& other) const; 736 bool Equal(const CFX_WideString& other) const;
737 737
738 CFX_WideString Mid(FX_STRSIZE first) const; 738 CFX_WideString Mid(FX_STRSIZE first) const;
739 739
740 CFX_WideString Mid(FX_STRSIZE first, FX_STRSIZE count) const; 740 CFX_WideString Mid(FX_STRSIZE first, FX_STRSIZE count) const;
741 741
742 CFX_WideString Left(FX_STRSIZE count) const; 742 CFX_WideString Left(FX_STRSIZE count) const;
743 743
744 CFX_WideString Right(FX_STRSIZE count) const; 744 CFX_WideString Right(FX_STRSIZE count) const;
745 745
746 FX_STRSIZE Insert(FX_STRSIZE index, FX_WCHAR ch); 746 FX_STRSIZE Insert(FX_STRSIZE index, FX_WCHAR ch);
747 747
748 FX_STRSIZE Delete(FX_STRSIZE index, FX_STRSIZE coun t = 1); 748 FX_STRSIZE Delete(FX_STRSIZE index, FX_STRSIZE coun t = 1);
749 749
750 void» » » » » Format(FX_LPCWSTR lpszFormat, .. . ); 750 void» » » » » Format(const FX_WCHAR* lpszForma t, ... );
751 751
752 void» » » » » FormatV(FX_LPCWSTR lpszFormat, v a_list argList); 752 void» » » » » FormatV(const FX_WCHAR* lpszForm at, va_list argList);
753 753
754 void MakeLower(); 754 void MakeLower();
755 755
756 void MakeUpper(); 756 void MakeUpper();
757 757
758 void TrimRight(); 758 void TrimRight();
759 759
760 void TrimRight(FX_WCHAR chTarget); 760 void TrimRight(FX_WCHAR chTarget);
761 761
762 void» » » » » TrimRight(FX_LPCWSTR lpszTargets ); 762 void» » » » » TrimRight(const FX_WCHAR* lpszTa rgets);
763 763
764 void TrimLeft(); 764 void TrimLeft();
765 765
766 void TrimLeft(FX_WCHAR chTarget); 766 void TrimLeft(FX_WCHAR chTarget);
767 767
768 void» » » » » TrimLeft(FX_LPCWSTR lpszTargets) ; 768 void» » » » » TrimLeft(const FX_WCHAR* lpszTar gets);
769 769
770 void Reserve(FX_STRSIZE len); 770 void Reserve(FX_STRSIZE len);
771 771
772 FX_LPWSTR» » » » GetBuffer(FX_STRSIZE len); 772 FX_WCHAR*» » » » GetBuffer(FX_STRSIZE len);
773 773
774 void ReleaseBuffer(FX_STRSIZE len = - 1); 774 void ReleaseBuffer(FX_STRSIZE len = - 1);
775 775
776 int GetInteger() const; 776 int GetInteger() const;
777 777
778 FX_FLOAT GetFloat() const; 778 FX_FLOAT GetFloat() const;
779 779
780 FX_STRSIZE» » » » Find(FX_LPCWSTR lpszSub, FX_STRSIZE star t = 0) const; 780 FX_STRSIZE» » » » Find(const FX_WCHAR* lpszSub, FX_STRSIZE start = 0) const;
781 781
782 FX_STRSIZE Find(FX_WCHAR ch, FX_STRSIZE start = 0) const; 782 FX_STRSIZE Find(FX_WCHAR ch, FX_STRSIZE start = 0) const;
783 783
784 FX_STRSIZE» » » » Replace(FX_LPCWSTR lpszOld, FX_LPCWSTR l pszNew); 784 FX_STRSIZE» » » » Replace(const FX_WCHAR* lpszOld, const F X_WCHAR* lpszNew);
785 785
786 FX_STRSIZE Remove(FX_WCHAR ch); 786 FX_STRSIZE Remove(FX_WCHAR ch);
787 787
788 CFX_ByteString UTF8Encode() const; 788 CFX_ByteString UTF8Encode() const;
789 789
790 CFX_ByteString UTF16LE_Encode() const; 790 CFX_ByteString UTF16LE_Encode() const;
791 791
792 void ConvertFrom(const CFX_ByteString & str, CFX_CharMap* pCharMap = NULL); 792 void ConvertFrom(const CFX_ByteString & str, CFX_CharMap* pCharMap = NULL);
793 793
794 protected: 794 protected:
(...skipping 14 matching lines...) Expand all
809 FXSYS_assert(dataLen >= 0); 809 FXSYS_assert(dataLen >= 0);
810 FXSYS_assert(allocLen >= 0); 810 FXSYS_assert(allocLen >= 0);
811 FXSYS_assert(dataLen <= allocLen); 811 FXSYS_assert(dataLen <= allocLen);
812 m_String[dataLen] = 0; 812 m_String[dataLen] = 0;
813 } 813 }
814 ~StringData() = delete; 814 ~StringData() = delete;
815 }; 815 };
816 816
817 void CopyBeforeWrite(); 817 void CopyBeforeWrite();
818 void AllocBeforeWrite(FX_STRSIZE nLen); 818 void AllocBeforeWrite(FX_STRSIZE nLen);
819 void ConcatInPlace(FX_STRSIZE nSrcLen, FX_LPCWSTR lpszSrc Data); 819 void ConcatInPlace(FX_STRSIZE nSrcLen, const FX_WCHAR* lp szSrcData);
820 void ConcatCopy(FX_STRSIZE nSrc1Len, FX_LPCWSTR lpszSrc1D ata, FX_STRSIZE nSrc2Len, FX_LPCWSTR lpszSrc2Data); 820 void ConcatCopy(FX_STRSIZE nSrc1Len, const FX_WCHAR* lpsz Src1Data, FX_STRSIZE nSrc2Len, const FX_WCHAR* lpszSrc2Data);
821 void AssignCopy(FX_STRSIZE nSrcLen, FX_LPCWSTR lpszSrcDat a); 821 void AssignCopy(FX_STRSIZE nSrcLen, const FX_WCHAR* lpszS rcData);
822 void AllocCopy(CFX_WideString& dest, FX_STRSIZE nCopyLen, FX_STRSIZE nCopyIndex) const; 822 void AllocCopy(CFX_WideString& dest, FX_STRSIZE nCopyLen, FX_STRSIZE nCopyIndex) const;
823 823
824 StringData* m_pData; 824 StringData* m_pData;
825 friend class fxcrt_WideStringConcatInPlace_Test; 825 friend class fxcrt_WideStringConcatInPlace_Test;
826 }; 826 };
827 inline CFX_WideStringC::CFX_WideStringC(const CFX_WideString& src) 827 inline CFX_WideStringC::CFX_WideStringC(const CFX_WideString& src)
828 { 828 {
829 m_Ptr = src.c_str(); 829 m_Ptr = src.c_str();
830 m_Length = src.GetLength(); 830 m_Length = src.GetLength();
831 } 831 }
832 inline CFX_WideStringC& CFX_WideStringC::operator = (const CFX_WideString& src) 832 inline CFX_WideStringC& CFX_WideStringC::operator = (const CFX_WideString& src)
833 { 833 {
834 m_Ptr = src.c_str(); 834 m_Ptr = src.c_str();
835 m_Length = src.GetLength(); 835 m_Length = src.GetLength();
836 return *this; 836 return *this;
837 } 837 }
838 838
839 inline CFX_WideString operator + (const CFX_WideStringC& str1, const CFX_WideStr ingC& str2) 839 inline CFX_WideString operator + (const CFX_WideStringC& str1, const CFX_WideStr ingC& str2)
840 { 840 {
841 return CFX_WideString(str1, str2); 841 return CFX_WideString(str1, str2);
842 } 842 }
843 inline CFX_WideString operator + (const CFX_WideStringC& str1, FX_LPCWSTR str2) 843 inline CFX_WideString operator + (const CFX_WideStringC& str1, const FX_WCHAR* s tr2)
844 { 844 {
845 return CFX_WideString(str1, str2); 845 return CFX_WideString(str1, str2);
846 } 846 }
847 inline CFX_WideString operator + (FX_LPCWSTR str1, const CFX_WideStringC& str2) 847 inline CFX_WideString operator + (const FX_WCHAR* str1, const CFX_WideStringC& s tr2)
848 { 848 {
849 return CFX_WideString(str1, str2); 849 return CFX_WideString(str1, str2);
850 } 850 }
851 inline CFX_WideString operator + (const CFX_WideStringC& str1, FX_WCHAR ch) 851 inline CFX_WideString operator + (const CFX_WideStringC& str1, FX_WCHAR ch)
852 { 852 {
853 return CFX_WideString(str1, CFX_WideStringC(ch)); 853 return CFX_WideString(str1, CFX_WideStringC(ch));
854 } 854 }
855 inline CFX_WideString operator + (FX_WCHAR ch, const CFX_WideStringC& str2) 855 inline CFX_WideString operator + (FX_WCHAR ch, const CFX_WideStringC& str2)
856 { 856 {
857 return CFX_WideString(ch, str2); 857 return CFX_WideString(ch, str2);
858 } 858 }
859 inline CFX_WideString operator + (const CFX_WideString& str1, const CFX_WideStri ng& str2) 859 inline CFX_WideString operator + (const CFX_WideString& str1, const CFX_WideStri ng& str2)
860 { 860 {
861 return CFX_WideString(str1, str2); 861 return CFX_WideString(str1, str2);
862 } 862 }
863 inline CFX_WideString operator + (const CFX_WideString& str1, FX_WCHAR ch) 863 inline CFX_WideString operator + (const CFX_WideString& str1, FX_WCHAR ch)
864 { 864 {
865 return CFX_WideString(str1, CFX_WideStringC(ch)); 865 return CFX_WideString(str1, CFX_WideStringC(ch));
866 } 866 }
867 inline CFX_WideString operator + (FX_WCHAR ch, const CFX_WideString& str2) 867 inline CFX_WideString operator + (FX_WCHAR ch, const CFX_WideString& str2)
868 { 868 {
869 return CFX_WideString(ch, str2); 869 return CFX_WideString(ch, str2);
870 } 870 }
871 inline CFX_WideString operator + (const CFX_WideString& str1, FX_LPCWSTR str2) 871 inline CFX_WideString operator + (const CFX_WideString& str1, const FX_WCHAR* st r2)
872 { 872 {
873 return CFX_WideString(str1, str2); 873 return CFX_WideString(str1, str2);
874 } 874 }
875 inline CFX_WideString operator + (FX_LPCWSTR str1, const CFX_WideString& str2) 875 inline CFX_WideString operator + (const FX_WCHAR* str1, const CFX_WideString& st r2)
876 { 876 {
877 return CFX_WideString(str1, str2); 877 return CFX_WideString(str1, str2);
878 } 878 }
879 inline CFX_WideString operator + (const CFX_WideString& str1, const CFX_WideStri ngC& str2) 879 inline CFX_WideString operator + (const CFX_WideString& str1, const CFX_WideStri ngC& str2)
880 { 880 {
881 return CFX_WideString(str1, str2); 881 return CFX_WideString(str1, str2);
882 } 882 }
883 inline CFX_WideString operator + (const CFX_WideStringC& str1, const CFX_WideStr ing& str2) 883 inline CFX_WideString operator + (const CFX_WideStringC& str1, const CFX_WideStr ing& str2)
884 { 884 {
885 return CFX_WideString(str1, str2); 885 return CFX_WideString(str1, str2);
886 } 886 }
887 inline bool operator== (const wchar_t* lhs, const CFX_WideString& rhs) { 887 inline bool operator== (const wchar_t* lhs, const CFX_WideString& rhs) {
888 return rhs == lhs; 888 return rhs == lhs;
889 } 889 }
890 inline bool operator== (const CFX_WideStringC& lhs, const CFX_WideString& rhs) { 890 inline bool operator== (const CFX_WideStringC& lhs, const CFX_WideString& rhs) {
891 return rhs == lhs; 891 return rhs == lhs;
892 } 892 }
893 inline bool operator!= (const wchar_t* lhs, const CFX_WideString& rhs) { 893 inline bool operator!= (const wchar_t* lhs, const CFX_WideString& rhs) {
894 return rhs != lhs; 894 return rhs != lhs;
895 } 895 }
896 inline bool operator!= (const CFX_WideStringC& lhs, const CFX_WideString& rhs) { 896 inline bool operator!= (const CFX_WideStringC& lhs, const CFX_WideString& rhs) {
897 return rhs != lhs; 897 return rhs != lhs;
898 } 898 }
899 FX_FLOAT FX_atof(FX_BSTR str); 899 FX_FLOAT FX_atof(FX_BSTR str);
900 void FX_atonum(FX_BSTR str, FX_BOOL& bInteger, void* pData); 900 void FX_atonum(FX_BSTR str, FX_BOOL& bInteger, void* pData);
901 FX_STRSIZE FX_ftoa(FX_FLOAT f, FX_LPSTR buf); 901 FX_STRSIZE FX_ftoa(FX_FLOAT f, FX_CHAR* buf);
902 CFX_ByteString» FX_UTF8Encode(FX_LPCWSTR pwsStr, FX_STRSIZE len); 902 CFX_ByteString» FX_UTF8Encode(const FX_WCHAR* pwsStr, FX_STRSIZE len);
903 inline CFX_ByteString FX_UTF8Encode(FX_WSTR wsStr) 903 inline CFX_ByteString FX_UTF8Encode(FX_WSTR wsStr)
904 { 904 {
905 return FX_UTF8Encode(wsStr.GetPtr(), wsStr.GetLength()); 905 return FX_UTF8Encode(wsStr.GetPtr(), wsStr.GetLength());
906 } 906 }
907 inline CFX_ByteString FX_UTF8Encode(const CFX_WideString &wsStr) 907 inline CFX_ByteString FX_UTF8Encode(const CFX_WideString &wsStr)
908 { 908 {
909 return FX_UTF8Encode(wsStr.c_str(), wsStr.GetLength()); 909 return FX_UTF8Encode(wsStr.c_str(), wsStr.GetLength());
910 } 910 }
911 911
912 #endif // CORE_INCLUDE_FXCRT_FX_STRING_H_ 912 #endif // CORE_INCLUDE_FXCRT_FX_STRING_H_
OLDNEW
« no previous file with comments | « core/include/fxcrt/fx_stream.h ('k') | core/include/fxcrt/fx_system.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698