Hello, I fear I'm a bit late for this patch to be included into 3.4.2 but at least we should push it to 3.4
It fixes that we can't use database ranges in formulas because ScNameToken always used ocName but it could also be ocDBArea for database ranges. It's nothing special, just added an optional parameter to the constructor of ScNameToken that will be passed to ScToken. Regards, Markus
From 9e098c065220ff56497c25edc0a92df5462fafc5 Mon Sep 17 00:00:00 2001 From: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue, 19 Jul 2011 13:09:20 +0200 Subject: [PATCH] fix for fdo#39333: database ranges don't work in formulas --- sc/inc/token.hxx | 2 +- sc/source/core/tool/token.cxx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sc/inc/token.hxx b/sc/inc/token.hxx index 78364e9..ce16c17 100644 --- a/sc/inc/token.hxx +++ b/sc/inc/token.hxx @@ -244,7 +244,7 @@ private: private: ScNameToken(); // disabled public: - ScNameToken(sal_uInt16 nIndex, bool bGlobal); + ScNameToken(sal_uInt16 nIndex, bool bGlobal, OpCode eOpCode = ocName); ScNameToken(const ScNameToken& r); virtual ~ScNameToken(); virtual sal_uInt8 GetByte() const; diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index 0153ca4..1cf448e 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -380,7 +380,7 @@ FormulaToken* ScRawToken::CreateToken() const IF_NOT_OPCODE_ERROR( ocPush, ScMatrixToken); return new ScMatrixToken( pMat ); case svIndex : - return new ScNameToken(name.nIndex, name.bGlobal); + return new ScNameToken(name.nIndex, name.bGlobal, eOp); case svExternalSingleRef: { String aTabName(extref.cTabName); @@ -949,8 +949,8 @@ bool ScExternalDoubleRefToken::operator ==( const FormulaToken& r ) const // ============================================================================ -ScNameToken::ScNameToken(sal_uInt16 nIndex, bool bGlobal) : - ScToken(svIndex, ocName), mnIndex(nIndex), mbGlobal(bGlobal) {} +ScNameToken::ScNameToken(sal_uInt16 nIndex, bool bGlobal, OpCode eOpCode) : + ScToken(svIndex, eOpCode), mnIndex(nIndex), mbGlobal(bGlobal) {} ScNameToken::ScNameToken(const ScNameToken& r) : ScToken(r), mnIndex(r.mnIndex), mbGlobal(r.mbGlobal) {} -- 1.7.3.4
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice