dovecot-1.2: Added imap_to_datetime_tz() to create IMAP date-tim...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Jun 13 03:29:50 EEST 2008
details: http://hg.dovecot.org/dovecot-1.2/rev/1b1fe3d50079
changeset: 7838:1b1fe3d50079
user: Timo Sirainen <tss at iki.fi>
date: Fri Jun 13 03:29:24 2008 +0300
description:
Added imap_to_datetime_tz() to create IMAP date-time with specified timezone.
diffstat:
2 files changed, 25 insertions(+), 7 deletions(-)
src/lib-imap/imap-date.c | 28 ++++++++++++++++++++++------
src/lib-imap/imap-date.h | 4 +++-
diffs (58 lines):
diff -r e557042b2c1c -r 1b1fe3d50079 src/lib-imap/imap-date.c
--- a/src/lib-imap/imap-date.c Thu Jun 12 13:16:08 2008 +0300
+++ b/src/lib-imap/imap-date.c Fri Jun 13 03:29:24 2008 +0300
@@ -158,14 +158,11 @@ bool imap_parse_datetime(const char *str
return TRUE;
}
-const char *imap_to_datetime(time_t timestamp)
+static const char *
+imap_to_datetime_tm(const struct tm *tm, int timezone_offset)
{
char *buf;
- struct tm *tm;
- int timezone_offset, year;
-
- tm = localtime(×tamp);
- timezone_offset = utc_offset(tm, timestamp);
+ int year;
/* @UNSAFE: but faster than t_strdup_printf() call.. */
buf = t_malloc(27);
@@ -211,3 +208,22 @@ const char *imap_to_datetime(time_t time
return buf;
}
+
+const char *imap_to_datetime(time_t timestamp)
+{
+ struct tm *tm;
+ int timezone_offset;
+
+ tm = localtime(×tamp);
+ timezone_offset = utc_offset(tm, timestamp);
+ return imap_to_datetime_tm(tm, timezone_offset);
+}
+
+const char *imap_to_datetime_tz(time_t timestamp, int timezone_offset)
+{
+ const struct tm *tm;
+ time_t adjusted = timestamp + timezone_offset*60;
+
+ tm = gmtime(&adjusted);
+ return imap_to_datetime_tm(tm, timezone_offset);
+}
diff -r e557042b2c1c -r 1b1fe3d50079 src/lib-imap/imap-date.h
--- a/src/lib-imap/imap-date.h Thu Jun 12 13:16:08 2008 +0300
+++ b/src/lib-imap/imap-date.h Fri Jun 13 03:29:24 2008 +0300
@@ -12,7 +12,9 @@ bool imap_parse_datetime(const char *str
bool imap_parse_datetime(const char *str, time_t *timestamp_r,
int *timezone_offset_r);
-/* Returns given UTC time in local timezone. */
+/* Returns given UTC timestamp as IMAP date-time string in local timezone. */
const char *imap_to_datetime(time_t timestamp);
+/* Returns given UTC timestamp as IMAP date-time string in given timezone. */
+const char *imap_to_datetime_tz(time_t timestamp, int timezone_offset);
#endif
More information about the dovecot-cvs
mailing list