summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/string_util.cc54
-rw-r--r--base/string_util.h42
-rw-r--r--base/string_util_unittest.cc8
-rw-r--r--chrome/common/l10n_util.cc61
4 files changed, 83 insertions, 82 deletions
diff --git a/base/string_util.cc b/base/string_util.cc
index ebab89b..2e6f7b3 100644
--- a/base/string_util.cc
+++ b/base/string_util.cc
@@ -1269,14 +1269,14 @@ void SplitStringAlongWhitespace(const std::wstring& str,
}
}
-std::wstring ReplaceStringPlaceholders(const std::wstring& format_string,
- const std::wstring& a,
- size_t* offset) {
+string16 ReplaceStringPlaceholders(const string16& format_string,
+ const string16& a,
+ size_t* offset) {
std::vector<size_t> offsets;
- std::wstring result = ReplaceStringPlaceholders(format_string, a,
- std::wstring(),
- std::wstring(),
- std::wstring(), &offsets);
+ string16 result = ReplaceStringPlaceholders(format_string, a,
+ string16(),
+ string16(),
+ string16(), &offsets);
DCHECK(offsets.size() == 1);
if (offset) {
*offset = offsets[0];
@@ -1284,41 +1284,41 @@ std::wstring ReplaceStringPlaceholders(const std::wstring& format_string,
return result;
}
-std::wstring ReplaceStringPlaceholders(const std::wstring& format_string,
- const std::wstring& a,
- const std::wstring& b,
- std::vector<size_t>* offsets) {
- return ReplaceStringPlaceholders(format_string, a, b, std::wstring(),
- std::wstring(), offsets);
+string16 ReplaceStringPlaceholders(const string16& format_string,
+ const string16& a,
+ const string16& b,
+ std::vector<size_t>* offsets) {
+ return ReplaceStringPlaceholders(format_string, a, b, string16(),
+ string16(), offsets);
}
-std::wstring ReplaceStringPlaceholders(const std::wstring& format_string,
- const std::wstring& a,
- const std::wstring& b,
- const std::wstring& c,
- std::vector<size_t>* offsets) {
- return ReplaceStringPlaceholders(format_string, a, b, c, std::wstring(),
+string16 ReplaceStringPlaceholders(const string16& format_string,
+ const string16& a,
+ const string16& b,
+ const string16& c,
+ std::vector<size_t>* offsets) {
+ return ReplaceStringPlaceholders(format_string, a, b, c, string16(),
offsets);
}
-std::wstring ReplaceStringPlaceholders(const std::wstring& format_string,
- const std::wstring& a,
- const std::wstring& b,
- const std::wstring& c,
- const std::wstring& d,
+string16 ReplaceStringPlaceholders(const string16& format_string,
+ const string16& a,
+ const string16& b,
+ const string16& c,
+ const string16& d,
std::vector<size_t>* offsets) {
// We currently only support up to 4 place holders ($1 through $4), although
// it's easy enough to add more.
- const std::wstring* subst_texts[] = { &a, &b, &c, &d };
+ const string16* subst_texts[] = { &a, &b, &c, &d };
- std::wstring formatted;
+ string16 formatted;
formatted.reserve(format_string.length() + a.length() +
b.length() + c.length() + d.length());
std::vector<ReplacementOffset> r_offsets;
// Replace $$ with $ and $1-$4 with placeholder text if it exists.
- for (std::wstring::const_iterator i = format_string.begin();
+ for (string16::const_iterator i = format_string.begin();
i != format_string.end(); ++i) {
if ('$' == *i) {
if (i + 1 != format_string.end()) {
diff --git a/base/string_util.h b/base/string_util.h
index ca1fc05..c32bef3 100644
--- a/base/string_util.h
+++ b/base/string_util.h
@@ -556,27 +556,27 @@ void SplitStringAlongWhitespace(const std::wstring& str,
// Replace $1-$2-$3 in the format string with |a| and |b| respectively.
// Additionally, $$ is replaced by $. The offset/offsets parameter here can be
// NULL.
-std::wstring ReplaceStringPlaceholders(const std::wstring& format_string,
- const std::wstring& a,
- size_t* offset);
-
-std::wstring ReplaceStringPlaceholders(const std::wstring& format_string,
- const std::wstring& a,
- const std::wstring& b,
- std::vector<size_t>* offsets);
-
-std::wstring ReplaceStringPlaceholders(const std::wstring& format_string,
- const std::wstring& a,
- const std::wstring& b,
- const std::wstring& c,
- std::vector<size_t>* offsets);
-
-std::wstring ReplaceStringPlaceholders(const std::wstring& format_string,
- const std::wstring& a,
- const std::wstring& b,
- const std::wstring& c,
- const std::wstring& d,
- std::vector<size_t>* offsets);
+string16 ReplaceStringPlaceholders(const string16& format_string,
+ const string16& a,
+ size_t* offset);
+
+string16 ReplaceStringPlaceholders(const string16& format_string,
+ const string16& a,
+ const string16& b,
+ std::vector<size_t>* offsets);
+
+string16 ReplaceStringPlaceholders(const string16& format_string,
+ const string16& a,
+ const string16& b,
+ const string16& c,
+ std::vector<size_t>* offsets);
+
+string16 ReplaceStringPlaceholders(const string16& format_string,
+ const string16& a,
+ const string16& b,
+ const string16& c,
+ const string16& d,
+ std::vector<size_t>* offsets);
// If the size of |input| is more than |max_len|, this function returns true and
// |input| is shortened into |output| by removing chars in the middle (they are
diff --git a/base/string_util_unittest.cc b/base/string_util_unittest.cc
index 9e55c10..c7b881e 100644
--- a/base/string_util_unittest.cc
+++ b/base/string_util_unittest.cc
@@ -1421,14 +1421,18 @@ TEST(StringUtilTest, StartsWith) {
TEST(StringUtilTest, GetStringFWithOffsets) {
std::vector<size_t> offsets;
- ReplaceStringPlaceholders(L"Hello, $1. Your number is $2.", L"1", L"2",
+ ReplaceStringPlaceholders(ASCIIToUTF16("Hello, $1. Your number is $2."),
+ ASCIIToUTF16("1"),
+ ASCIIToUTF16("2"),
&offsets);
EXPECT_EQ(2U, offsets.size());
EXPECT_EQ(7U, offsets[0]);
EXPECT_EQ(25U, offsets[1]);
offsets.clear();
- ReplaceStringPlaceholders(L"Hello, $2. Your number is $1.", L"1", L"2",
+ ReplaceStringPlaceholders(ASCIIToUTF16("Hello, $2. Your number is $1."),
+ ASCIIToUTF16("1"),
+ ASCIIToUTF16("2"),
&offsets);
EXPECT_EQ(2U, offsets.size());
EXPECT_EQ(25U, offsets[0]);
diff --git a/chrome/common/l10n_util.cc b/chrome/common/l10n_util.cc
index fabd01c..cdb65d7 100644
--- a/chrome/common/l10n_util.cc
+++ b/chrome/common/l10n_util.cc
@@ -301,79 +301,76 @@ std::string GetStringUTF8(int message_id) {
return WideToUTF8(GetString(message_id));
}
-static std::wstring GetStringF(int message_id,
- const std::wstring& a,
- const std::wstring& b,
- const std::wstring& c,
- const std::wstring& d,
- std::vector<size_t>* offsets) {
- const std::wstring& format_string = GetString(message_id);
- std::wstring formatted = ReplaceStringPlaceholders(format_string, a, b, c,
- d, offsets);
+static string16 GetStringF(int message_id,
+ const string16& a,
+ const string16& b,
+ const string16& c,
+ const string16& d,
+ std::vector<size_t>* offsets) {
+ // TODO(tc): ResourceBundle::GetLocalizedString should return a string16
+ // so we can avoid this conversion on linux/mac.
+ const string16& format_string = WideToUTF16(GetString(message_id));
+ string16 formatted = ReplaceStringPlaceholders(format_string, a, b, c, d,
+ offsets);
return formatted;
}
-std::wstring GetStringF(int message_id,
- const std::wstring& a) {
- return GetStringF(message_id, a, std::wstring(), std::wstring(),
- std::wstring(), NULL);
+std::wstring GetStringF(int message_id, const std::wstring& a) {
+ return UTF16ToWide(GetStringF(message_id, WideToUTF16(a), string16(),
+ string16(), string16(), NULL));
}
std::wstring GetStringF(int message_id,
const std::wstring& a,
const std::wstring& b) {
- return GetStringF(message_id, a, b, std::wstring(), std::wstring(), NULL);
+ return UTF16ToWide(GetStringF(message_id, WideToUTF16(a), WideToUTF16(b),
+ string16(), string16(), NULL));
}
std::wstring GetStringF(int message_id,
const std::wstring& a,
const std::wstring& b,
const std::wstring& c) {
- return GetStringF(message_id, a, b, c, std::wstring(), NULL);
+ return UTF16ToWide(GetStringF(message_id, WideToUTF16(a), WideToUTF16(b),
+ WideToUTF16(c), string16(), NULL));
}
std::string GetStringFUTF8(int message_id,
const string16& a) {
- // TODO(tc): Once this whole file uses string16, we can drop the UTF16ToWide
- // conversions. http://crbug.com/9911
- return WideToUTF8(GetStringF(message_id, UTF16ToWide(a)));
+ return UTF16ToUTF8(GetStringF(message_id, a, string16(), string16(),
+ string16(), NULL));
}
std::string GetStringFUTF8(int message_id,
const string16& a,
const string16& b) {
- // TODO(tc): Once this whole file uses string16, we can drop the UTF16ToWide
- // conversions. http://crbug.com/9911
- return WideToUTF8(GetStringF(message_id, UTF16ToWide(a), UTF16ToWide(b)));
+ return UTF16ToUTF8(GetStringF(message_id, a, b, string16(), string16(),
+ NULL));
}
std::string GetStringFUTF8(int message_id,
const string16& a,
const string16& b,
const string16& c) {
- // TODO(tc): Once this whole file uses string16, we can drop the UTF16ToWide
- // conversions. http://crbug.com/9911
- return WideToUTF8(GetStringF(message_id, UTF16ToWide(a), UTF16ToWide(b),
- UTF16ToWide(c)));
+ return UTF16ToUTF8(GetStringF(message_id, a, b, c, string16(), NULL));
}
-std::wstring GetStringF(int message_id,
- const std::wstring& a,
- size_t* offset) {
+std::wstring GetStringF(int message_id, const std::wstring& a, size_t* offset) {
DCHECK(offset);
std::vector<size_t> offsets;
- std::wstring result = GetStringF(message_id, a, std::wstring(),
- std::wstring(), std::wstring(), &offsets);
+ string16 result = GetStringF(message_id, WideToUTF16(a), string16(),
+ string16(), string16(), &offsets);
DCHECK(offsets.size() == 1);
*offset = offsets[0];
- return result;
+ return UTF16ToWide(result);
}
std::wstring GetStringF(int message_id,
const std::wstring& a,
const std::wstring& b,
std::vector<size_t>* offsets) {
- return GetStringF(message_id, a, b, std::wstring(), std::wstring(), offsets);
+ return UTF16ToWide(GetStringF(message_id, WideToUTF16(a), WideToUTF16(b),
+ string16(), string16(), offsets));
}
std::wstring GetStringF(int message_id, int a) {