Resolves: tdf#126342 obtain date particle order from pattern match
... if there was any. In the NF_EVALDATEFORMAT_FORMAT_INTL case
the input may match a current locale's pattern instead of a
format's locale's pattern and patterns' (format locale + current
locale) date orders may be different from the format's date order.
Change-Id: I3aeaa6c361f98fe80f69c4f5d975fca892dac6ea
Reviewed-on: https://gerrit.libreoffice.org/75481
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
diff --git a/svl/source/numbers/zforfind.cxx b/svl/source/numbers/zforfind.cxx
index 57fcbc6..3fb2357 100644
--- a/svl/source/numbers/zforfind.cxx
+++ b/svl/source/numbers/zforfind.cxx
@@ -1698,7 +1698,26 @@ bool ImpSvNumberInputScan::GetDateRef( double& fDays, sal_uInt16& nCounter )
else
{
bFormatTurn = true;
DateFmt = mpFormat->GetDateOrder();
// Even if the format pattern is to be preferred, the input may
// have matched a pattern of the current locale, which then
// again is to be preferred. Both date orders can be different
// so we need to obtain the actual match. For example ISO
// YYYY-MM-DD format vs locale's DD.MM.YY input.
if (!GetDatePatternOrder())
{
// No pattern match => format match.
DateFmt = mpFormat->GetDateOrder();
}
else
{
// Pattern match. Note that patterns may have been
// constructed from the format's locale and prepended to
// the current locale's patterns, it doesn't necessarily
// mean a current locale's pattern was matched, but may if
// the format's locale's patterns didn't match, which were
// tried first.
DateFmt = GetDateOrder();
}
}
break;
default: