diff options
Diffstat (limited to 'svl')
-rw-r--r-- | svl/source/numbers/zformat.cxx | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index 94fa2c085959..45c1f29ae3e3 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -1292,6 +1292,22 @@ sal_Unicode toUniChar(sal_uInt8 n) return sal_Unicode(c); } +bool IsSingleSymbol(OUStringBuffer& rStringBuffer, xub_StrLen nPos) +{ + bool ret = false; + while(nPos > 0) + { + if(rStringBuffer[nPos] == '*' || rStringBuffer[nPos] == '\\' || rStringBuffer[nPos] == '_') + { + ret = !ret; + nPos--; + } + else + return ret; + } + return ret; +} + } // namespace OUString SvNumberformat::LocaleType::generateCode() const @@ -1540,7 +1556,7 @@ short SvNumberformat::ImpNextSymbol(OUStringBuffer& rString, } break; case SsGetString: - if (cToken == ';') + if (cToken == ';' && (nPos>=2) && !IsSingleSymbol(rString, nPos-2)) { eState = SsStop; } |