Delphi POSIX support by Radek Cervinka
git-svn-id: https://svn.code.sf.net/p/synalist/code/trunk@181 7c85be65-684b-0410-a082-b2ed4fbef004
This commit is contained in:
parent
e791fab639
commit
4a99514c09
1144
ssposix.inc
Normal file
1144
ssposix.inc
Normal file
File diff suppressed because it is too large
Load Diff
39
synautil.pas
39
synautil.pas
@ -1,5 +1,5 @@
|
||||
{==============================================================================|
|
||||
| Project : Ararat Synapse | 004.015.004 |
|
||||
| Project : Ararat Synapse | 004.015.005 |
|
||||
|==============================================================================|
|
||||
| Content: support procedures and functions |
|
||||
|==============================================================================|
|
||||
@ -41,6 +41,7 @@
|
||||
| Contributor(s): |
|
||||
| Hernan Sanchez (hernan.sanchez@iname.com) |
|
||||
| Tomas Hajny (OS2 support) |
|
||||
| Radek Cervinka (POSIX support) |
|
||||
|==============================================================================|
|
||||
| History: see HISTORY.HTM from distribution package |
|
||||
| (Found at URL: http://www.ararat.cz/synapse/) |
|
||||
@ -75,8 +76,12 @@ uses
|
||||
UnixUtil, Unix, BaseUnix,
|
||||
{$ENDIF OS2}
|
||||
{$ELSE FPC}
|
||||
{$IFDEF POSIX}
|
||||
Posix.Base, Posix.Time, Posix.SysTypes, Posix.SysTime, Posix.Stdio,
|
||||
{$ELSE}
|
||||
Libc,
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$IFDEF CIL}
|
||||
System.IO,
|
||||
@ -87,6 +92,17 @@ uses
|
||||
type
|
||||
int64 = integer;
|
||||
{$ENDIF}
|
||||
{$IFDEF POSIX}
|
||||
type
|
||||
TTimeVal = Posix.SysTime.timeval;
|
||||
Ttimezone = record
|
||||
tz_minuteswest: Integer ; // minutes west of Greenwich
|
||||
tz_dsttime: integer ; // type of DST correction
|
||||
end;
|
||||
|
||||
PTimeZone = ^Ttimezone;
|
||||
{$ENDIF}
|
||||
|
||||
|
||||
{:Return your timezone bias from UTC time in minutes.}
|
||||
function TimeZoneBias: integer;
|
||||
@ -398,12 +414,23 @@ function TimeZoneBias: integer;
|
||||
{$IFNDEF MSWINDOWS}
|
||||
{$IFNDEF FPC}
|
||||
var
|
||||
{$IFDEF POSIX}
|
||||
t: Posix.SysTypes.time_t;
|
||||
UT: Posix.time.tm;
|
||||
{$ELSE}
|
||||
t: TTime_T;
|
||||
UT: TUnixTime;
|
||||
{$ENDIF}
|
||||
begin
|
||||
{$IFDEF POSIX}
|
||||
__time(T);
|
||||
localtime_r(T, UT);
|
||||
Result := UT.tm_gmtoff div 60;
|
||||
{$ELSE}
|
||||
__time(@T);
|
||||
localtime_r(@T, UT);
|
||||
Result := ut.__tm_gmtoff div 60;
|
||||
{$ENDIF}
|
||||
{$ELSE}
|
||||
begin
|
||||
Result := TZSeconds div 60;
|
||||
@ -835,7 +862,11 @@ begin
|
||||
d := (newdt - UnixDateDelta) * 86400;
|
||||
TV.tv_sec := trunc(d);
|
||||
TV.tv_usec := trunc(frac(d) * 1000000);
|
||||
{$IFNDEF POSIX}
|
||||
Result := settimeofday(TV, TZ) <> -1;
|
||||
{$ELSE}
|
||||
Result := False; // in POSIX settimeofday is not defined? http://www.kernel.org/doc/man-pages/online/pages/man2/gettimeofday.2.html
|
||||
{$ENDIF}
|
||||
{$ELSE FPC}
|
||||
{$IFDEF UNIX}
|
||||
var
|
||||
@ -1785,6 +1816,12 @@ begin
|
||||
end;
|
||||
|
||||
{==============================================================================}
|
||||
|
||||
{$IFDEF POSIX}
|
||||
function tempnam(const Path: PAnsiChar; const Prefix: PAnsiChar): PAnsiChar; cdecl;
|
||||
external libc name _PU + 'tempnam';
|
||||
{$ENDIF}
|
||||
|
||||
function GetTempFile(const Dir, prefix: AnsiString): AnsiString;
|
||||
{$IFNDEF FPC}
|
||||
{$IFDEF MSWINDOWS}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{==============================================================================|
|
||||
| Project : Ararat Synapse | 005.002.002 |
|
||||
| Project : Ararat Synapse | 005.002.003 |
|
||||
|==============================================================================|
|
||||
| Content: Socket Independent Platform Layer |
|
||||
|==============================================================================|
|
||||
@ -77,6 +77,10 @@ unit synsock;
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$IFDEF POSIX}
|
||||
//Posix.SysSocket
|
||||
{$I ssposix.inc} //experimental!
|
||||
{$ENDIF}
|
||||
|
||||
end.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user