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

Unified Diff: base/sys_string_conversions_mac.mm

Issue 21473: Now that we deal with string16s, provide some useful conversions for them. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/sys_string_conversions.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/sys_string_conversions_mac.mm
===================================================================
--- base/sys_string_conversions_mac.mm (revision 9943)
+++ base/sys_string_conversions_mac.mm (working copy)
@@ -115,17 +115,11 @@
// when strings don't carry BOMs, as they typically won't.
static const CFStringEncoding kNarrowStringEncoding = kCFStringEncodingUTF8;
#ifdef __BIG_ENDIAN__
-#if defined(WCHAR_T_IS_UTF16)
-static const CFStringEncoding kWideStringEncoding = kCFStringEncodingUTF16BE;
-#elif defined(WCHAR_T_IS_UTF32)
+static const CFStringEncoding kMediumStringEncoding = kCFStringEncodingUTF16BE;
static const CFStringEncoding kWideStringEncoding = kCFStringEncodingUTF32BE;
-#endif // WCHAR_T_IS_UTF32
#elif defined(__LITTLE_ENDIAN__)
-#if defined(WCHAR_T_IS_UTF16)
-static const CFStringEncoding kWideStringEncoding = kCFStringEncodingUTF16LE;
-#elif defined(WCHAR_T_IS_UTF32)
+static const CFStringEncoding kMediumStringEncoding = kCFStringEncodingUTF16LE;
static const CFStringEncoding kWideStringEncoding = kCFStringEncodingUTF32LE;
-#endif // WCHAR_T_IS_UTF32
#endif // __LITTLE_ENDIAN__
} // namespace
@@ -154,6 +148,10 @@
return STLStringToCFStringWithEncodingsT(utf8, kNarrowStringEncoding);
}
+CFStringRef SysUTF16ToCFStringRef(const string16& utf16) {
+ return STLStringToCFStringWithEncodingsT(utf16, kMediumStringEncoding);
+}
+
CFStringRef SysWideToCFStringRef(const std::wstring& wide) {
return STLStringToCFStringWithEncodingsT(wide, kWideStringEncoding);
}
@@ -162,6 +160,10 @@
return CFTypeRefToNSObjectAutorelease(SysUTF8ToCFStringRef(utf8));
}
+NSString* SysUTF16ToNSString(const string16& utf16) {
+ return CFTypeRefToNSObjectAutorelease(SysUTF16ToCFStringRef(utf16));
+}
+
NSString* SysWideToNSString(const std::wstring& wide) {
return CFTypeRefToNSObjectAutorelease(SysWideToCFStringRef(wide));
}
@@ -171,6 +173,11 @@
kNarrowStringEncoding);
}
+string16 SysCFStringRefToUTF16(CFStringRef ref) {
+ return CFStringToSTLStringWithEncodingT<string16>(ref,
+ kMediumStringEncoding);
+}
+
std::wstring SysCFStringRefToWide(CFStringRef ref) {
return CFStringToSTLStringWithEncodingT<std::wstring>(ref,
kWideStringEncoding);
@@ -180,6 +187,10 @@
return SysCFStringRefToUTF8(reinterpret_cast<CFStringRef>(nsstring));
}
+string16 SysNSStringToUTF16(NSString* nsstring) {
+ return SysCFStringRefToUTF16(reinterpret_cast<CFStringRef>(nsstring));
+}
+
std::wstring SysNSStringToWide(NSString* nsstring) {
return SysCFStringRefToWide(reinterpret_cast<CFStringRef>(nsstring));
}
« no previous file with comments | « base/sys_string_conversions.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698