summaryrefslogtreecommitdiff
path: root/svl
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2017-08-29 18:24:05 +0200
committerEike Rathke <erack@redhat.com>2017-08-30 11:06:36 +0200
commitae6c5083f04f8fad299cdc7a6b6558f1270cc619 (patch)
treec570e8c7d4f50064e9b5b12872b4f220c9140dbf /svl
parent008199ee75ed4edc250270628f6e6cb1677dbbc9 (diff)
Related: tdf#91758 don't remember nCanForceToIso8601 state
CanForceToIso8601() can be called twice for different DateOrder. Change-Id: I656d499b8a557814326fe71333fcb644c7d3e909
Diffstat (limited to 'svl')
-rw-r--r--svl/source/numbers/zforfind.cxx40
-rw-r--r--svl/source/numbers/zforfind.hxx16
2 files changed, 18 insertions, 38 deletions
diff --git a/svl/source/numbers/zforfind.cxx b/svl/source/numbers/zforfind.cxx
index cc4f160ee1d0..2c6bf47ce297 100644
--- a/svl/source/numbers/zforfind.cxx
+++ b/svl/source/numbers/zforfind.cxx
@@ -124,7 +124,6 @@ void ImpSvNumberInputScan::Reset()
nAcceptedDatePattern = -2;
nDatePatternStart = 0;
nDatePatternNumbers = 0;
- nCanForceToIso8601 = 0;
for (sal_uInt32 i = 0; i < SV_MAX_COUNT_INPUT_STRINGS; i++)
{
@@ -1037,42 +1036,39 @@ bool ImpSvNumberInputScan::MayBeIso8601()
bool ImpSvNumberInputScan::CanForceToIso8601( DateOrder eDateOrder )
{
- if (nCanForceToIso8601 == 0)
+ int nCanForceToIso8601 = 0;
+ if (!MayBeIso8601())
{
+ nCanForceToIso8601 = 1;
+ }
+ else if (nMayBeIso8601 >= 3)
+ {
+ nCanForceToIso8601 = 2; // at least 3 digits in year
+ }
+ else
+ {
+ nCanForceToIso8601 = 1;
+ }
- if (!MayBeIso8601())
- {
- nCanForceToIso8601 = 1;
- }
- else if (nMayBeIso8601 >= 3)
- {
- nCanForceToIso8601 = 2; // at least 3 digits in year
- }
- else
- {
- nCanForceToIso8601 = 1;
- }
-
- sal_Int32 n;
- switch (eDateOrder)
- {
+ sal_Int32 n;
+ switch (eDateOrder)
+ {
case DateOrder::DMY: // "day" value out of range => ISO 8601 year
if ((n = sStrArray[nNums[0]].toInt32()) < 1 || n > 31)
{
nCanForceToIso8601 = 2;
}
- break;
+ break;
case DateOrder::MDY: // "month" value out of range => ISO 8601 year
if ((n = sStrArray[nNums[0]].toInt32()) < 1 || n > 12)
{
nCanForceToIso8601 = 2;
}
- break;
+ break;
case DateOrder::YMD: // always possible
nCanForceToIso8601 = 2;
- break;
+ break;
default: break;
- }
}
return nCanForceToIso8601 > 1;
}
diff --git a/svl/source/numbers/zforfind.hxx b/svl/source/numbers/zforfind.hxx
index 0ea6c18d03bb..6a4ebf7ee9f2 100644
--- a/svl/source/numbers/zforfind.hxx
+++ b/svl/source/numbers/zforfind.hxx
@@ -62,12 +62,6 @@ public:
/** Whether input can be forced to ISO 8601 format.
Depends on locale's date separator and a specific date format order.
-
- @param eDateOrder
- Evaluated only on first call during one scan process, subsequent
- calls return state of nCanForceToIso8601!
-
- @see nCanForceToIso8601
*/
bool CanForceToIso8601( DateOrder eDateOrder );
@@ -143,16 +137,6 @@ private:
*/
sal_uInt8 nMayBeIso8601;
- /** State of ISO 8601 can be forced.
-
- 0:= don't know yet
- 1:= no
- 2:= yes
-
- @see CanForceToIso8601()
- */
- sal_uInt8 nCanForceToIso8601;
-
/** State of dd-month-yy or yy-month-dd detection, with month name.
0:= don't know yet