[Libreoffice-commits] .: svl/source

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Thu Jul 7 03:10:44 PDT 2011


 svl/source/numbers/zforlist.cxx |   59 +++++++++++++++++++++-------------------
 1 file changed, 32 insertions(+), 27 deletions(-)

New commits:
commit 368227ac441644602de197ee0d329f3ea997f9ca
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Thu Jul 7 12:05:01 2011 +0200

    fdo#38963: crash in number format dialog

diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index 2f28380..eede4a1 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -2748,7 +2748,6 @@ void SvNumberFormatter::GenerateFormat(String& sString,
     const String& rThSep = GetNumThousandSep();
 
     SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nIndex);
-    sal_Bool insertBrackets = pFormat->IsNegativeInBracket();
 
     if (nAnzLeading == 0)
     {
@@ -2842,36 +2841,42 @@ void SvNumberFormatter::GenerateFormat(String& sString,
             sString += ';';
         sString += sNegStr;
     }
-    if ( (IsRed || insertBrackets ) && eType != NUMBERFORMAT_CURRENCY)
+    if (eType != NUMBERFORMAT_CURRENCY)
     {
-        String sTmpStr = sString;
-
-        if ( pFormat->HasPositiveBracketPlaceholder() )
+        bool insertBrackets = false;
+        if ( eType != NUMBERFORMAT_UNDEFINED)
+            insertBrackets = pFormat->IsNegativeInBracket();
+        if (IsRed || insertBrackets)
         {
-             sTmpStr += '_';
-             sTmpStr += ')';
-        }
-        sTmpStr += ';';
+            String sTmpStr = sString;
 
-        if (IsRed)
-        {
-            sTmpStr += '[';
-            sTmpStr += pFormatScanner->GetRedString();
-            sTmpStr += ']';
-        }
+            if ( pFormat->HasPositiveBracketPlaceholder() )
+            {
+                 sTmpStr += '_';
+                 sTmpStr += ')';
+            }
+            sTmpStr += ';';
 
-        if (insertBrackets)
-        {
-            sTmpStr += '(';
-            sTmpStr += sString;
-            sTmpStr += ')';
-        }
-        else
-        {
-            sTmpStr += '-';
-            sTmpStr +=sString;
-        }
-        sString = sTmpStr;
+            if (IsRed)
+            {
+                sTmpStr += '[';
+                sTmpStr += pFormatScanner->GetRedString();
+                sTmpStr += ']';
+            }
+
+            if (insertBrackets)
+            {
+                sTmpStr += '(';
+                sTmpStr += sString;
+                sTmpStr += ')';
+            }
+            else
+            {
+                sTmpStr += '-';
+                sTmpStr +=sString;
+            }
+            sString = sTmpStr;
+            }
     }
 }
 


More information about the Libreoffice-commits mailing list