summaryrefslogtreecommitdiff
path: root/sc/source/core/tool/compiler.cxx
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-06-19 23:57:43 +0200
committerEike Rathke <erack@redhat.com>2015-06-21 18:36:18 +0200
commitafa74bb6e8b828bdc08b8b214bce9c9c3797abdb (patch)
tree02d797baaf1e756939956827d955f3aa7fe6f486 /sc/source/core/tool/compiler.cxx
parent2a5f48f7f48804d5ac7d67c5a4f3f28315815a7a (diff)
TableRef: generated reference's column relativity follows column specifier
Change-Id: Ie0781bf5ebeb4cec0e3bb96f8c471e469b1b223a
Diffstat (limited to 'sc/source/core/tool/compiler.cxx')
-rw-r--r--sc/source/core/tool/compiler.cxx10
1 files changed, 7 insertions, 3 deletions
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 2d7b37dd849d..876cc7b4981a 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -5078,6 +5078,8 @@ bool ScCompiler::HandleTableRef()
break;
}
bool bColumnRange = false;
+ bool bCol1Rel = false;
+ bool bCol2Rel = false;
int nLevel = 0;
if (bForwardToClose && GetTokenIfOpCode( ocTableRefOpen))
{
@@ -5127,6 +5129,7 @@ bool ScCompiler::HandleTableRef()
if (eState == sOpen && p->GetType() == svSingleRef)
{
bColumnRange = true;
+ bCol1Rel = p->GetSingleRef()->IsColRel();
eState = sLast;
}
else
@@ -5172,6 +5175,7 @@ bool ScCompiler::HandleTableRef()
{
aColRange.aEnd = mpToken->GetSingleRef()->toAbs( aPos);
aColRange.Justify();
+ bCol2Rel = mpToken->GetSingleRef()->IsColRel();
}
}
}
@@ -5193,7 +5197,7 @@ bool ScCompiler::HandleTableRef()
{
ScSingleRefData aRefData;
aRefData.InitFlags();
- aRefData.SetColRel( true);
+ aRefData.SetColRel( bCol1Rel);
if (eItem == ScTableRefToken::THIS_ROW)
{
aRefData.SetRowRel( true);
@@ -5211,8 +5215,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);