Hi,

when changing (Xub)String to OUString I came across a strange for-loop. You find it at the end of the quotation. I've kept some context... (continue below the quotation)
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index 387acea..e632b4a 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -89,29 +89,29 @@
// ----------------------------------------------------------------------- -static sal_Bool ImplNumericGetValue( const XubString& rStr, double& rValue,
+static sal_Bool ImplNumericGetValue( const OUString& rStr, double& rValue,
                                   sal_uInt16 nDecDigits, const 
LocaleDataWrapper& rLocaleDataWrappper,
                                   sal_Bool bCurrency = sal_False )
  {
-    XubString   aStr = rStr;
-    XubString   aStr1;
+    OUString   aStr = rStr;
+    OUString   aStr1;
      rtl::OUStringBuffer aStr2;
      sal_Bool        bNegative = sal_False;
-    xub_StrLen  nDecPos;
+    sal_Int32  nDecPos;
// react on empty string
-    if ( !rStr.Len() )
+    if ( rStr.isEmpty() )
          return sal_False;
// remove leading and trailing spaces
-    aStr = string::strip(aStr, ' ');
+    aStr = aStr.trim();
// find position of decimal point
-    nDecPos = aStr.Search( rLocaleDataWrappper.getNumDecimalSep() );
-    if ( nDecPos != STRING_NOTFOUND )
+    nDecPos = aStr.indexOf( rLocaleDataWrappper.getNumDecimalSep() );
+    if ( nDecPos >= 0)
      {
-        aStr1 = aStr.Copy( 0, nDecPos );
-        aStr2.append(aStr.Copy(nDecPos+1));
+        aStr1 = aStr.copy( 0, nDecPos );
+        aStr2.append(aStr.getStr()+nDecPos+1);
      }
      else
          aStr1 = aStr;
@@ -119,32 +119,32 @@
      // negative?
      if ( bCurrency )
      {
-        if ( (aStr.GetChar( 0 ) == '(') && (aStr.GetChar( aStr.Len()-1 ) == 
')') )
+        if ( aStr.startsWith("(") && aStr.endsWith(")") )
              bNegative = sal_True;
          if ( !bNegative )
          {
-            for (xub_StrLen i=0; i < aStr.Len(); i++ )
+            for (sal_Int32 i=0; i < aStr.getLength(); 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;
                  }
              }
          }
-        if ( !bNegative && bCurrency && aStr.Len() )
+        if ( !bNegative && bCurrency && !aStr.isEmpty() )
          {
              sal_uInt16 nFormat = rLocaleDataWrappper.getCurrNegativeFormat();
-            if ( (nFormat == 3) || (nFormat == 6)  ||
-                 (nFormat == 7) || (nFormat == 10) )
+            if ( (nFormat == 3) || (nFormat == 6)  || // $1- || 1-$
+                 (nFormat == 7) || (nFormat == 10) )  // 1$- || 1 $-
              {
-                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?

Christina
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to