Resolves: #i119943 Underline can not work with ";" in format code

the semicolon will always be regarded as separator

Patch by: Zhang Lu
Review by: Wang Lei(cherry picked from commit 953b282dbb2552f89ec25455ec838f752abd6a2d)

Conflicts:
	svl/source/numbers/zformat.cxx

Resolves: #i119943 Underline can not work with ";" in format code

the semicolon will always be regarded as separator

Patch by: Zhang Lu
Review by: Wang Lei(cherry picked from commit 423e8bc4e684a0790765aa2898bc2843538bc114)

Signed-off-by: Fridrich Štrba <fridrich.strba@bluewin.ch>

Conflicts:
	svl/source/numbers/zformat.cxx

Change-Id: I1112739fb27939a66d22f198ec9c3a34f383bd9c
This commit is contained in:
Wang Lei
2013-03-13 09:18:51 +01:00
committed by Fridrich Štrba
parent 8722f0e7ef
commit c26bae0b16
+17 -1
View File
@@ -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;
}