summaryrefslogtreecommitdiff
path: root/configmgr
diff options
context:
space:
mode:
authorsb <sb@openoffice.org>2010-11-17 15:16:52 +0100
committerRene Engelhard <rene@debian.org>2010-11-21 14:48:52 +0100
commit07117ad2a4c7cf9b09bc6d7636df81ad10c0bed0 (patch)
tree895461c17b4890d2100fc44e5c8468650a59346c /configmgr
parentf5fca8ffd0bf39198ed424240fa83556c568b7dd (diff)
sb136: #i115386# prefer en[-US] over empty xml:lang value, to accomodate existing extensions with bad .xcu content
Diffstat (limited to 'configmgr')
-rw-r--r--configmgr/source/childaccess.cxx18
1 files changed, 12 insertions, 6 deletions
diff --git a/configmgr/source/childaccess.cxx b/configmgr/source/childaccess.cxx
index d3b54800e4..3ec23b73f1 100644
--- a/configmgr/source/childaccess.cxx
+++ b/configmgr/source/childaccess.cxx
@@ -283,8 +283,8 @@ css::uno::Any ChildAccess::asValue() {
if (!Components::allLocales(locale)) {
// Find best match using an adaption of RFC 4647 lookup matching
// rules, removing "-" or "_" delimited segments from the end;
- // defaults are the empty string locale, the "en-US" locale, the
- // "en" locale, the first child (if any), or a nil value (even
+ // defaults are the "en-US" locale, the "en" locale, the empty
+ // string locale, the first child (if any), or a nil value (even
// though it may be illegal for the given property), in that
// order:
rtl::Reference< ChildAccess > child;
@@ -297,6 +297,9 @@ css::uno::Any ChildAccess::asValue() {
while (i > 0 && locale[i] != '-' && locale[i] != '_') {
--i;
}
+ if (i == 0) {
+ break;
+ }
locale = locale.copy(0, i);
}
if (!child.is()) {
@@ -306,10 +309,13 @@ css::uno::Any ChildAccess::asValue() {
child = getChild(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")));
if (!child.is()) {
- std::vector< rtl::Reference< ChildAccess > > all(
- getAllChildren());
- if (!all.empty()) {
- child = all.front();
+ child = getChild(rtl::OUString());
+ if (!child.is()) {
+ std::vector< rtl::Reference< ChildAccess > >
+ all(getAllChildren());
+ if (!all.empty()) {
+ child = all.front();
+ }
}
}
}