浏览代码

+ added a define FINDHANDLE_IS_POINTER that indicates that on the current
platform SysUtils.TSearchRec.FileHandle is a Pointer, instead of THandle.
I didn't introduce a TFindHandle type, because I didn't want to add yet
another publicly visible type in the SysUtils interface.

git-svn-id: trunk@28449 -

nickysn 11 年之前
父节点
当前提交
f5c1751be5
共有 2 个文件被更改,包括 8 次插入7 次删除
  1. 2 4
      rtl/objpas/sysutils/filutil.inc
  2. 6 3
      rtl/objpas/sysutils/filutilh.inc

+ 2 - 4
rtl/objpas/sysutils/filutil.inc

@@ -433,11 +433,9 @@ type
       indication enough that you should not touch it }
       indication enough that you should not touch it }
     Name_do_not_touch : RawByteString;
     Name_do_not_touch : RawByteString;
     ExcludeAttr : Longint;
     ExcludeAttr : Longint;
+    FindHandle : {$ifdef FINDHANDLE_IS_POINTER}Pointer{$else}THandle{$endif};
   {$ifdef unix}
   {$ifdef unix}
-    FindHandle : Pointer;
     Mode : TMode;
     Mode : TMode;
-  {$else unix}
-    FindHandle : THandle;
   {$endif unix}
   {$endif unix}
   {$ifdef USEFINDDATA}
   {$ifdef USEFINDDATA}
     FindData : TFindData;
     FindData : TFindData;
@@ -455,7 +453,7 @@ Function InternalFindFirst (Const Path : UnicodeString; Attr : Longint; out Rslt
 Function InternalFindNext (var Rslt : TAbstractSearchRec; var Name : UnicodeString) : Longint; forward;
 Function InternalFindNext (var Rslt : TAbstractSearchRec; var Name : UnicodeString) : Longint; forward;
 {$endif SYSUTILS_HAS_UNICODESTR_FILEUTIL_IMPL}
 {$endif SYSUTILS_HAS_UNICODESTR_FILEUTIL_IMPL}
 
 
-procedure InternalFindClose(var Handle: {$ifdef unix}Pointer{$else}THandle{$endif}{$ifdef USEFINDDATA};var FindData: TFindData{$endif}); forward;
+procedure InternalFindClose(var Handle: {$ifdef FINDHANDLE_IS_POINTER}Pointer{$else}THandle{$endif}{$ifdef USEFINDDATA};var FindData: TFindData{$endif}); forward;
 
 
 
 
 {$ifndef SYSUTILS_HAS_ANSISTR_FILEUTIL_IMPL}
 {$ifndef SYSUTILS_HAS_ANSISTR_FILEUTIL_IMPL}

+ 6 - 3
rtl/objpas/sysutils/filutilh.inc

@@ -16,6 +16,11 @@
 Type
 Type
 
 
 
 
+  // Some operating systems need FindHandle to be a Pointer
+{$if defined(unix)}
+    {$define FINDHANDLE_IS_POINTER}
+{$endif}
+
   // Some operating systems need extra find data.
   // Some operating systems need extra find data.
 {$if defined(Win32) or defined(WinCE) or defined(Win64)}
 {$if defined(Win32) or defined(WinCE) or defined(Win64)}
     {$define USEFINDDATA}
     {$define USEFINDDATA}
@@ -62,11 +67,9 @@ Type
     Attr : Longint;
     Attr : Longint;
     Name : RawByteString;
     Name : RawByteString;
     ExcludeAttr : Longint;
     ExcludeAttr : Longint;
+    FindHandle : {$ifdef FINDHANDLE_IS_POINTER}Pointer{$else}THandle{$endif};
 {$ifdef unix}
 {$ifdef unix}
-    FindHandle : Pointer;
     Mode : TMode;
     Mode : TMode;
-{$else unix}
-    FindHandle : THandle;
 {$endif unix}
 {$endif unix}
 {$IFDEF USEFINDDATA}
 {$IFDEF USEFINDDATA}
     FindData : TFindData;
     FindData : TFindData;