From 0d4d86b8f40d88f51a74e8f183e2ebdfa9bed4ee Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Mon, 9 Sep 2002 11:56:10 +0000 Subject: [PATCH] #102371# ScanStartString: match against format string only if start string is not a sign character --- svtools/source/numbers/zforfind.cxx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/svtools/source/numbers/zforfind.cxx b/svtools/source/numbers/zforfind.cxx index e38d0b20afd0..75c911a5fd97 100644 --- a/svtools/source/numbers/zforfind.cxx +++ b/svtools/source/numbers/zforfind.cxx @@ -2,9 +2,9 @@ * * $RCSfile: zforfind.cxx,v $ * - * $Revision: 1.25 $ + * $Revision: 1.26 $ * - * last change: $Author: er $ $Date: 2002-09-05 18:00:42 $ + * last change: $Author: er $ $Date: 2002-09-09 12:56:10 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -1379,9 +1379,10 @@ BOOL ImpSvNumberInputScan::ScanStartString( const String& rString, if ( nSign = GetSign(rString, nPos) ) // sign? SkipBlanks(rString, nPos); - if ( nMatchedAllStrings ) - { // Match against format in any case, so later on for a "1-2-3-4" input - // we may distinguish between a y-m-d (or similar) date and a 0-0-0-0 + // #102371# match against format string only if start string is not a sign character + if ( nMatchedAllStrings && !(nSign && rString.Len() == 1) ) + { // Match against format in any case, so later on for a "x1-2-3" input + // we may distinguish between a xy-m-d (or similar) date and a x0-0-0 // format. No sign detection here! if ( ScanStringNumFor( rString, nPos, pFormat, 0, TRUE ) ) nMatchedAllStrings |= nMatchedStartString; @@ -2456,6 +2457,7 @@ BOOL ImpSvNumberInputScan::IsNumberFormat( case NUMBERFORMAT_CURRENCY: case NUMBERFORMAT_NUMBER: case NUMBERFORMAT_SCIENTIFIC: + case NUMBERFORMAT_DEFINED: // if no category detected handle as number { if ( nDecPos == 1 ) // . at start sResString.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "0." ) ); @@ -2590,6 +2592,8 @@ BOOL ImpSvNumberInputScan::IsNumberFormat( break; default: + DBG_ERRORFILE( "Some number recognized but what's it?" ); + fOutNumber = 0.0; break; } }