| Index: app/l10n_util.cc
|
| diff --git a/app/l10n_util.cc b/app/l10n_util.cc
|
| index a77af25b986e8e00562cb3875a8a0a6971a3157b..148151d6f04b1cd66a0c550b3befaf652c175479 100644
|
| --- a/app/l10n_util.cc
|
| +++ b/app/l10n_util.cc
|
| @@ -44,9 +44,6 @@ static const FilePath::CharType kLocaleFileExtension[] = L".dll";
|
| static const FilePath::CharType kLocaleFileExtension[] = ".pak";
|
| #endif
|
|
|
| -// Added to the end of strings that are too big in TrucateString.
|
| -static const wchar_t* const kElideString = L"\x2026";
|
| -
|
| static const char* const kAcceptLanguageList[] = {
|
| "af", // Afrikaans
|
| "am", // Amharic
|
| @@ -681,27 +678,25 @@ std::wstring GetStringF(int message_id, int64 a) {
|
| return GetStringF(message_id, UTF8ToWide(base::Int64ToString(a)));
|
| }
|
|
|
| -std::wstring TruncateString(const std::wstring& string, size_t length) {
|
| +string16 TruncateString(const string16& string, size_t length) {
|
| if (string.size() <= length)
|
| // String fits, return it.
|
| return string;
|
|
|
| if (length == 0) {
|
| - // No room for the ellide string, return an empty string.
|
| - return std::wstring(L"");
|
| + // No room for the elide string, return an empty string.
|
| + return string16();
|
| }
|
| size_t max = length - 1;
|
|
|
| + // Added to the end of strings that are too big.
|
| + static const char16 kElideString[] = { 0x2026, 0 };
|
| +
|
| if (max == 0) {
|
| // Just enough room for the elide string.
|
| return kElideString;
|
| }
|
|
|
| -#if defined(WCHAR_T_IS_UTF32)
|
| - const string16 string_utf16 = WideToUTF16(string);
|
| -#else
|
| - const std::wstring &string_utf16 = string;
|
| -#endif
|
| // Use a line iterator to find the first boundary.
|
| UErrorCode status = U_ZERO_ERROR;
|
| scoped_ptr<icu::RuleBasedBreakIterator> bi(
|
| @@ -710,14 +705,14 @@ std::wstring TruncateString(const std::wstring& string, size_t length) {
|
| icu::Locale::getDefault(), status)));
|
| if (U_FAILURE(status))
|
| return string.substr(0, max) + kElideString;
|
| - bi->setText(string_utf16.c_str());
|
| + bi->setText(string.c_str());
|
| int32_t index = bi->preceding(static_cast<int32_t>(max));
|
| if (index == icu::BreakIterator::DONE) {
|
| index = static_cast<int32_t>(max);
|
| } else {
|
| // Found a valid break (may be the beginning of the string). Now use
|
| // a character iterator to find the previous non-whitespace character.
|
| - icu::StringCharacterIterator char_iterator(string_utf16.c_str());
|
| + icu::StringCharacterIterator char_iterator(string.c_str());
|
| if (index == 0) {
|
| // No valid line breaks. Start at the end again. This ensures we break
|
| // on a valid character boundary.
|
|
|