tdf#100834 Treat string between integer and fraction as delimiter
In fraction number format, strings located between integer and fraction should be treated as blank delimiter Change-Id: I83e78fb0fe08178ee194fc2a213ee260ce15c639 Reviewed-on: https://gerrit.libreoffice.org/27128 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
This commit is contained in:
parent
d32dab699f
commit
b719a57d5f
@ -4707,10 +4707,12 @@ OUString SvNumberformat::GetMappedFormatstring( const NfKeywordTable& rKeywords,
|
||||
case NF_SYMBOLTYPE_TIME100SECSEP :
|
||||
aStr.append( rLocWrp.getTime100SecSep() );
|
||||
break;
|
||||
case NF_SYMBOLTYPE_FRACBLANK :
|
||||
case NF_SYMBOLTYPE_STRING :
|
||||
if ( pStr[j].getLength() == 1 )
|
||||
{
|
||||
aStr.append( '\\' );
|
||||
if ( pType[j] == NF_SYMBOLTYPE_STRING )
|
||||
aStr.append( '\\' );
|
||||
aStr.append( pStr[j] );
|
||||
}
|
||||
else
|
||||
|
@ -1651,7 +1651,7 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString )
|
||||
nTypeArray[i] = NF_SYMBOLTYPE_EXP;
|
||||
}
|
||||
else if (eScannedType == css::util::NumberFormat::FRACTION &&
|
||||
sStrArray[i][0] == ' ')
|
||||
(sStrArray[i][0] == ' ' || ( nTypeArray[i] == NF_SYMBOLTYPE_STRING && (sStrArray[i][0] < '0' || sStrArray[i][0] > '9') ) ) )
|
||||
{
|
||||
if (!bBlank && !bFrac) // Not double or after a /
|
||||
{
|
||||
@ -1659,12 +1659,17 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString )
|
||||
{
|
||||
return nPos; // Error
|
||||
}
|
||||
bBlank = true;
|
||||
nBlankPos = i;
|
||||
nCntPre = nCounter;
|
||||
nCounter = 0;
|
||||
if (sStrArray[i][0] == ' ' || nCounter > 0 ) // treat string as integer/fraction delimiter only if there is integer
|
||||
{
|
||||
bBlank = true;
|
||||
nBlankPos = i;
|
||||
nCntPre = nCounter;
|
||||
nCounter = 0;
|
||||
nTypeArray[i] = NF_SYMBOLTYPE_FRACBLANK;
|
||||
}
|
||||
}
|
||||
nTypeArray[i] = NF_SYMBOLTYPE_FRACBLANK;
|
||||
else if ( sStrArray[i][0] == ' ' )
|
||||
nTypeArray[i] = NF_SYMBOLTYPE_FRACBLANK;
|
||||
}
|
||||
else if (nTypeArray[i] == NF_KEY_THAI_T)
|
||||
{
|
||||
@ -2691,6 +2696,7 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString )
|
||||
switch ( nTypeArray[i] )
|
||||
{
|
||||
case NF_SYMBOLTYPE_STRING :
|
||||
case NF_SYMBOLTYPE_FRACBLANK :
|
||||
nStringPos = rString.getLength();
|
||||
do
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user