aboutsummaryrefslogtreecommitdiff
path: root/libsylph
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2014-04-18 09:29:38 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2014-04-18 09:29:38 +0000
commitd696272192e69a7c7c48fd8686886d3c00b1d40c (patch)
tree47c08cd3cc9487450ae7f5f3f9f75ee4d390cc05 /libsylph
parentf7544bcd10599ba3204bd483b398df342f15e7d1 (diff)
made workaround for 64-bit time_t on win32.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@3391 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'libsylph')
-rw-r--r--libsylph/imap.c5
-rw-r--r--libsylph/mbox.c5
-rw-r--r--libsylph/pop.c2
-rw-r--r--libsylph/procheader.c10
-rw-r--r--libsylph/utils.c5
5 files changed, 16 insertions, 11 deletions
diff --git a/libsylph/imap.c b/libsylph/imap.c
index 4c26e04b..9f3f2347 100644
--- a/libsylph/imap.c
+++ b/libsylph/imap.c
@@ -4275,14 +4275,15 @@ static gint imap_cmd_fetch(IMAPSession *session, guint32 uid,
return ok;
}
-static void imap_get_date_time(gchar *buf, size_t len, time_t timer)
+static void imap_get_date_time(gchar *buf, size_t len, stime_t timer)
{
static gchar monthstr[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
struct tm *lt;
gchar date_time[64];
gchar tz[6];
+ time_t timer_ = timer;
- lt = localtime(&timer);
+ lt = localtime(&timer_);
if (lt && lt->tm_mon >= 0 && lt->tm_mon < 12) {
strftime(date_time, sizeof(date_time), "%d-___-%Y %H:%M:%S",
lt);
diff --git a/libsylph/mbox.c b/libsylph/mbox.c
index 4a241aa1..d00b66de 100644
--- a/libsylph/mbox.c
+++ b/libsylph/mbox.c
@@ -499,6 +499,7 @@ gint export_msgs_to_mbox(FolderItem *src, GSList *mlist, const gchar *mbox)
gchar buf[BUFFSIZE];
PrefsAccount *cur_ac;
guint count = 0, length;
+ time_t date_t_;
g_return_val_if_fail(src != NULL, -1);
g_return_val_if_fail(src->folder != NULL, -1);
@@ -539,8 +540,8 @@ gint export_msgs_to_mbox(FolderItem *src, GSList *mlist, const gchar *mbox)
sizeof(buf));
extract_address(buf);
- fprintf(mbox_fp, "From %s %s",
- buf, ctime(&msginfo->date_t));
+ date_t_ = msginfo->date_t;
+ fprintf(mbox_fp, "From %s %s", buf, ctime(&date_t_));
while (fgets(buf, sizeof(buf), msg_fp) != NULL) {
if (!strncmp(buf, "From ", 5))
diff --git a/libsylph/pop.c b/libsylph/pop.c
index 03c96cba..8cb7f5cb 100644
--- a/libsylph/pop.c
+++ b/libsylph/pop.c
@@ -273,7 +273,7 @@ gint pop3_getrange_uidl_recv(Pop3Session *session, const gchar *data, guint len)
session->msg[num].uidl = g_strdup(id);
- recv_time = (time_t)g_hash_table_lookup(session->uidl_table, id);
+ recv_time = GPOINTER_TO_INT(g_hash_table_lookup(session->uidl_table, id));
session->msg[num].recv_time = recv_time;
if (!session->ac_prefs->getall && recv_time != RECV_TIME_NONE)
diff --git a/libsylph/procheader.c b/libsylph/procheader.c
index 6c942e70..1dcffa29 100644
--- a/libsylph/procheader.c
+++ b/libsylph/procheader.c
@@ -885,8 +885,9 @@ stime_t procheader_date_parse(gchar *dest, const gchar *src, gint len)
GDateMonth dmonth = G_DATE_BAD_MONTH;
struct tm t;
gchar *p;
- time_t timer;
+ time_t timer_;
time_t tz_offset;
+ stime_t timer;
if (procheader_scan_date_string(src, weekday, &day, month, &year,
&hh, &mm, &ss, zone) < 0) {
@@ -926,11 +927,11 @@ stime_t procheader_date_parse(gchar *dest, const gchar *src, gint len)
t.tm_yday = 0;
t.tm_isdst = -1;
- timer = mktime(&t);
- if (timer == -1) {
+ timer_ = mktime(&t);
+ if (timer_ == -1) {
if (year >= 2038) {
g_warning("mktime: date overflow: %s", src);
- timer = G_MAXINT - 12 * 3600;
+ timer_ = G_MAXINT - 12 * 3600;
} else {
g_warning("mktime: can't convert date: %s", src);
if (dest)
@@ -939,6 +940,7 @@ stime_t procheader_date_parse(gchar *dest, const gchar *src, gint len)
}
}
+ timer = timer_;
if (timer < G_MAXINT - 12 * 3600) {
tz_offset = remote_tzoffset_sec(zone);
if (tz_offset != -1)
diff --git a/libsylph/utils.c b/libsylph/utils.c
index 015406d5..3c54611c 100644
--- a/libsylph/utils.c
+++ b/libsylph/utils.c
@@ -4463,17 +4463,18 @@ void get_rfc822_date(gchar *buf, gint len)
{
struct tm *lt;
time_t t;
+ stime_t t_;
gchar day[4], mon[4];
gint dd, hh, mm, ss, yyyy;
gchar off[6];
- t = time(NULL);
+ t_ = t = time(NULL);
lt = localtime(&t);
sscanf(asctime(lt), "%3s %3s %d %d:%d:%d %d\n",
day, mon, &dd, &hh, &mm, &ss, &yyyy);
g_snprintf(buf, len, "%s, %d %s %d %02d:%02d:%02d %s",
- day, dd, mon, yyyy, hh, mm, ss, tzoffset_buf(off, &t));
+ day, dd, mon, yyyy, hh, mm, ss, tzoffset_buf(off, &t_));
}
/* just a wrapper to suppress the warning of gcc about %c */