Kaydet (Commit) f68eed15 authored tarafından Eike Rathke's avatar Eike Rathke

do not replace a General format with a General format

Found when investigating fdo#79228 which was caused by the ScPatternAttr
change due to the number format being applied.

Change-Id: Ieada557f5e194401a9ce255f26d71d36e0704f35
üst cb0d44a0
......@@ -1682,10 +1682,21 @@ void ScFormulaCell::InterpretTail( ScInterpretTailParameter eTailParam )
nFormatIndex = ScGlobal::GetStandardFormat(*pDocument->GetFormatTable(),
nFormatIndex, nFormatType);
// set number format explicitly
pDocument->SetNumberFormat( aPos, nFormatIndex );
// Do not replace a General format (which was the reason why
// mbNeedsNumberFormat was set) with a General format.
// 1. setting a format has quite some overhead in the
// ScPatternAttr/ScAttrArray handling, even if identical.
// 2. the General formats may be of different locales.
// XXX if mbNeedsNumberFormat was set even if the current format
// was not General then we'd have to obtain the current format here
// and check at least the types.
if ((nFormatIndex % SV_COUNTRY_LANGUAGE_OFFSET) != 0)
{
// set number format explicitly
pDocument->SetNumberFormat( aPos, nFormatIndex );
bChanged = true;
}
bChanged = true;
mbNeedsNumberFormat = false;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment