a wrapper for mktime() call that honours timezone
Showing
1 changed file
with
39 additions
and
0 deletions
mailbox/mu_mktime.c
0 → 100644
1 | /* Copyright (C) 2001 Free Software Foundation, Inc. | ||
2 | A wrapper for mktime function allowing to specify the timezone. | ||
3 | |||
4 | The GNU C Library is free software; you can redistribute it and/or | ||
5 | modify it under the terms of the GNU Library General Public License as | ||
6 | published by the Free Software Foundation; either version 2 of the | ||
7 | License, or (at your option) any later version. | ||
8 | |||
9 | The GNU C Library is distributed in the hope that it will be useful, | ||
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | Library General Public License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public | ||
15 | License along with the GNU C Library; see the file COPYING.LIB. If not, | ||
16 | write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
17 | Boston, MA 02111-1307, USA. */ | ||
18 | |||
19 | #if HAVE_CONFIG_H | ||
20 | # include <config.h> | ||
21 | #endif | ||
22 | |||
23 | #include <time.h> | ||
24 | |||
25 | /* Convert struct tm into time_t, taking into account timezone offset */ | ||
26 | time_t | ||
27 | mu_mktime (struct tm *timeptr, int tz) | ||
28 | { | ||
29 | static int mu_timezone; | ||
30 | |||
31 | if (mu_timezone == 0) | ||
32 | { | ||
33 | struct tm *tm; | ||
34 | time_t t = 0; | ||
35 | tm = gmtime(&t); | ||
36 | mu_timezone = mktime(tm); | ||
37 | } | ||
38 | return mktime(timeptr) - mu_timezone + tz; | ||
39 | } |
-
Please register or sign in to post a comment