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

Side by Side Diff: core/fxcrt/fx_basic_wstring.cpp

Issue 1861183002: Make CFX_WideString::FromUTF8() take a CFX_ByteStringC argument. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase, combine delcs with initialization. Created 4 years, 8 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 | « no previous file | core/fxcrt/include/fx_string.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 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cctype> 10 #include <cctype>
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 return FromCodePage(str, 0); 365 return FromCodePage(str, 0);
366 } 366 }
367 367
368 // static 368 // static
369 CFX_WideString CFX_WideString::FromCodePage(const CFX_ByteString& str, 369 CFX_WideString CFX_WideString::FromCodePage(const CFX_ByteString& str,
370 uint16_t codepage) { 370 uint16_t codepage) {
371 return CFX_CharMap::GetWideString(codepage, str); 371 return CFX_CharMap::GetWideString(codepage, str);
372 } 372 }
373 373
374 // static 374 // static
375 CFX_WideString CFX_WideString::FromUTF8(const char* str, FX_STRSIZE len) { 375 CFX_WideString CFX_WideString::FromUTF8(const CFX_ByteStringC& str) {
376 if (!str || 0 == len) { 376 if (str.IsEmpty())
377 return CFX_WideString(); 377 return CFX_WideString();
378 }
379 378
380 CFX_UTF8Decoder decoder; 379 CFX_UTF8Decoder decoder;
381 for (FX_STRSIZE i = 0; i < len; i++) { 380 for (FX_STRSIZE i = 0; i < str.GetLength(); i++) {
382 decoder.Input(str[i]); 381 decoder.Input(str[i]);
383 } 382 }
384 return decoder.GetResult(); 383 return decoder.GetResult();
385 } 384 }
386 385
387 // static 386 // static
388 CFX_WideString CFX_WideString::FromUTF16LE(const unsigned short* wstr, 387 CFX_WideString CFX_WideString::FromUTF16LE(const unsigned short* wstr,
389 FX_STRSIZE wlen) { 388 FX_STRSIZE wlen) {
390 if (!wstr || 0 == wlen) { 389 if (!wstr || 0 == wlen) {
391 return CFX_WideString(); 390 return CFX_WideString();
(...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 int dest_len = 1033 int dest_len =
1035 FXSYS_MultiByteToWideChar(codepage, 0, bstr, src_len, nullptr, 0); 1034 FXSYS_MultiByteToWideChar(codepage, 0, bstr, src_len, nullptr, 0);
1036 CFX_WideString wstr; 1035 CFX_WideString wstr;
1037 if (dest_len) { 1036 if (dest_len) {
1038 FX_WCHAR* dest_buf = wstr.GetBuffer(dest_len); 1037 FX_WCHAR* dest_buf = wstr.GetBuffer(dest_len);
1039 FXSYS_MultiByteToWideChar(codepage, 0, bstr, src_len, dest_buf, dest_len); 1038 FXSYS_MultiByteToWideChar(codepage, 0, bstr, src_len, dest_buf, dest_len);
1040 wstr.ReleaseBuffer(dest_len); 1039 wstr.ReleaseBuffer(dest_len);
1041 } 1040 }
1042 return wstr; 1041 return wstr;
1043 } 1042 }
OLDNEW
« no previous file with comments | « no previous file | core/fxcrt/include/fx_string.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698