浏览代码

ADD: Copy extended attributes under Haiku

Alexander Koblov 2 年之前
父节点
当前提交
cfad170205
共有 1 个文件被更改,包括 15 次插入2 次删除
  1. 15 2
      components/doublecmd/dcosutils.pas

+ 15 - 2
components/doublecmd/dcosutils.pas

@@ -3,7 +3,7 @@
     -------------------------------------------------------------------------
     -------------------------------------------------------------------------
     This unit contains platform dependent functions dealing with operating system.
     This unit contains platform dependent functions dealing with operating system.
 
 
-    Copyright (C) 2006-2021 Alexander Koblov ([email protected])
+    Copyright (C) 2006-2022 Alexander Koblov ([email protected])
 
 
     This program is free software; you can redistribute it and/or modify
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     it under the terms of the GNU General Public License as published by
@@ -31,6 +31,9 @@ uses
 {$IFDEF UNIX}
 {$IFDEF UNIX}
   , BaseUnix, DCUnix
   , BaseUnix, DCUnix
 {$ENDIF}
 {$ENDIF}
+{$IFDEF HAIKU}
+  , DCHaiku
+{$ENDIF}
 {$IFDEF MSWINDOWS}
 {$IFDEF MSWINDOWS}
   , JwaWinBase, Windows
   , JwaWinBase, Windows
 {$ENDIF}
 {$ENDIF}
@@ -564,6 +567,16 @@ begin
           if Assigned(Errors) then Errors^[caoCopyOwnership]:= GetLastOSError;
           if Assigned(Errors) then Errors^[caoCopyOwnership]:= GetLastOSError;
         end;
         end;
       end;
       end;
+{$IF DEFINED(HAIKU)}
+      if caoCopyXattributes in Options then
+      begin
+        if not mbFileCopyXattr(sSrc, sDst) then
+        begin
+          Include(Result, caoCopyXattributes);
+          if Assigned(Errors) then Errors^[caoCopyXattributes]:= GetLastOSError;
+        end;
+      end;
+{$ENDIF}
     end
     end
     else
     else
     begin
     begin
@@ -599,7 +612,7 @@ begin
         end;
         end;
       end;
       end;
 
 
-{$IFDEF LINUX}
+{$IF DEFINED(LINUX) or DEFINED(HAIKU)}
       if caoCopyXattributes in Options then
       if caoCopyXattributes in Options then
       begin
       begin
         if not mbFileCopyXattr(sSrc, sDst) then
         if not mbFileCopyXattr(sSrc, sDst) then