diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-11-10 19:36:39 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-11-10 19:36:39 +0000 |
commit | 3c6b20885dd6395882947e13901313a2fc291113 (patch) | |
tree | 8dbb67c5036e65015d8a93f649b1263aa000956c | |
parent | da0b0df8c7c842670457088b12096ec63ea66fae (diff) |
always use mktimegm
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3570 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r-- | cutils.c | 14 | ||||
-rw-r--r-- | vl.c | 2 | ||||
-rw-r--r-- | vl.h | 1 |
3 files changed, 16 insertions, 1 deletions
@@ -81,3 +81,17 @@ int stristart(const char *str, const char *val, const char **ptr) *ptr = p; return 1; } + +time_t mktimegm(struct tm *tm) +{ + time_t t; + int y = tm->tm_year + 1900, m = tm->tm_mon + 1, d = tm->tm_mday; + if (m < 3) { + m += 12; + y--; + } + t = 86400 * (d + (153 * m - 457) / 5 + 365 * y + y / 4 - y / 100 + + y / 400 - 719469); + t += 3600 * tm->tm_hour + 60 * tm->tm_min + tm->tm_sec; + return t; +} @@ -8116,7 +8116,7 @@ int main(int argc, char **argv) } tm.tm_year -= 1900; tm.tm_mon--; - rtc_start_date = timegm(&tm); + rtc_start_date = mktimegm(&tm); if (rtc_start_date == -1) { date_fail: fprintf(stderr, "Invalid date format. Valid format are:\n" @@ -123,6 +123,7 @@ void pstrcpy(char *buf, int buf_size, const char *str); char *pstrcat(char *buf, int buf_size, const char *s); int strstart(const char *str, const char *val, const char **ptr); int stristart(const char *str, const char *val, const char **ptr); +time_t mktimegm(struct tm *tm); /* vl.c */ uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c); |