OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 <algorithm> | 5 #include <algorithm> |
6 #include <unicode/ucnv.h> | 6 #include <unicode/ucnv.h> |
7 #include <unicode/uidna.h> | 7 #include <unicode/uidna.h> |
8 #include <unicode/ulocdata.h> | 8 #include <unicode/ulocdata.h> |
9 #include <unicode/uniset.h> | 9 #include <unicode/uniset.h> |
10 #include <unicode/uscript.h> | 10 #include <unicode/uscript.h> |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 typename STR::const_iterator end = find(begin, headers.end(), '\n'); | 160 typename STR::const_iterator end = find(begin, headers.end(), '\n'); |
161 | 161 |
162 STR ret; | 162 STR ret; |
163 TrimWhitespace(STR(begin, end), TRIM_ALL, &ret); | 163 TrimWhitespace(STR(begin, end), TRIM_ALL, &ret); |
164 return ret; | 164 return ret; |
165 } | 165 } |
166 | 166 |
167 // TODO(jungshik): We have almost identical hex-decoding code else where. | 167 // TODO(jungshik): We have almost identical hex-decoding code else where. |
168 // Consider refactoring and moving it somewhere(base?). Bug 1224311 | 168 // Consider refactoring and moving it somewhere(base?). Bug 1224311 |
169 inline bool IsHexDigit(unsigned char c) { | 169 inline bool IsHexDigit(unsigned char c) { |
170 return (('0' <= c && c <= '9') || ('A' <= c && c <= 'F') || ('a' <= c && c <=
'f')); | 170 return (('0' <= c && c <= '9') || ('A' <= c && c <= 'F') || |
| 171 ('a' <= c && c <= 'f')); |
171 } | 172 } |
172 | 173 |
173 inline unsigned char HexToInt(unsigned char c) { | 174 inline unsigned char HexToInt(unsigned char c) { |
174 DCHECK(IsHexDigit(c)); | 175 DCHECK(IsHexDigit(c)); |
175 static unsigned char kOffset[4] = {0, 0x30u, 0x37u, 0x57u}; | 176 static unsigned char kOffset[4] = {0, 0x30u, 0x37u, 0x57u}; |
176 return c - kOffset[(c >> 5) & 3]; | 177 return c - kOffset[(c >> 5) & 3]; |
177 } | 178 } |
178 | 179 |
179 // Similar to Base64Decode. Decodes a Q-encoded string to a sequence | 180 // Similar to Base64Decode. Decodes a Q-encoded string to a sequence |
180 // of bytes. If input is invalid, return false. | 181 // of bytes. If input is invalid, return false. |
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 StringTokenizer t(languages_list, ","); | 558 StringTokenizer t(languages_list, ","); |
558 while (t.GetNext()) { | 559 while (t.GetNext()) { |
559 std::string lang = t.token(); | 560 std::string lang = t.token(); |
560 status = U_ZERO_ERROR; | 561 status = U_ZERO_ERROR; |
561 // TODO(jungshik) Cache exemplar sets for locales. | 562 // TODO(jungshik) Cache exemplar sets for locales. |
562 ULocaleData* uld = ulocdata_open(lang.c_str(), &status); | 563 ULocaleData* uld = ulocdata_open(lang.c_str(), &status); |
563 // TODO(jungshik) Turn this check on when the ICU data file is | 564 // TODO(jungshik) Turn this check on when the ICU data file is |
564 // rebuilt with the minimal subset of locale data for languages | 565 // rebuilt with the minimal subset of locale data for languages |
565 // to which Chrome is not localized but which we offer in the list | 566 // to which Chrome is not localized but which we offer in the list |
566 // of languages selectable for Accept-Languages. With the rebuilt ICU | 567 // of languages selectable for Accept-Languages. With the rebuilt ICU |
567 // data, ulocdata_open never should fall back to the default locale. (issue
2078) | 568 // data, ulocdata_open never should fall back to the default locale. |
| 569 // (issue 2078) |
568 // DCHECK(U_SUCCESS(status) && status != U_USING_DEFAULT_WARNING); | 570 // DCHECK(U_SUCCESS(status) && status != U_USING_DEFAULT_WARNING); |
569 if (U_SUCCESS(status) && status != U_USING_DEFAULT_WARNING) { | 571 if (U_SUCCESS(status) && status != U_USING_DEFAULT_WARNING) { |
570 // Should we use auxiliary set, instead? | 572 // Should we use auxiliary set, instead? |
571 ulocdata_getExemplarSet(uld, lang_set, 0, ULOCDATA_ES_STANDARD, &status); | 573 ulocdata_getExemplarSet(uld, lang_set, 0, ULOCDATA_ES_STANDARD, &status); |
572 ulocdata_close(uld); | 574 ulocdata_close(uld); |
573 if (U_SUCCESS(status)) { | 575 if (U_SUCCESS(status)) { |
574 UnicodeSet* allowed_characters = | 576 UnicodeSet* allowed_characters = |
575 reinterpret_cast<UnicodeSet*>(lang_set); | 577 reinterpret_cast<UnicodeSet*>(lang_set); |
576 // If |lang| is compatible with ASCII Latin letters, add them. | 578 // If |lang| is compatible with ASCII Latin letters, add them. |
577 if (IsCompatibleWithASCIILetters(lang)) | 579 if (IsCompatibleWithASCIILetters(lang)) |
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1046 char buffer[256]; | 1048 char buffer[256]; |
1047 int result = gethostname(buffer, sizeof(buffer)); | 1049 int result = gethostname(buffer, sizeof(buffer)); |
1048 if (result != 0) { | 1050 if (result != 0) { |
1049 DLOG(INFO) << "gethostname() failed with " << result; | 1051 DLOG(INFO) << "gethostname() failed with " << result; |
1050 buffer[0] = '\0'; | 1052 buffer[0] = '\0'; |
1051 } | 1053 } |
1052 return std::string(buffer); | 1054 return std::string(buffer); |
1053 } | 1055 } |
1054 | 1056 |
1055 } // namespace net | 1057 } // namespace net |
OLD | NEW |