Reimplement without using Cocoa.

This commit is contained in:
Steve Checkoway
2006-04-29 09:44:02 +00:00
parent cb4c2f5c53
commit 414e2313a8
2 changed files with 24 additions and 17 deletions
@@ -214,18 +214,31 @@ void ArchHooks_darwin::DumpDebugInfo()
LOG->Info( "Memory: %ld MB total, %ld MB swap", ram, vRam );
}
// In archutils/darwin/PreferredLanguage.m
extern "C"
{
extern char *GetPreferredLanguage();
}
RString ArchHooks::GetPreferredLanguage()
{
char *lang = ::GetPreferredLanguage();
RString ret = lang;
CFStringRef app = kCFPreferencesCurrentApplication;
CFTypeRef t = CFPreferencesCopyAppValue( CFSTR("AppleLanguages"), app );
RString ret = "en";
free(lang);
if( t == NULL )
return ret;
if( CFGetTypeID(t) != CFArrayGetTypeID() )
{
CFRelease( t );
return ret;
}
CFArrayRef languages = CFArrayRef( t );
CFStringRef lang;
if( CFArrayGetCount(languages) > 0 &&
(lang = (CFStringRef)CFArrayGetValueAtIndex(languages, 0)) != NULL )
{
// MacRoman agrees with ASCII in the low-order 7 bits.
ret = RString( CFStringGetCStringPtr(lang, kCFStringEncodingMacRoman), 2 );
}
CFRelease( languages );
return ret;
}