Chromium Code Reviews| Index: app/l10n_util.cc |
| =================================================================== |
| --- app/l10n_util.cc (revision 69028) |
| +++ app/l10n_util.cc (working copy) |
| @@ -507,10 +507,11 @@ |
| // Strip off the part after an '@' sign, which might contain keywords, |
| // as in en_IE@currency=IEP or fr@collation=phonebook;calendar=islamic-civil. |
| // We don't validate that part much, just check that there's at least one |
| - // equals sign in a plausible place. |
| - std::string prefix = locale; |
| - if (locale.find("@") != std::string::npos) { |
| - size_t split_point = locale.find("@"); |
| + // equals sign in a plausible place. Normalize the prefix so that hyphens |
| + // are changed to underscores. |
| + std::string prefix = NormalizeLocale(locale); |
| + size_t split_point = locale.find("@"); |
| + if (split_point != std::string::npos) { |
| std::string keywords = locale.substr(split_point + 1); |
| prefix = locale.substr(0, split_point); |
| @@ -520,11 +521,11 @@ |
| return false; |
| } |
| - // Check that all characters before the at-sign are alphanumeric, hyphen, |
| - // or underscore. |
| + // Check that all characters before the at-sign are alphanumeric or |
| + // underscore. |
| for (size_t i = 0; i < prefix.size(); i++) { |
| char ch = prefix[i]; |
| - if (!IsAsciiAlpha(ch) && !IsAsciiDigit(ch) && ch != '-' && ch != '_') |
| + if (!IsAsciiAlpha(ch) && !IsAsciiDigit(ch) && ch != '_') |
| return false; |
| } |
| @@ -532,7 +533,7 @@ |
| // is 1 - 3 alphabetical characters (a language tag). |
| for (size_t i = 0; i < prefix.size(); i++) { |
| char ch = prefix[i]; |
| - if (ch == '-' || ch == '_') { |
| + if (ch == '_') { |
| if (i < 1 || i > 3) |
| return false; |
| break; |
| @@ -548,7 +549,7 @@ |
| int token_index = 0; |
| for (size_t i = 0; i < prefix.size(); i++) { |
| char ch = prefix[i]; |
| - if (ch == '-' || ch == '_') { |
| + if (ch == '_') { |
|
Nebojša Ćirić
2010/12/13 19:43:48
You don't use ch anywhere else. Remove it and use
|
| if (token_index > 0 && (token_len < 1 || token_len > 8)) { |
| return false; |
| } |