Skip to content

Commit 8c9003f

Browse files
authored
time: add a tm_gmtoff field to C.tm (a BSD and GNU extension) (#20907)
1 parent 43fd568 commit 8c9003f

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

vlib/time/time_nix.c.v

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@ module time
88
#include <errno.h>
99

1010
pub struct C.tm {
11-
tm_sec int
12-
tm_min int
13-
tm_hour int
14-
tm_mday int
15-
tm_mon int
16-
tm_year int
17-
tm_wday int
18-
tm_yday int
19-
tm_isdst int
11+
tm_sec int
12+
tm_min int
13+
tm_hour int
14+
tm_mday int
15+
tm_mon int
16+
tm_year int
17+
tm_wday int
18+
tm_yday int
19+
tm_isdst int
20+
tm_gmtoff int
2021
}
2122

2223
fn C.timegm(&C.tm) C.time_t

vlib/time/time_test.v

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,3 +344,16 @@ fn test_parse_three_letters_month() {
344344
tm_tm := time.parse_format(tm_s, format)!
345345
assert tm_tm.month == tm.month
346346
}
347+
348+
fn test_tm_gmtoff() {
349+
$if windows {
350+
return
351+
} $else {
352+
rawtime := i64(0) // C.time_t{}
353+
354+
C.time(&rawtime) // C.tm{}
355+
356+
info := C.localtime(&rawtime)
357+
assert info.tm_gmtoff == time.now().unix - time.utc().unix
358+
}
359+
}

0 commit comments

Comments
 (0)