Browse Source

* fix FileSetAttr - bug #28826

git-svn-id: trunk@32019 -
Tomas Hajny 9 năm trước cách đây
mục cha
commit
ebd1c6026c
1 tập tin đã thay đổi với 9 bổ sung4 xóa
  1. 9 4
      rtl/os2/sysutils.pp

+ 9 - 4
rtl/os2/sysutils.pp

@@ -422,10 +422,15 @@ Var
 Begin
   SystemFileName:=ToSingleByteFileSystemEncodedFileName(Filename);
   New(FS);
-  FillChar(FS, SizeOf(FS^), 0);
-  FS^.AttrFile:=Attr;
-  RC := DosSetPathInfo(PChar (SystemFileName), ilStandard, FS, SizeOf(FS^), 0);
-  if RC <> 0 then
+  RC := DosQueryPathInfo (PChar (SystemFileName), ilStandard, FS, SizeOf (FS^));
+  if RC = 0 then
+   begin
+    FS^.AttrFile:=Attr;
+    RC := DosSetPathInfo(PChar (SystemFileName), ilStandard, FS, SizeOf(FS^), 0);
+    if RC <> 0 then
+     OSErrorWatch (RC);
+   end
+  else
    OSErrorWatch (RC);
   Result := - longint (RC);
   Dispose(FS);