* Small improvement to previous commit.

git-svn-id: trunk@8325 -
This commit is contained in:
yury 2007-08-28 21:06:15 +00:00
parent 614dbe6a8c
commit 1159ee9744

View File

@ -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);