X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=psi.d%2Ftime.psi;h=f38023466f121af25f0af144b19e6e2a7702db46;hp=0acbf9861247b9eab0014a629712db618430d2f2;hb=HEAD;hpb=f3fc4c459243cc41f20d225cb0a87f186bf1dbc1 diff --git a/psi.d/time.psi b/psi.d/time.psi index 0acbf98..9bf0851 100644 --- a/psi.d/time.psi +++ b/psi.d/time.psi @@ -1,5 +1,5 @@ -#ifdef linux /* old, anyway */ -lib "rt"; +#ifdef __linux__ /* old, anyway */ +#pragma lib "rt" #endif #include @@ -13,16 +13,13 @@ function psi\time() : int { } // extern int gettimeofday(struct timeval *tp, struct timezone *tz); -function psi\gettimeofday(array &$tv = NULL, array &$tz = NULL) : int { +function psi\gettimeofday(array &$tv = NULL) : int { let tp = calloc(1, sizeof(struct timeval)); - let tz = calloc(1, sizeof(struct timezone)); + let tz = NULL; return gettimeofday(tp, tz) as to_int(gettimeofday); set $tv = to_array(*tp, to_int(tv_sec), to_int(tv_usec)); - set $tz = to_array(*tz, - to_int(tz_minuteswest), - to_int(tz_dsttime)); } // extern char *asctime(struct tm *tm); @@ -117,3 +114,12 @@ function psi\times(array &$tms = NULL) : int { to_int(tms_cstime) ); } + + +function psi\tzset() : void { + return tzset() as void(tzset); +} + +function psi\tzname() : array { + return tzname_get() as to_array(*tzname_get, 2, to_string(*tzname_get)); +}