mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-25 11:49:13 +02:00
* Small improvement to previous commit.
git-svn-id: trunk@8325 -
This commit is contained in:
parent
614dbe6a8c
commit
1159ee9744
@ -255,7 +255,7 @@ type
|
|||||||
|
|
||||||
var
|
var
|
||||||
fs: TCFileStream;
|
fs: TCFileStream;
|
||||||
i, sz, rsz, IconCount, CursorCount: longint;
|
i, sz, rsz, MaxIconID, MaxCursorID: longint;
|
||||||
hdr: TResHeader;
|
hdr: TResHeader;
|
||||||
P: pointer;
|
P: pointer;
|
||||||
PData: PIconHeader;
|
PData: PIconHeader;
|
||||||
@ -289,8 +289,8 @@ begin
|
|||||||
else
|
else
|
||||||
fs.Seek(32, soFromBeginning);
|
fs.Seek(32, soFromBeginning);
|
||||||
sz:=fs.Size;
|
sz:=fs.Size;
|
||||||
IconCount := 0;
|
MaxIconID := 0;
|
||||||
CursorCount := 0;
|
MaxCursorID := 0;
|
||||||
repeat
|
repeat
|
||||||
fs.ReadBuffer(hdr, SizeOf(hdr));
|
fs.ReadBuffer(hdr, SizeOf(hdr));
|
||||||
FOut.WriteBuffer(hdr, SizeOf(hdr));
|
FOut.WriteBuffer(hdr, SizeOf(hdr));
|
||||||
@ -312,13 +312,15 @@ begin
|
|||||||
if ResNameBuf[0] = $FFFF then { resource name is ordinal }
|
if ResNameBuf[0] = $FFFF then { resource name is ordinal }
|
||||||
if hdr.ResTypeID = 1 then
|
if hdr.ResTypeID = 1 then
|
||||||
begin
|
begin
|
||||||
|
if ResNameBuf[1] > MaxCursorID then
|
||||||
|
MaxCursorID:=ResNameBuf[1];
|
||||||
Inc(ResNameBuf[1], FLastCursorID);
|
Inc(ResNameBuf[1], FLastCursorID);
|
||||||
Inc(CursorCount);
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
|
if ResNameBuf[1] > MaxIconID then
|
||||||
|
MaxIconID:=ResNameBuf[1];
|
||||||
Inc(ResNameBuf[1], FLastIconID);
|
Inc(ResNameBuf[1], FLastIconID);
|
||||||
Inc(IconCount);
|
|
||||||
end;
|
end;
|
||||||
FOut.WriteBuffer(ResNameBuf, SizeOf(ResNameBuf));
|
FOut.WriteBuffer(ResNameBuf, SizeOf(ResNameBuf));
|
||||||
Dec(rsz, SizeOf(ResNameBuf));
|
Dec(rsz, SizeOf(ResNameBuf));
|
||||||
@ -355,8 +357,8 @@ begin
|
|||||||
fs.Seek(i, soFromCurrent);
|
fs.Seek(i, soFromCurrent);
|
||||||
until fs.Position + SizeOf(hdr) >= sz;
|
until fs.Position + SizeOf(hdr) >= sz;
|
||||||
fs.Free;
|
fs.Free;
|
||||||
Inc(FLastCursorID, CursorCount);
|
Inc(FLastCursorID, MaxCursorID);
|
||||||
Inc(FLastIconID, IconCount);
|
Inc(FLastIconID, MaxIconID);
|
||||||
except
|
except
|
||||||
on E:EOSError do begin
|
on E:EOSError do begin
|
||||||
Comment(V_Error,'Error processing resource file: '+fn+': '+E.Message);
|
Comment(V_Error,'Error processing resource file: '+fn+': '+E.Message);
|
||||||
|
Loading…
Reference in New Issue
Block a user