Hi Christina, On Wednesday, 2013-02-06 13:44:09 +0100, Christina Roßmanith wrote:
> >>>- for (xub_StrLen i = (xub_StrLen)(aStr.Len()-1); i > 0;
> >>>i++ )
> >>>+ for (sal_Int32 i = aStr.getLength()-1; i > 0; i++ )
> >>> {
> >>>- if ( (aStr.GetChar( i ) >= '0') && (aStr.GetChar( i )
> >>><= '9') )
> >>>+ if ( (aStr[i] >= '0') && (aStr[i] <= '9') )
> >>> break;
> >>>- else if ( aStr.GetChar( i ) == '-' )
> >>>+ else if ( aStr[i] == '-' )
> >>> {
> >>> bNegative = sal_True;
> >>> break;
> >>In
> >>
> >>for (sal_Int32 i = aStr.getLength()-1; i > 0; i++ )
> >>
> >>i starts with at least -1 is tested to be non negative and
> >>incremented. Is this code ever used??? Or am I failing to see the
> >>magic behind the scenes?
> >No, that code doesn't make sense and to me looks it should be
> >
> > for (sal_Int32 i = aStr.getLength()-1; i > 0; --i)
> >
> >Awkward guessing of negative currency formats anyway..
> Do you think it is ever used?
It probably is, when a currency amount is entered in such field.
> It would be an endless loop, wouldn't it?!?
Not really endless ;-) in some cases the old code would access invalid
memory and probably bail out earlier..
In other cases we were lucky if aStr ended in a digit or '-'
> The question is modify to --i or remove some code.
Changing to --i at least does what the code aimed for, detecting
backwards if a character is digit or '-' for these nFormat values:
> + if ( (nFormat == 3) || (nFormat == 6) || // $1- || 1-$
> + (nFormat == 7) || (nFormat == 10) ) // 1$- || 1 $-
>
> I've added them as a comment because the numerical codes for the
> various formats are quite non intuitive.
Agreed, it's a legacy from pre-i18n-framework-times and we could have
proper named constants instead.
Eike
--
LibreOffice Calc developer. Number formatter stricken i18n transpositionizer.
New GnuPG key 0x65632D3A : 2265 D7F3 A7B0 95CC 3918 630B 6A6C D5B7 6563 2D3A
Old GnuPG key 0x293C05FD : 997A 4C60 CE41 0149 0DB3 9E96 2F1A D073 293C 05FD
Support the FSFE, care about Free Software! https://fsfe.org/support/?erack
pgpNqE8blcAZ4.pgp
Description: PGP signature
_______________________________________________ LibreOffice mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice
