diff --git a/ocat b/ocat index 277a42b4..9e0aaf3f 100755 Binary files a/ocat and b/ocat differ diff --git a/showdef.REMOVED.git-id b/showdef.REMOVED.git-id index c6e0719c..f4a95ace 100644 --- a/showdef.REMOVED.git-id +++ b/showdef.REMOVED.git-id @@ -1 +1 @@ -af2514a8aa2a2c1b4d24cf77214f36265162340c \ No newline at end of file +3c9d1b6124de30d09fec587e5f99eb4b34653feb \ No newline at end of file diff --git a/src/lib/ooc/gnuc/oocSysClock.Mod b/src/lib/ooc/oocSysClock.Mod similarity index 67% rename from src/lib/ooc/gnuc/oocSysClock.Mod rename to src/lib/ooc/oocSysClock.Mod index da8c1282..da43fea4 100644 --- a/src/lib/ooc/gnuc/oocSysClock.Mod +++ b/src/lib/ooc/oocSysClock.Mod @@ -1,25 +1,5 @@ -(* $Id: SysClock.Mod,v 1.7 1999/09/02 13:42:24 acken Exp $ *) -MODULE oocSysClock(* [FOREIGN "C"; LINK FILE "SysClock.c" END]*); -IMPORT SYSTEM; -(* SysClock - facilities for accessing a system clock that records the - date and time of day. - Copyright (C) 1996-1998 Michael Griebling - - This module is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This module is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*) -(*<* Warnings := FALSE *>*) +MODULE oocSysClock; +IMPORT Unix; CONST maxSecondParts* = 999; (* Most systems have just millisecond accuracy *) @@ -65,19 +45,15 @@ TYPE inactive. *) END; -PROCEDURE -includeTime() - "#include "; -PROCEDURE -includeiSysTime() - "#include "; - - -PROCEDURE -cangetclock() : BOOLEAN -"struct timeval t; return (BOOLEAN)(gettimeofday(&t, NULL) == 0);"; -(* PROCEDURE CanGetClock*(): BOOLEAN; (* Returns TRUE if a system clock can be read; FALSE otherwise. *) -*) +VAR timeval: Unix.Timeval; timezone: Unix.Timezone; +l : LONGINT; +BEGIN + l := Unix.Gettimeofday(timeval, timezone); + IF l = 0 THEN RETURN TRUE ELSE RETURN FALSE END +END CanGetClock; (* PROCEDURE CanSetClock*(): BOOLEAN; (* Returns TRUE if a system clock can be set; FALSE otherwise. *) @@ -87,11 +63,8 @@ PROCEDURE IsValidDateTime* (d: DateTime): BOOLEAN; (* Returns TRUE if the value of `d' represents a valid date and time; FALSE otherwise. *) *) -(* -PROCEDURE GetClock* (VAR userData: DateTime); -(* If possible, assigns system date and time of day to `userData' (i.e., - the local time is returned). Error returns 1 Jan 1970. *) - *) + + (* PROCEDURE SetClock* (userData: DateTime); (* If possible, sets the system clock to the values of `userData'. *) @@ -115,16 +88,23 @@ PROCEDURE MakeLocalTime * (VAR c: DateTime); whether DST or normal time zone will be chosen. *) *) -PROCEDURE -gtod(VAR sec, usec : LONGINT) -" struct timeval tval; int res; res = gettimeofday(&tval, NULL); if (!res) { *sec = tval.tv_sec; *usec = tval.tv_usec; return 0; } else {*sec = 0; *usec = 0; return -1; }"; - PROCEDURE GetTimeOfDay* (VAR sec, usec: LONGINT): LONGINT; (* PRIVAT. Don't use this. Take Time.GetTime instead. Equivalent to the C function `gettimeofday'. The return value is `0' on success and `-1' on failure; in the latter case `sec' and `usec' are set to zero. *) + VAR timeval: Unix.Timeval; timezone: Unix.Timezone; + l : LONGINT; BEGIN - gtod (sec, usec); + l := Unix.Gettimeofday (timeval, timezone); + IF l = 0 THEN + sec := timeval.sec; + usec := timeval.usec; + ELSE + sec := 0; + usec := 0; + END; + RETURN l; END GetTimeOfDay; END oocSysClock. diff --git a/src/lib/system/gnuc/x86_64/Unix.Mod b/src/lib/system/gnuc/x86_64/Unix.Mod index 7bf77533..2539dbd9 100644 --- a/src/lib/system/gnuc/x86_64/Unix.Mod +++ b/src/lib/system/gnuc/x86_64/Unix.Mod @@ -332,7 +332,7 @@ from man gettimeofday PROCEDURE -Select*(width: LONGINT; VAR readfds, writefds, exceptfds: FdSet; VAR timeout: Timeval): LONGINT "select(width, readfds, writefds, exceptfds, timeout)"; - PROCEDURE -Gettimeofday* (VAR tv: Timeval; VAR tz: Timezone) + PROCEDURE -Gettimeofday* (VAR tv: Timeval; VAR tz: Timezone) : LONGINT "gettimeofday(tv, tz)"; PROCEDURE -Read* (fd, buf, nbyte: LONGINT): LONGINT diff --git a/src/lib/v4/Kernel.Mod b/src/lib/v4/Kernel.Mod index f9769b4f..13e0c5f7 100644 --- a/src/lib/v4/Kernel.Mod +++ b/src/lib/v4/Kernel.Mod @@ -84,8 +84,9 @@ MODULE Kernel; PROCEDURE GetClock* (VAR t, d: LONGINT); VAR tv: Unix.Timeval; tz: Unix.Timezone; time: RealTime; + l : LONGINT; BEGIN - Unix.Gettimeofday(tv, tz); + l := Unix.Gettimeofday(tv, tz); time := localtime(tv.sec); t := time.sec + ASH(time.min, 6) + ASH(time.hour, 12); d := time.mday + ASH(time.mon+1, 5) + ASH(time.year MOD 100, 9); @@ -98,8 +99,9 @@ MODULE Kernel; PROCEDURE Time*(): LONGINT; VAR timeval: Unix.Timeval; timezone: Unix.Timezone; + l : LONGINT; BEGIN - Unix.Gettimeofday(timeval, timezone); + l := Unix.Gettimeofday(timeval, timezone); RETURN (timeval.usec DIV 1000 + timeval.sec * 1000 - timeStart) MOD 7FFFFFFFH END Time; diff --git a/voc.REMOVED.git-id b/voc.REMOVED.git-id index e952ef08..b26f809e 100644 --- a/voc.REMOVED.git-id +++ b/voc.REMOVED.git-id @@ -1 +1 @@ -781786d67da699b419a4f4ae42b31c6cd1506ee8 \ No newline at end of file +57cd5fe4852aebc3f998f67036da0fcd2f7bf258 \ No newline at end of file diff --git a/vocstatic.REMOVED.git-id b/vocstatic.REMOVED.git-id index 4b49d3ed..b26f809e 100644 --- a/vocstatic.REMOVED.git-id +++ b/vocstatic.REMOVED.git-id @@ -1 +1 @@ -5a61e0f70e28eb3c5eb604cf506a2f9a18c3355c \ No newline at end of file +57cd5fe4852aebc3f998f67036da0fcd2f7bf258 \ No newline at end of file diff --git a/vocstatic.linux.gnuc.x86_64.REMOVED.git-id b/vocstatic.linux.gnuc.x86_64.REMOVED.git-id index 4b49d3ed..b26f809e 100644 --- a/vocstatic.linux.gnuc.x86_64.REMOVED.git-id +++ b/vocstatic.linux.gnuc.x86_64.REMOVED.git-id @@ -1 +1 @@ -5a61e0f70e28eb3c5eb604cf506a2f9a18c3355c \ No newline at end of file +57cd5fe4852aebc3f998f67036da0fcd2f7bf258 \ No newline at end of file