diff options
author | Eike Rathke <erack@redhat.com> | 2015-06-19 23:57:43 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2015-06-21 19:21:07 +0200 |
commit | d461f601f49abfd47ae398388b70c4e10ffbbc2f (patch) | |
tree | e2e69c8cd861190f2331600494e03f538f12f9cb /sc | |
parent | 85b7436b2c2060bb1168cc37eee537de417795e0 (diff) |
TableRef: generated reference's column relativity follows column specifier
Change-Id: Ie0781bf5ebeb4cec0e3bb96f8c471e469b1b223a
(cherry picked from commit afa74bb6e8b828bdc08b8b214bce9c9c3797abdb)
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/tool/compiler.cxx | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index 662b6fdf0e0b..23b9d9f03f6b 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -5079,6 +5079,8 @@ bool ScCompiler::HandleTableRef() break; } bool bColumnRange = false; + bool bCol1Rel = false; + bool bCol2Rel = false; int nLevel = 0; if (bForwardToClose && GetTokenIfOpCode( ocTableRefOpen)) { @@ -5128,6 +5130,7 @@ bool ScCompiler::HandleTableRef() if (eState == sOpen && p->GetType() == svSingleRef) { bColumnRange = true; + bCol1Rel = p->GetSingleRef()->IsColRel(); eState = sLast; } else @@ -5173,6 +5176,7 @@ bool ScCompiler::HandleTableRef() { aColRange.aEnd = mpToken->GetSingleRef()->toAbs( aPos); aColRange.Justify(); + bCol2Rel = mpToken->GetSingleRef()->IsColRel(); } } } @@ -5194,7 +5198,7 @@ bool ScCompiler::HandleTableRef() { ScSingleRefData aRefData; aRefData.InitFlags(); - aRefData.SetColRel( true); + aRefData.SetColRel( bCol1Rel); if (eItem == ScTableRefToken::THIS_ROW) { aRefData.SetRowRel( true); @@ -5212,8 +5216,8 @@ bool ScCompiler::HandleTableRef() { ScComplexRefData aRefData; aRefData.InitFlags(); - aRefData.Ref1.SetColRel( true); - aRefData.Ref2.SetColRel( true); + aRefData.Ref1.SetColRel( bCol1Rel); + aRefData.Ref2.SetColRel( bCol2Rel); if (eItem == ScTableRefToken::THIS_ROW) { aRefData.Ref1.SetRowRel( true); |