summaryrefslogtreecommitdiff
path: root/svl
diff options
context:
space:
mode:
authorLaurent Balland-Poirier <laurent.balland-poirier@laposte.net>2016-08-03 11:56:16 +0200
committerEike Rathke <erack@redhat.com>2016-08-05 00:06:58 +0000
commit39e300612c97b7742c8d8417d4dc6c0022cfa040 (patch)
tree72502908353ad859f8a748c47436d1893697f444 /svl
parenta4e81b7c313e5cb0e0f23a8605502b4b0b7f599e (diff)
tdf#101147 New approach to fix minute/month detection
Other formats may be differently interpreted HH YY/MM => Month expected HH DD/MM => Month expected Change-Id: Iabb17911bf2907c02b6b898052b6933692f8074a Reviewed-on: https://gerrit.libreoffice.org/27823 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'svl')
-rw-r--r--svl/source/numbers/zforscan.cxx10
1 files changed, 4 insertions, 6 deletions
diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx
index a59617dd4d23..d0a462e90d85 100644
--- a/svl/source/numbers/zforscan.cxx
+++ b/svl/source/numbers/zforscan.cxx
@@ -1162,6 +1162,8 @@ sal_Int32 ImpSvNumberformatScan::ScanType()
That are the Excel rules. BUT, we break it because certainly
in something like {HH YYYY-MM-DD} the MM is NOT meant to be
minute, so not if MM is between YY and DD or DD and YY.
+ Actually not if any date specific keyword followed a time
+ setting keyword.
*/
nIndexPre = PreviousKeyword(i);
nIndexNex = NextKeyword(i);
@@ -1169,12 +1171,7 @@ sal_Int32 ImpSvNumberformatScan::ScanType()
nIndexPre == NF_KEY_HH || // HH
nIndexNex == NF_KEY_S || // S
nIndexNex == NF_KEY_SS || // SS
- (bIsTimeDetected &&
- !(((nIndexPre == NF_KEY_YY || nIndexPre == NF_KEY_YYYY) &&
- (nIndexNex == NF_KEY_D || nIndexNex == NF_KEY_DD)) ||
- ((nIndexPre == NF_KEY_D || nIndexPre == NF_KEY_DD) &&
- (nIndexNex == NF_KEY_YY || nIndexNex == NF_KEY_YYYY)))
- ) || // tdf#101147
+ bIsTimeDetected || // tdf#101147
PreviousChar(i) == '[' ) // [M
{
eNewType = css::util::NumberFormat::TIME;
@@ -1212,6 +1209,7 @@ sal_Int32 ImpSvNumberformatScan::ScanType()
case NF_KEY_R : // R
case NF_KEY_RR : // RR
eNewType = css::util::NumberFormat::DATE;
+ bIsTimeDetected = false;
break;
case NF_KEY_CCC: // CCC
eNewType = css::util::NumberFormat::CURRENCY;