diff options
author | Laurent Balland-Poirier <laurent.balland-poirier@laposte.net> | 2016-08-03 11:56:16 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2016-08-05 00:06:58 +0000 |
commit | 39e300612c97b7742c8d8417d4dc6c0022cfa040 (patch) | |
tree | 72502908353ad859f8a748c47436d1893697f444 | |
parent | a4e81b7c313e5cb0e0f23a8605502b4b0b7f599e (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>
-rw-r--r-- | svl/source/numbers/zforscan.cxx | 10 |
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; |