From ff8e055564855b9e4c0bddfc067f10039fd45681 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Thu, 21 Jul 2011 00:32:14 +0300 Subject: [PATCH] * mu-msg-doc: use the UTC-datestr from the database --- src/mu-msg-doc.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/mu-msg-doc.cc b/src/mu-msg-doc.cc index 190a33c5..b7fdde99 100644 --- a/src/mu-msg-doc.cc +++ b/src/mu-msg-doc.cc @@ -27,6 +27,7 @@ #include "mu-msg-fields.h" #include "mu-msg-doc.h" #include "mu-str.h" +#include "mu-date.h" struct _MuMsgDoc { _MuMsgDoc (Xapian::Document *doc) : _doc (doc) {} @@ -104,12 +105,18 @@ mu_msg_doc_get_num_field (MuMsgDoc *self, MuMsgFieldId mfid) g_return_val_if_fail (self, -1); g_return_val_if_fail (mu_msg_field_id_is_valid(mfid), -1); g_return_val_if_fail (mu_msg_field_is_numeric(mfid), -1); - + + /* date is a special case, because we store dates as + * strings */ try { const std::string s (self->doc().get_value(mfid)); if (s.empty()) return -1; - else + else if (mfid == MU_MSG_FIELD_ID_DATE) { + time_t t; + t = mu_date_str_to_time_t (s.c_str(), FALSE/*utc*/); + return static_cast(t); + } else return static_cast(Xapian::sortable_unserialise(s)); } MU_XAPIAN_CATCH_BLOCK_RETURN(-1);