diff options
Diffstat (limited to 'base/utf_offset_string_conversions.h')
-rw-r--r-- | base/utf_offset_string_conversions.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/base/utf_offset_string_conversions.h b/base/utf_offset_string_conversions.h new file mode 100644 index 0000000..0a1a682 --- /dev/null +++ b/base/utf_offset_string_conversions.h @@ -0,0 +1,35 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_UTF_OFFSET_STRING_CONVERSIONS_H_ +#define BASE_UTF_OFFSET_STRING_CONVERSIONS_H_ + +#include <string> + +#include "base/string16.h" + +namespace base { +class StringPiece; +} + +// Like the conversions in utf_string_conversions.h, but also take offsets into +// the source strings, which will be adjusted to point at the same logical place +// in the result strings. If this isn't possible because the offsets point past +// the end of the source strings or into the middle of multibyte sequences, they +// will be set to std::wstring::npos. |offset_for_adjustment| may be NULL. +bool UTF8ToWideAndAdjustOffset(const char* src, + size_t src_len, + std::wstring* output, + size_t* offset_for_adjustment); +std::wstring UTF8ToWideAndAdjustOffset(const base::StringPiece& utf8, + size_t* offset_for_adjustment); + +bool UTF16ToWideAndAdjustOffset(const char16* src, + size_t src_len, + std::wstring* output, + size_t* offset_for_adjustment); +std::wstring UTF16ToWideAndAdjustOffset(const string16& utf16, + size_t* offset_for_adjustment); + +#endif // BASE_UTF_OFFSET_STRING_CONVERSIONS_H_ |