Fix CID-2358:
* check result of BMessage::FindString() (plus more ...) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39922 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -127,23 +127,29 @@ BLanguage::GetNativeName(BString& name) const
|
|||||||
status_t
|
status_t
|
||||||
BLanguage::GetName(BString& name, const BLanguage* displayLanguage) const
|
BLanguage::GetName(BString& name, const BLanguage* displayLanguage) const
|
||||||
{
|
{
|
||||||
|
status_t status = B_OK;
|
||||||
|
|
||||||
BString appLanguage;
|
BString appLanguage;
|
||||||
if (displayLanguage == NULL) {
|
if (displayLanguage == NULL) {
|
||||||
BMessage preferredLanguage;
|
BMessage preferredLanguage;
|
||||||
BLocaleRoster::Default()->GetPreferredLanguages(&preferredLanguage);
|
status = BLocaleRoster::Default()->GetPreferredLanguages(
|
||||||
preferredLanguage.FindString("language", 0, &appLanguage);
|
&preferredLanguage);
|
||||||
|
if (status == B_OK)
|
||||||
|
status = preferredLanguage.FindString("language", 0, &appLanguage);
|
||||||
} else {
|
} else {
|
||||||
appLanguage = displayLanguage->Code();
|
appLanguage = displayLanguage->Code();
|
||||||
}
|
}
|
||||||
|
|
||||||
UnicodeString string;
|
if (status == B_OK) {
|
||||||
fICULocale->getDisplayName(Locale(appLanguage), string);
|
UnicodeString string;
|
||||||
|
fICULocale->getDisplayName(Locale(appLanguage), string);
|
||||||
|
|
||||||
name.Truncate(0);
|
name.Truncate(0);
|
||||||
BStringByteSink converter(&name);
|
BStringByteSink converter(&name);
|
||||||
string.toUTF8(converter);
|
string.toUTF8(converter);
|
||||||
|
}
|
||||||
|
|
||||||
return B_OK;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user