Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: Source/platform/text/LocaleWin.cpp

Issue 90243005: Have Locale::create() take a String in argument (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/platform/text/LocaleMac.mm ('k') | Source/platform/text/PlatformLocale.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 } 121 }
122 122
123 static LCID LCIDFromLocaleInternal(LCID userDefaultLCID, const String& userDefau ltLanguageCode, LocaleNameToLCIDPtr localeNameToLCID, const String& locale) 123 static LCID LCIDFromLocaleInternal(LCID userDefaultLCID, const String& userDefau ltLanguageCode, LocaleNameToLCIDPtr localeNameToLCID, const String& locale)
124 { 124 {
125 String localeLanguageCode = extractLanguageCode(locale); 125 String localeLanguageCode = extractLanguageCode(locale);
126 if (equalIgnoringCase(localeLanguageCode, userDefaultLanguageCode)) 126 if (equalIgnoringCase(localeLanguageCode, userDefaultLanguageCode))
127 return userDefaultLCID; 127 return userDefaultLCID;
128 return localeNameToLCID(locale.charactersWithNullTermination().data(), 0); 128 return localeNameToLCID(locale.charactersWithNullTermination().data(), 0);
129 } 129 }
130 130
131 static LCID LCIDFromLocale(const AtomicString& locale, bool defaultsForLocale) 131 static LCID LCIDFromLocale(const String& locale, bool defaultsForLocale)
132 { 132 {
133 // LocaleNameToLCID() is available since Windows Vista. 133 // LocaleNameToLCID() is available since Windows Vista.
134 LocaleNameToLCIDPtr localeNameToLCID = reinterpret_cast<LocaleNameToLCIDPtr> (::GetProcAddress(::GetModuleHandle(L"kernel32"), "LocaleNameToLCID")); 134 LocaleNameToLCIDPtr localeNameToLCID = reinterpret_cast<LocaleNameToLCIDPtr> (::GetProcAddress(::GetModuleHandle(L"kernel32"), "LocaleNameToLCID"));
135 if (!localeNameToLCID) 135 if (!localeNameToLCID)
136 localeNameToLCID = convertLocaleNameToLCID; 136 localeNameToLCID = convertLocaleNameToLCID;
137 137
138 // According to MSDN, 9 is enough for LOCALE_SISO639LANGNAME. 138 // According to MSDN, 9 is enough for LOCALE_SISO639LANGNAME.
139 const size_t languageCodeBufferSize = 9; 139 const size_t languageCodeBufferSize = 9;
140 WCHAR lowercaseLanguageCode[languageCodeBufferSize]; 140 WCHAR lowercaseLanguageCode[languageCodeBufferSize];
141 ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME | (defaultsForLo cale ? LOCALE_NOUSEROVERRIDE : 0), lowercaseLanguageCode, languageCodeBufferSize ); 141 ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME | (defaultsForLo cale ? LOCALE_NOUSEROVERRIDE : 0), lowercaseLanguageCode, languageCodeBufferSize );
142 String userDefaultLanguageCode = String(lowercaseLanguageCode); 142 String userDefaultLanguageCode = String(lowercaseLanguageCode);
143 143
144 LCID lcid = LCIDFromLocaleInternal(LOCALE_USER_DEFAULT, userDefaultLanguageC ode, localeNameToLCID, String(locale)); 144 LCID lcid = LCIDFromLocaleInternal(LOCALE_USER_DEFAULT, userDefaultLanguageC ode, localeNameToLCID, locale);
145 if (!lcid) 145 if (!lcid)
146 lcid = LCIDFromLocaleInternal(LOCALE_USER_DEFAULT, userDefaultLanguageCo de, localeNameToLCID, defaultLanguage()); 146 lcid = LCIDFromLocaleInternal(LOCALE_USER_DEFAULT, userDefaultLanguageCo de, localeNameToLCID, defaultLanguage());
147 return lcid; 147 return lcid;
148 } 148 }
149 149
150 PassOwnPtr<Locale> Locale::create(const AtomicString& locale) 150 PassOwnPtr<Locale> Locale::create(const String& locale)
151 { 151 {
152 // Whether the default settings for the locale should be used, ignoring user overrides. 152 // Whether the default settings for the locale should be used, ignoring user overrides.
153 bool defaultsForLocale = isRunningLayoutTest(); 153 bool defaultsForLocale = isRunningLayoutTest();
154 return LocaleWin::create(LCIDFromLocale(locale, defaultsForLocale), defaults ForLocale); 154 return LocaleWin::create(LCIDFromLocale(locale, defaultsForLocale), defaults ForLocale);
155 } 155 }
156 156
157 inline LocaleWin::LocaleWin(LCID lcid, bool defaultsForLocale) 157 inline LocaleWin::LocaleWin(LCID lcid, bool defaultsForLocale)
158 : m_lcid(lcid) 158 : m_lcid(lcid)
159 , m_didInitializeNumberData(false) 159 , m_didInitializeNumberData(false)
160 , m_defaultsForLocale(defaultsForLocale) 160 , m_defaultsForLocale(defaultsForLocale)
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 case NegativeFormatSignPrefix: // Fall through. 577 case NegativeFormatSignPrefix: // Fall through.
578 default: 578 default:
579 negativePrefix = negativeSign; 579 negativePrefix = negativeSign;
580 break; 580 break;
581 } 581 }
582 m_didInitializeNumberData = true; 582 m_didInitializeNumberData = true;
583 setLocaleData(symbols, emptyString(), emptyString(), negativePrefix, negativ eSuffix); 583 setLocaleData(symbols, emptyString(), emptyString(), negativePrefix, negativ eSuffix);
584 } 584 }
585 585
586 } 586 }
OLDNEW
« no previous file with comments | « Source/platform/text/LocaleMac.mm ('k') | Source/platform/text/PlatformLocale.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698