Hi all,
I have some problem with a file archiver which uses the Dos unit under Windows, I suspect the flaw resides in GetFAttr function. Looking in the source for Win RTL
procedure getfattr(var f;var attr : word);
var
l : longint;
s : RawByteString;
begin
doserror:=0;
s:=ToSingleByteFileSystemEncodedFileName(filerec(f).name);
l:=GetFileAttributes(pchar(s));
if l=longint($ffffffff) then
begin
doserror:=getlasterror;
attr:=0;
end
else
attr:=l and $ffff;
end;I noted that two bytes are reported as a result, thought IIRC in DOS only the low byte is affected while the high one should be zero, so the assignment would become
attr:=l and $ff;Waiting for your comments,
Marco
