fpspreadsheet: Fix incorrect dection of cell ranges when reading biff rpn formulas

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3090 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2014-05-24 18:20:30 +00:00
parent 81ca0a4e41
commit 934e210a4f
2 changed files with 44 additions and 49 deletions

View File

@ -150,7 +150,6 @@
<Unit3> <Unit3>
<Filename Value="..\..\fpspreadsheetgrid.pas"/> <Filename Value="..\..\fpspreadsheetgrid.pas"/>
<UnitName Value="fpspreadsheetgrid"/> <UnitName Value="fpspreadsheetgrid"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="6"/> <EditorIndex Value="6"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="539"/> <TopLine Value="539"/>
@ -264,10 +263,11 @@
<Unit17> <Unit17>
<Filename Value="..\..\xlsbiff8.pas"/> <Filename Value="..\..\xlsbiff8.pas"/>
<UnitName Value="xlsbiff8"/> <UnitName Value="xlsbiff8"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1920"/> <TopLine Value="847"/>
<CursorPos X="21" Y="1924"/> <CursorPos X="3" Y="859"/>
<UsageCount Value="99"/> <UsageCount Value="99"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit17> </Unit17>
@ -291,8 +291,8 @@
<UnitName Value="xlscommon"/> <UnitName Value="xlscommon"/>
<EditorIndex Value="4"/> <EditorIndex Value="4"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1112"/> <TopLine Value="1363"/>
<CursorPos X="1" Y="1142"/> <CursorPos X="3" Y="1366"/>
<UsageCount Value="95"/> <UsageCount Value="95"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit20> </Unit20>
@ -599,124 +599,124 @@
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="mainform.pas"/> <Filename Value="..\..\fpspreadsheet.pas"/>
<Caret Line="654" Column="3" TopLine="647"/> <Caret Line="742" Column="12" TopLine="723"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="..\..\fpspreadsheet.pas"/> <Filename Value="..\..\fpspreadsheet.pas"/>
<Caret Line="742" Column="12" TopLine="723"/> <Caret Line="115" Column="1" TopLine="115"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="..\..\fpspreadsheet.pas"/> <Filename Value="..\..\fpspreadsheet.pas"/>
<Caret Line="115" Column="1" TopLine="115"/> <Caret Line="349" Column="12" TopLine="318"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="..\..\fpspreadsheet.pas"/> <Filename Value="..\..\fpspreadsheet.pas"/>
<Caret Line="349" Column="12" TopLine="318"/> <Caret Line="358" Column="25" TopLine="327"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="..\..\fpspreadsheet.pas"/> <Filename Value="..\..\fpspreadsheet.pas"/>
<Caret Line="358" Column="25" TopLine="327"/> <Caret Line="478" Column="34" TopLine="449"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="..\..\fpspreadsheet.pas"/> <Filename Value="..\..\fpspreadsheetgrid.pas"/>
<Caret Line="478" Column="34" TopLine="449"/> <Caret Line="2524" Column="3" TopLine="2520"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="..\..\fpspreadsheetgrid.pas"/> <Filename Value="..\..\fpspreadsheetgrid.pas"/>
<Caret Line="2524" Column="3" TopLine="2520"/> <Caret Line="2504" Column="46" TopLine="2498"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="..\..\fpspreadsheetgrid.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="2504" Column="46" TopLine="2498"/> <Caret Line="654" Column="3" TopLine="647"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="654" Column="3" TopLine="647"/> <Caret Line="661" Column="3" TopLine="654"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="661" Column="3" TopLine="654"/> <Caret Line="542" Column="56" TopLine="540"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="542" Column="56" TopLine="540"/> <Caret Line="728" Column="1" TopLine="704"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="mainform.pas"/> <Filename Value="..\..\fpspreadsheet.pas"/>
<Caret Line="728" Column="1" TopLine="704"/> <Caret Line="1316" Column="1" TopLine="1285"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="..\..\fpspreadsheet.pas"/> <Filename Value="..\..\fpspreadsheet.pas"/>
<Caret Line="1316" Column="1" TopLine="1285"/> <Caret Line="394" Column="34" TopLine="394"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="..\..\fpspreadsheet.pas"/> <Filename Value="..\..\fpspreadsheet.pas"/>
<Caret Line="394" Column="34" TopLine="394"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="..\..\fpspreadsheet.pas"/> <Filename Value="..\..\fpspreadsheet.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="501" Column="18" TopLine="470"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="..\..\fpspreadsheet.pas"/> <Filename Value="..\..\xlscommon.pas"/>
<Caret Line="501" Column="18" TopLine="470"/> <Caret Line="1430" Column="28" TopLine="1430"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="..\..\xlscommon.pas"/> <Filename Value="..\..\xlscommon.pas"/>
<Caret Line="1430" Column="28" TopLine="1430"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="..\..\xlscommon.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="704" Column="21" TopLine="704"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="704" Column="21" TopLine="704"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="83" Column="19" TopLine="53"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="83" Column="19" TopLine="53"/> <Caret Line="229" Column="29" TopLine="199"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="229" Column="29" TopLine="199"/> <Caret Line="540" Column="32" TopLine="509"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="540" Column="32" TopLine="509"/> <Caret Line="511" Column="29" TopLine="511"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="511" Column="29" TopLine="511"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="83" Column="19" TopLine="53"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="83" Column="19" TopLine="53"/> <Caret Line="229" Column="29" TopLine="199"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="mainform.pas"/> <Filename Value="mainform.pas"/>
<Caret Line="229" Column="29" TopLine="199"/> <Caret Line="540" Column="32" TopLine="509"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="mainform.pas"/> <Filename Value="..\..\xlscommon.pas"/>
<Caret Line="540" Column="32" TopLine="509"/> <Caret Line="1141" Column="28" TopLine="1111"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="..\..\xlscommon.pas"/> <Filename Value="..\..\xlscommon.pas"/>
<Caret Line="1141" Column="28" TopLine="1111"/> <Caret Line="1142" Column="1" TopLine="1106"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="..\..\xlscommon.pas"/> <Filename Value="..\..\xlscommon.pas"/>
<Caret Line="1142" Column="1" TopLine="1112"/> <Caret Line="1427" Column="3" TopLine="1408"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>

View File

@ -1431,17 +1431,12 @@ begin
while (AStream.Position < p0 + n) and supported do begin while (AStream.Position < p0 + n) and supported do begin
token := AStream.ReadByte; token := AStream.ReadByte;
case token of case token of
INT_EXCEL_TOKEN_TREFV: INT_EXCEL_TOKEN_TREFV, INT_EXCEL_TOKEN_TREFR:
begin;
ReadRPNCellAddress(AStream, r, c, flags);
rpnItem := RPNCellValue(r, c, flags, rpnItem);
end;
INT_EXCEL_TOKEN_TREFR:
begin begin
ReadRPNCellAddress(AStream, r, c, flags); ReadRPNCellAddress(AStream, r, c, flags);
rpnItem := RPNCellRef(r, c, flags, rpnItem); rpnItem := RPNCellRef(r, c, flags, rpnItem);
end; end;
INT_EXCEL_TOKEN_TREFA: INT_EXCEL_TOKEN_TAREA_R, INT_EXCEL_TOKEN_TAREA_V:
begin begin
ReadRPNCellRangeAddress(AStream, r, c, r2, c2, flags); ReadRPNCellRangeAddress(AStream, r, c, r2, c2, flags);
rpnItem := RPNCellRange(r, c, r2, c2, flags, rpnItem); rpnItem := RPNCellRange(r, c, r2, c2, flags, rpnItem);