sc/source/core/tool/interpr4.cxx | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)
New commits: commit 6466fdc869116384025c8a84e1591de7c1dbd9ee Author: Noel Power <noel.po...@suse.com> Date: Tue Jul 9 16:42:01 2013 +0100 fix for fdo#51990 process external refs for macros (cherry picked from commit f3a0dd8fbc3ead1fe1ec1faec3377cedaacadd93) and also cherry pick from commit adab0134662562298ff13e7fe564623af4bc33da ) use GetMatrix instead of manually disambiguating External and normal refs and cherry-pick further tweak from commit 35f9cd513d6dd796a5bc54c51df3961a674addcb Change-Id: I4fe1d7240f277b532e11d2fbb5aa18f54f2c4695 4fe1d7240f277b532e11d2fbb5aa18f54f2c4695 Reviewed-on: https://gerrit.libreoffice.org/4800 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Eike Rathke <er...@redhat.com> diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx index 1f789b9..5662baf 100644 --- a/sc/source/core/tool/interpr4.cxx +++ b/sc/source/core/tool/interpr4.cxx @@ -3215,6 +3215,21 @@ void ScInterpreter::ScMacro() case svString: pPar->PutString( GetString() ); break; + case svExternalSingleRef: + { + ScExternalRefCache::TokenRef pToken; + PopExternalSingleRef(pToken); + if ( pToken->GetType() == svString ) + pPar->PutString( pToken->GetString() ); + else if ( pToken->GetType() == svDouble ) + pPar->PutDouble( pToken->GetDouble() ); + else + { + SetError( errIllegalArgument ); + bOk = false; + } + } + break; case svSingleRef: { ScAddress aAdr; @@ -3275,11 +3290,12 @@ void ScInterpreter::ScMacro() } } break; + case svExternalDoubleRef: case svMatrix: { - ScMatrixRef pMat = PopMatrix(); + ScMatrixRef pMat = GetMatrix(); SCSIZE nC, nR; - if (pMat) + if (pMat && !nGlobalError) { pMat->GetDimensions(nC, nR); SbxDimArrayRef refArray = new SbxDimArray; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits