diff options
author | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2017-09-04 08:07:55 +0000 |
---|---|---|
committer | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2017-09-04 08:07:55 +0000 |
commit | 4f0e2ea26fb83383d6a795db64066e9bb6a3d4f7 (patch) | |
tree | 825362eef1440c9d110f333641cb3fe0abcb702d | |
parent | b64cd2500b450db70ad7c7f62705d4187bfd19a8 (diff) | |
download | fpc-4f0e2ea26fb83383d6a795db64066e9bb6a3d4f7.tar.gz |
--- Merging r37135 into '.':
C utils/fpcm/revision.inc
C rtl/objpas/sysutils/filutil.inc
U rtl/objpas/sysutils/filutilh.inc
U rtl/win/sysutils.pp
U rtl/unix/sysutils.pp
--- Recording mergeinfo for merge of r37135 into '.':
U .
Summary of conflicts:
Text conflicts: 2
# revisions: 37135
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/fixes_3_0@37138 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | rtl/objpas/sysutils/filutil.inc | 6 | ||||
-rw-r--r-- | rtl/objpas/sysutils/filutilh.inc | 1 | ||||
-rw-r--r-- | rtl/unix/sysutils.pp | 7 | ||||
-rw-r--r-- | rtl/win/sysutils.pp | 8 |
4 files changed, 22 insertions, 0 deletions
diff --git a/rtl/objpas/sysutils/filutil.inc b/rtl/objpas/sysutils/filutil.inc index fe3c5522c8..13e132bdf0 100644 --- a/rtl/objpas/sysutils/filutil.inc +++ b/rtl/objpas/sysutils/filutil.inc @@ -542,3 +542,9 @@ begin InternalFindClose(f.FindHandle{$ifdef USEFINDDATA},f.FindData{$endif}); end; +{$ifndef SYSUTILS_HAS_FILEFLUSH_IMPL} +function FileFlush(Handle: THandle): Boolean; +begin + Result:= False; +end; +{$endif} diff --git a/rtl/objpas/sysutils/filutilh.inc b/rtl/objpas/sysutils/filutilh.inc index 9910371510..87e63a0484 100644 --- a/rtl/objpas/sysutils/filutilh.inc +++ b/rtl/objpas/sysutils/filutilh.inc @@ -168,6 +168,7 @@ Function FileRead (Handle : THandle; out Buffer; Count : longint) : Longint; Function FileWrite (Handle : THandle; const Buffer; Count : Longint) : Longint; Function FileSeek (Handle : THandle; FOffset, Origin: Longint) : Longint; Function FileSeek (Handle : THandle; FOffset: Int64; Origin: Longint) : Int64; +function FileFlush(Handle: THandle): Boolean; Procedure FileClose (Handle : THandle); Function FileTruncate (Handle : THandle;Size: Int64) : boolean; Function FindNext (Var Rslt : TRawByteSearchRec) : Longint; diff --git a/rtl/unix/sysutils.pp b/rtl/unix/sysutils.pp index 0250daab92..1f2843454f 100644 --- a/rtl/unix/sysutils.pp +++ b/rtl/unix/sysutils.pp @@ -38,6 +38,9 @@ interface {$DEFINE HAS_LOCALTIMEZONEOFFSET} {$DEFINE HAS_GETTICKCOUNT64} +// this target has an fileflush implementation, don't include dummy +{$DEFINE SYSUTILS_HAS_FILEFLUSH_IMPL} + { used OS file system APIs use ansistring } {$define SYSUTILS_HAS_ANSISTR_FILEUTIL_IMPL} { OS has an ansistring/single byte environment variable API } @@ -458,6 +461,10 @@ begin FileOpen:=DoFileLocking(FileOpen, Mode); end; +function FileFlush(Handle: THandle): Boolean; +begin + Result:= fpfsync(handle)=0; +end; Function FileCreate (Const FileName : RawByteString) : Longint; diff --git a/rtl/win/sysutils.pp b/rtl/win/sysutils.pp index 119285b6f3..4c3987dec9 100644 --- a/rtl/win/sysutils.pp +++ b/rtl/win/sysutils.pp @@ -37,6 +37,9 @@ uses {$DEFINE HAS_GETTICKCOUNT64} {$DEFINE OS_FILESETDATEBYNAME} +// this target has an fileflush implementation, don't include dummy +{$DEFINE SYSUTILS_HAS_FILEFLUSH_IMPL} + { used OS file system APIs use unicodestring } {$define SYSUTILS_HAS_UNICODESTR_FILEUTIL_IMPL} { OS has an ansistring/single byte environment variable API } @@ -283,6 +286,11 @@ const FILE_SHARE_READ or FILE_SHARE_WRITE); +function FileFlush(Handle: THandle): Boolean; +begin + Result:= FlushFileBuffers(Handle); +end; + Function FileOpen (Const FileName : unicodestring; Mode : Integer) : THandle; begin result := CreateFileW(PWideChar(FileName), dword(AccessMode[Mode and 3]), |