[PATCH] replace (Xub)String with OUString in vcl

Eike Rathke erack at redhat.com
Wed Feb 6 05:04:29 PST 2013


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20130206/cc84aadb/attachment.pgp>


More information about the LibreOffice mailing list