fdo#75815: Adjust external references here too.
Adjusting external references are much simpler than adjusting internal
ones since we don't need to worry about deleted references etc.
Change-Id: I82111e383e1fc6976ef08c1438c3dd916a249af6
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index eee7c9d2..8057224 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -2751,6 +2751,25 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnShift( const sc::RefUpdateCon
rRef.SetRange(aAbs, aNewPos);
}
break;
case svExternalSingleRef:
{
// For external reference, just reset the reference with
// respect to the new cell position.
ScToken* pToken = static_cast<ScToken*>(*p);
ScSingleRefData& rRef = pToken->GetSingleRef();
ScAddress aAbs = rRef.toAbs(rOldPos);
rRef.SetAddress(aAbs, aNewPos);
}
break;
case svExternalDoubleRef:
{
// Same as above.
ScToken* pToken = static_cast<ScToken*>(*p);
ScComplexRefData& rRef = pToken->GetDoubleRef();
ScRange aAbs = rRef.toAbs(rOldPos);
rRef.SetRange(aAbs, aNewPos);
}
break;
case svIndex:
{
const formula::FormulaToken* pToken = *p;