security/sandbox/chromium/base/strings/utf_string_conversions.h

Wed, 31 Dec 2014 07:16:47 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:16:47 +0100
branch
TOR_BUG_9701
changeset 3
141e0f1194b1
permissions
-rw-r--r--

Revert simplistic fix pending revisit of Mozilla integration attempt.

     1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
     2 // Use of this source code is governed by a BSD-style license that can be
     3 // found in the LICENSE file.
     5 #ifndef BASE_STRINGS_UTF_STRING_CONVERSIONS_H_
     6 #define BASE_STRINGS_UTF_STRING_CONVERSIONS_H_
     8 #include <string>
    10 #include "base/base_export.h"
    11 #include "base/strings/string16.h"
    12 #include "base/strings/string_piece.h"
    14 namespace base {
    16 // These convert between UTF-8, -16, and -32 strings. They are potentially slow,
    17 // so avoid unnecessary conversions. The low-level versions return a boolean
    18 // indicating whether the conversion was 100% valid. In this case, it will still
    19 // do the best it can and put the result in the output buffer. The versions that
    20 // return strings ignore this error and just return the best conversion
    21 // possible.
    22 BASE_EXPORT bool WideToUTF8(const wchar_t* src, size_t src_len,
    23                             std::string* output);
    24 BASE_EXPORT std::string WideToUTF8(const std::wstring& wide);
    25 BASE_EXPORT bool UTF8ToWide(const char* src, size_t src_len,
    26                             std::wstring* output);
    27 BASE_EXPORT std::wstring UTF8ToWide(const StringPiece& utf8);
    29 BASE_EXPORT bool WideToUTF16(const wchar_t* src, size_t src_len,
    30                              string16* output);
    31 BASE_EXPORT string16 WideToUTF16(const std::wstring& wide);
    32 BASE_EXPORT bool UTF16ToWide(const char16* src, size_t src_len,
    33                              std::wstring* output);
    34 BASE_EXPORT std::wstring UTF16ToWide(const string16& utf16);
    36 BASE_EXPORT bool UTF8ToUTF16(const char* src, size_t src_len, string16* output);
    37 BASE_EXPORT string16 UTF8ToUTF16(const StringPiece& utf8);
    38 BASE_EXPORT bool UTF16ToUTF8(const char16* src, size_t src_len,
    39                              std::string* output);
    40 BASE_EXPORT std::string UTF16ToUTF8(const string16& utf16);
    42 // We are trying to get rid of wstring as much as possible, but it's too big
    43 // a mess to do it all at once.  These conversions should be used when we
    44 // really should just be passing a string16 around, but we haven't finished
    45 // porting whatever module uses wstring and the conversion is being used as a
    46 // stopcock.  This makes it easy to grep for the ones that should be removed.
    47 #if defined(OS_WIN)
    48 # define WideToUTF16Hack
    49 # define UTF16ToWideHack
    50 #else
    51 # define WideToUTF16Hack WideToUTF16
    52 # define UTF16ToWideHack UTF16ToWide
    53 #endif
    55 // These convert an ASCII string, typically a hardcoded constant, to a
    56 // UTF16/Wide string.
    57 BASE_EXPORT std::wstring ASCIIToWide(const StringPiece& ascii);
    58 BASE_EXPORT string16 ASCIIToUTF16(const StringPiece& ascii);
    60 }  // namespace base
    62 // TODO(brettw) remove these when callers are fixed up.
    63 using base::WideToUTF8;
    64 using base::UTF8ToWide;
    65 using base::WideToUTF16;
    66 using base::UTF16ToWide;
    67 using base::UTF8ToUTF16;
    68 using base::UTF16ToUTF8;
    69 using base::ASCIIToWide;
    70 using base::ASCIIToUTF16;
    72 #endif  // BASE_STRINGS_UTF_STRING_CONVERSIONS_H_

mercurial