summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2022-10-23 18:06:43 +0200
committerMichael Stahl <michael.stahl@allotropia.de>2022-10-24 12:12:24 +0200
commit1e7c707282d28e60c7667e4c4dcdb9b2348fe862 (patch)
treeea8a70fe0912c24bcf470a8fee87d5f149f15b87
parentRelated: tdf#147817 prevent date acceptance pattern with numeric ambiguity (diff)
downloadcore-1e7c707282d28e60c7667e4c4dcdb9b2348fe862.tar.gz
core-1e7c707282d28e60c7667e4c4dcdb9b2348fe862.zip
Resolves: tdf#147817 ignore date acceptance pattern with numeric ambiguity
i.e. if it matches numeric with decimal separator; may had been added as user-defined pattern to configuration or resulted from locale merge of default locale and format's locale. Change-Id: Ie42a65fac26e8ddc6898a53ee3bec8695ace9a70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141684 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit cf429e79367775a03c2ca89ed57d3de88bd2c6dc) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141706 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
-rw-r--r--svl/source/numbers/zforfind.cxx14
1 files changed, 13 insertions, 1 deletions
diff --git a/svl/source/numbers/zforfind.cxx b/svl/source/numbers/zforfind.cxx
index 8bf00b3e196b..e3d8c752eeb1 100644
--- a/svl/source/numbers/zforfind.cxx
+++ b/svl/source/numbers/zforfind.cxx
@@ -1356,10 +1356,22 @@ bool ImpSvNumberInputScan::IsAcceptedDatePattern( sal_uInt16 nStartPatternAt )
for (sal_Int32 nPattern=0; nPattern < sDateAcceptancePatterns.getLength(); ++nPattern)
{
+ const OUString& rPat = sDateAcceptancePatterns[nPattern];
+ if (rPat.getLength() == 3)
+ {
+ // Ignore a pattern that would match numeric input with decimal
+ // separator. It may had been read from configuration or resulted
+ // from the locales' patterns concatenation above.
+ if ( rPat[1] == pFormatter->GetLocaleData()->getNumDecimalSep().toChar()
+ || rPat[1] == pFormatter->GetLocaleData()->getNumDecimalSepAlt().toChar())
+ {
+ SAL_WARN("svl.numbers", "ignoring date acceptance pattern with decimal separator ambiguity: " << rPat);
+ continue; // for, next pattern
+ }
+ }
sal_uInt16 nNext = nDatePatternStart;
nDatePatternNumbers = 0;
bool bOk = true;
- const OUString& rPat = sDateAcceptancePatterns[nPattern];
sal_Int32 nPat = 0;
for ( ; nPat < rPat.getLength() && bOk && nNext < nStringsCnt; ++nPat, ++nNext)
{