* avoid FindFirst failing due to Attribute parameter bigger than $FF

git-svn-id: trunk@33894 -
This commit is contained in:
Tomas Hajny 2016-06-03 21:16:35 +00:00
parent 046614948c
commit c1afb4b63b
5 changed files with 8 additions and 7 deletions

View File

@ -796,7 +796,7 @@ begin
if attr=$8 then
dosregs.ecx:=8
else
dosregs.ecx:=attr and (not 8);
dosregs.ecx:=attr and (not 8) and $FF; { no required attributes }
dosregs.edx:=tb_offset+Sizeof(LFNSearchrec)+1;
dosmemput(tb_segment,tb_offset+Sizeof(LFNSearchrec)+1,path^,strlen(path)+1);
dosregs.ds:=tb_segment;

View File

@ -591,7 +591,7 @@ begin
if attr=$8 then
dosregs.cx:=8
else
dosregs.cx:=attr and (not 8);
dosregs.cx:=attr and (not 8) and $FF; { No required attributes }
dosregs.dx:=Ofs(path^);
dosregs.ds:=Seg(path^);
dosregs.di:=Ofs(w);

View File

@ -92,8 +92,9 @@ threadvar
LastDosErrorModuleName: string;
const FindResvdMask = $00003737; {Allowed bits in attribute
specification for DosFindFirst call.}
const
FindResvdMask = $00003737 {Allowed bits for DosFindFirst parameter Attribute}
and $000000FF; {combined with a mask for allowed attributes only}
function GetMsCount: int64;

View File

@ -72,8 +72,8 @@ const
faOpenReplace = $00040000; {Truncate if file exists}
faCreate = $00050000; {Create if file does not exist, truncate otherwise}
FindResvdMask = $00003737; {Allowed bits in attribute
specification for DosFindFirst call.}
FindResvdMask = $00003737 {Allowed bits for DosFindFirst parameter Attribute}
and $000000FF; {combined with a mask for allowed attributes only}
function FileOpen (const FileName: rawbytestring; Mode: integer): THandle;
Var

View File

@ -464,7 +464,7 @@ begin
if attr=$8 then
dosregs.ecx:=8
else
dosregs.ecx:=attr and (not 8);
dosregs.ecx:=attr and (not 8) and $FF; { No required attributes }
dosregs.edx:=tb_offset+Sizeof(LFNSearchrec)+1;
dosmemput(tb_segment,tb_offset+Sizeof(LFNSearchrec)+1,path^,strlen(path)+1);
dosregs.ds:=tb_segment;