| Index: ui/base/template_expressions.cc
|
| diff --git a/ui/base/template_expressions.cc b/ui/base/template_expressions.cc
|
| index afddf5e0ba2ea1392403cd03cecab0ca9340c41d..1d63e0c34eac113f386f5a80d5817faa092a5270 100644
|
| --- a/ui/base/template_expressions.cc
|
| +++ b/ui/base/template_expressions.cc
|
| @@ -8,36 +8,29 @@
|
|
|
| #include "base/logging.h"
|
|
|
| -namespace {
|
| -const char kLeader[] = "$i18n{";
|
| -const size_t kLeaderSize = arraysize(kLeader) - 1;
|
| -const char kTail[] = "}";
|
| -const size_t kTailSize = arraysize(kTail) - 1;
|
| -} // namespace
|
| -
|
| namespace ui {
|
|
|
| std::string ReplaceTemplateExpressions(
|
| base::StringPiece format_string,
|
| - const TemplateReplacements& substitutions) {
|
| + const std::map<base::StringPiece, std::string>& substitutions) {
|
| std::string formatted;
|
| const size_t kValueLengthGuess = 16;
|
| formatted.reserve(format_string.length() +
|
| substitutions.size() * kValueLengthGuess);
|
| base::StringPiece::const_iterator i = format_string.begin();
|
| while (i < format_string.end()) {
|
| - if (base::StringPiece(i).starts_with(kLeader)) {
|
| - size_t key_start = i + kLeaderSize - format_string.begin();
|
| - size_t key_length = format_string.find(kTail, key_start);
|
| + if (*i == '$' && i + 2 < format_string.end() && i[1] == '{' &&
|
| + i[2] != '}') {
|
| + size_t key_start = i + strlen("${") - format_string.begin();
|
| + size_t key_length = format_string.find('}', key_start);
|
| if (key_length == base::StringPiece::npos)
|
| - NOTREACHED() << "TemplateExpression missing ending tag";
|
| + NOTREACHED() << "TemplateExpression missing ending brace '}'";
|
| key_length -= key_start;
|
| - std::string key(format_string.begin() + key_start, key_length);
|
| - DCHECK(!key.empty());
|
| + base::StringPiece key(format_string.begin() + key_start, key_length);
|
| const auto& replacement = substitutions.find(key);
|
| if (replacement != substitutions.end()) {
|
| formatted.append(replacement->second);
|
| - i += kLeaderSize + key_length + kTailSize;
|
| + i += strlen("${") + key_length + strlen("}");
|
| continue;
|
| } else {
|
| NOTREACHED() << "TemplateExpression key not found: " << key;
|
|
|