OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/autofill/core/browser/credit_card.h" | 5 #include "components/autofill/core/browser/credit_card.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
11 #include <ostream> | 11 #include <ostream> |
12 #include <string> | 12 #include <string> |
13 | 13 |
14 #include "base/guid.h" | 14 #include "base/guid.h" |
15 #include "base/i18n/time_formatting.h" | 15 #include "base/i18n/time_formatting.h" |
| 16 #include "base/i18n/unicodestring.h" |
16 #include "base/logging.h" | 17 #include "base/logging.h" |
17 #include "base/macros.h" | 18 #include "base/macros.h" |
18 #include "base/metrics/histogram_macros.h" | 19 #include "base/metrics/histogram_macros.h" |
19 #include "base/strings/string16.h" | 20 #include "base/strings/string16.h" |
20 #include "base/strings/string_number_conversions.h" | 21 #include "base/strings/string_number_conversions.h" |
21 #include "base/strings/string_split.h" | 22 #include "base/strings/string_split.h" |
22 #include "base/strings/string_util.h" | 23 #include "base/strings/string_util.h" |
23 #include "base/strings/utf_string_conversions.h" | 24 #include "base/strings/utf_string_conversions.h" |
24 #include "base/time/time.h" | 25 #include "base/time/time.h" |
25 #include "build/build_config.h" | 26 #include "build/build_config.h" |
(...skipping 837 matching lines...) Loading... |
863 l10n::CaseInsensitiveCompare compare; | 864 l10n::CaseInsensitiveCompare compare; |
864 UErrorCode status = U_ZERO_ERROR; | 865 UErrorCode status = U_ZERO_ERROR; |
865 icu::Locale locale(app_locale.c_str()); | 866 icu::Locale locale(app_locale.c_str()); |
866 icu::DateFormatSymbols date_format_symbols(locale, status); | 867 icu::DateFormatSymbols date_format_symbols(locale, status); |
867 DCHECK(status == U_ZERO_ERROR || status == U_USING_FALLBACK_WARNING || | 868 DCHECK(status == U_ZERO_ERROR || status == U_USING_FALLBACK_WARNING || |
868 status == U_USING_DEFAULT_WARNING); | 869 status == U_USING_DEFAULT_WARNING); |
869 | 870 |
870 int32_t num_months; | 871 int32_t num_months; |
871 const icu::UnicodeString* months = date_format_symbols.getMonths(num_months); | 872 const icu::UnicodeString* months = date_format_symbols.getMonths(num_months); |
872 for (int32_t i = 0; i < num_months; ++i) { | 873 for (int32_t i = 0; i < num_months; ++i) { |
873 const base::string16 icu_month(months[i].getBuffer(), months[i].length()); | 874 const base::string16 icu_month( |
| 875 base::i18n::UnicodeStringToString16(months[i])); |
874 if (compare.StringsEqual(icu_month, month)) { | 876 if (compare.StringsEqual(icu_month, month)) { |
875 *num = i + 1; // Adjust from 0-indexed to 1-indexed. | 877 *num = i + 1; // Adjust from 0-indexed to 1-indexed. |
876 return true; | 878 return true; |
877 } | 879 } |
878 } | 880 } |
879 | 881 |
880 months = date_format_symbols.getShortMonths(num_months); | 882 months = date_format_symbols.getShortMonths(num_months); |
881 // Some abbreviations have . at the end (e.g., "janv." in French). We don't | 883 // Some abbreviations have . at the end (e.g., "janv." in French). We don't |
882 // care about matching that. | 884 // care about matching that. |
883 base::string16 trimmed_month; | 885 base::string16 trimmed_month; |
884 base::TrimString(month, ASCIIToUTF16("."), &trimmed_month); | 886 base::TrimString(month, ASCIIToUTF16("."), &trimmed_month); |
885 for (int32_t i = 0; i < num_months; ++i) { | 887 for (int32_t i = 0; i < num_months; ++i) { |
886 base::string16 icu_month(months[i].getBuffer(), months[i].length()); | 888 base::string16 icu_month(base::i18n::UnicodeStringToString16(months[i])); |
887 base::TrimString(icu_month, ASCIIToUTF16("."), &icu_month); | 889 base::TrimString(icu_month, ASCIIToUTF16("."), &icu_month); |
888 if (compare.StringsEqual(icu_month, trimmed_month)) { | 890 if (compare.StringsEqual(icu_month, trimmed_month)) { |
889 *num = i + 1; // Adjust from 0-indexed to 1-indexed. | 891 *num = i + 1; // Adjust from 0-indexed to 1-indexed. |
890 return true; | 892 return true; |
891 } | 893 } |
892 } | 894 } |
893 | 895 |
894 return false; | 896 return false; |
895 } | 897 } |
896 | 898 |
(...skipping 30 matching lines...) Loading... |
927 const char kDinersCard[] = "dinersCC"; | 929 const char kDinersCard[] = "dinersCC"; |
928 const char kDiscoverCard[] = "discoverCC"; | 930 const char kDiscoverCard[] = "discoverCC"; |
929 const char kGenericCard[] = "genericCC"; | 931 const char kGenericCard[] = "genericCC"; |
930 const char kJCBCard[] = "jcbCC"; | 932 const char kJCBCard[] = "jcbCC"; |
931 const char kMasterCard[] = "masterCardCC"; | 933 const char kMasterCard[] = "masterCardCC"; |
932 const char kMirCard[] = "mirCC"; | 934 const char kMirCard[] = "mirCC"; |
933 const char kUnionPay[] = "unionPayCC"; | 935 const char kUnionPay[] = "unionPayCC"; |
934 const char kVisaCard[] = "visaCC"; | 936 const char kVisaCard[] = "visaCC"; |
935 | 937 |
936 } // namespace autofill | 938 } // namespace autofill |
OLD | NEW |