Fixes 18884, error reading biff8 labels written by fpspreadsheet

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1651 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
sekelsenmat
2011-05-27 10:20:53 +00:00
parent 651468dcd1
commit 9ac1f18a50
2 changed files with 16 additions and 8 deletions

View File

@ -1,21 +1,22 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="9"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Version Value="7"/>
<General> <General>
<Flags> <Flags>
<AlwaysBuild Value="False"/>
<LRSInOutputDirectory Value="False"/> <LRSInOutputDirectory Value="False"/>
</Flags> </Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<TargetFileExt Value=""/>
<UseXPManifest Value="True"/> <UseXPManifest Value="True"/>
</General> </General>
<VersionInfo> <VersionInfo>
<StringTable Comments="" CompanyName="" FileDescription="" FileVersion="0.0.0.0" InternalName="" LegalCopyright="" LegalTrademarks="" OriginalFilename="" ProductName="" ProductVersion=""/> <StringTable ProductVersion=""/>
</VersionInfo> </VersionInfo>
<BuildModes Count="1">
<Item1 Name="default" Default="True"/>
</BuildModes>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
<IgnoreBinaries Value="False"/> <IgnoreBinaries Value="False"/>
@ -42,11 +43,16 @@
</Units> </Units>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="8"/> <Version Value="10"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="$(ProjOutDir)\"/> <IncludeFiles Value="$(ProjOutDir)"/>
</SearchPaths> </SearchPaths>
<Parsing>
<SyntaxOptions>
<UseAnsiStrings Value="False"/>
</SyntaxOptions>
</Parsing>
<Other> <Other>
<CompilerMessages> <CompilerMessages>
<UseMsgFile Value="True"/> <UseMsgFile Value="True"/>

View File

@ -844,7 +844,7 @@ end;
procedure TsSpreadBIFF8Writer.WriteLabel(AStream: TStream; const ARow, procedure TsSpreadBIFF8Writer.WriteLabel(AStream: TStream; const ARow,
ACol: Word; const AValue: string; ACell: PCell); ACol: Word; const AValue: string; ACell: PCell);
var var
L: Word; L, RecLen: Word;
WideValue: WideString; WideValue: WideString;
begin begin
WideValue := UTF8Decode(AValue); WideValue := UTF8Decode(AValue);
@ -861,7 +861,8 @@ begin
{ BIFF Record header } { BIFF Record header }
AStream.WriteWord(WordToLE(INT_EXCEL_ID_LABEL)); AStream.WriteWord(WordToLE(INT_EXCEL_ID_LABEL));
AStream.WriteWord(WordToLE(8 + 1 + L * Sizeof(WideChar))); RecLen := 8 + 1 + L * Sizeof(WideChar);
AStream.WriteWord(WordToLE(RecLen));
{ BIFF Record data } { BIFF Record data }
AStream.WriteWord(WordToLE(ARow)); AStream.WriteWord(WordToLE(ARow));
@ -1332,6 +1333,7 @@ begin
{ Read the record header } { Read the record header }
RecordType := WordLEToN(AStream.ReadWord); RecordType := WordLEToN(AStream.ReadWord);
RecordSize := WordLEToN(AStream.ReadWord); RecordSize := WordLEToN(AStream.ReadWord);
PendingRecordSize:=RecordSize;
CurStreamPos := AStream.Position; CurStreamPos := AStream.Position;