summaryrefslogtreecommitdiff
path: root/svl/source
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2012-11-13 14:23:01 +0100
committerPetr Mladek <pmladek@suse.cz>2012-11-20 16:40:00 +0100
commit2fc41695d7b62ecb20ac9f28466745f90b094348 (patch)
treebd8aff09851eaa923ceb48e66baedaffcb02e999 /svl/source
parentc31270abc1605a9de505f4753f1192520fd4130d (diff)
resolved fdo#55369 accept fraction input if preset
Accept fraction input without integer portion if the format was preset as fraction, e.g. 1/5 instead of 0 1/5 and don't force to date. (cherry picked from commit 5391bd1e54157457abe1098b29f067d6e0059113) Change-Id: I326ec85b163962425efa074119405ec1395af481 Reviewed-on: https://gerrit.libreoffice.org/1045 Reviewed-by: Petr Mladek <pmladek@suse.cz> Tested-by: Petr Mladek <pmladek@suse.cz>
Diffstat (limited to 'svl/source')
-rw-r--r--svl/source/numbers/zforfind.cxx22
1 files changed, 16 insertions, 6 deletions
diff --git a/svl/source/numbers/zforfind.cxx b/svl/source/numbers/zforfind.cxx
index eae56daf0eb5..ef6015e409aa 100644
--- a/svl/source/numbers/zforfind.cxx
+++ b/svl/source/numbers/zforfind.cxx
@@ -2025,14 +2025,24 @@ bool ImpSvNumberInputScan::ScanMidString( const String& rString,
{
if ( eScannedType != NUMBERFORMAT_UNDEFINED // already another type
&& eScannedType != NUMBERFORMAT_DATE) // except date
- return MatchedReturn(); // => jan/31/1994
- else if ( eScannedType != NUMBERFORMAT_DATE // analyzed date until now
- && ( eSetType == NUMBERFORMAT_FRACTION // and preset was fraction
- || (nAnzNums == 3 // or 3 numbers
- && nStringPos > 2) ) ) // and what ???
+ return MatchedReturn(); // => jan/31/1994
+ else if (eScannedType != NUMBERFORMAT_DATE // analyzed no date until now
+ && ( eSetType == NUMBERFORMAT_FRACTION // and preset was fraction
+ || (nAnzNums == 3 // or 3 numbers
+ && (nStringPos == 3 // and 3rd string particle
+ || (nStringPos == 4 // or 4th
+ && nSign))))) // if signed
{
SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_FRACTION; // !!! it IS a fraction
+ if (nPos == rString.Len())
+ {
+ eScannedType = NUMBERFORMAT_FRACTION; // !!! it IS a fraction (so far)
+ if (eSetType == NUMBERFORMAT_FRACTION
+ && nAnzNums == 2
+ && (nStringPos == 1 // for 4/5
+ || (nStringPos == 2 && nSign))) // or signed -4/5
+ return true; // don't fall into date trap
+ }
}
else
nPos--; // put '/' back