diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2011-07-07 12:05:01 +0200 |
---|---|---|
committer | Katarina Machalkova <kmachalkova@suse.cz> | 2011-07-08 14:58:06 +0200 |
commit | b74f2e0c4ff7a0f8a0b5c031825aef7a7d211daf (patch) | |
tree | a5a99e40a8aa832f5bd31b9bfddb4197eddac7e5 | |
parent | 1d66d2233cc4b458d3ad3bdad8682828f5fb321a (diff) |
fdo#38963: crash in number format dialog
Signed-off-by: Katarina Machalkova <kmachalkova@novell.com>
-rw-r--r-- | svl/source/numbers/zforlist.cxx | 59 |
1 files changed, 32 insertions, 27 deletions
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx index ae7cfaebb6..2a62b2bdd7 100644 --- a/svl/source/numbers/zforlist.cxx +++ b/svl/source/numbers/zforlist.cxx @@ -2749,7 +2749,6 @@ void SvNumberFormatter::GenerateFormat(String& sString, const String& rThSep = GetNumThousandSep(); SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nIndex); - sal_Bool insertBrackets = pFormat->IsNegativeInBracket(); if (nAnzLeading == 0) { @@ -2843,36 +2842,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; + } } } |