* remove the bogus TIMESTAMP field
This commit is contained in:
@ -159,7 +159,8 @@ errexit:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static MuError
|
|
||||||
|
static MuError
|
||||||
run_msg_callback_maybe (MuIndexCallbackData *data)
|
run_msg_callback_maybe (MuIndexCallbackData *data)
|
||||||
{
|
{
|
||||||
MuError result;
|
MuError result;
|
||||||
|
|||||||
@ -28,7 +28,7 @@ struct _MuMsgCache {
|
|||||||
char *_str[MU_MSG_STRING_FIELD_ID_NUM];
|
char *_str[MU_MSG_STRING_FIELD_ID_NUM];
|
||||||
|
|
||||||
GSList *_refs, *_tags;
|
GSList *_refs, *_tags;
|
||||||
|
|
||||||
time_t _timestamp, _date;
|
time_t _timestamp, _date;
|
||||||
size_t _size;
|
size_t _size;
|
||||||
MuFlags _flags;
|
MuFlags _flags;
|
||||||
@ -41,8 +41,8 @@ struct _MuMsgCache {
|
|||||||
/* _cached and _allocated have a bit for each MuMsgFieldId to remember
|
/* _cached and _allocated have a bit for each MuMsgFieldId to remember
|
||||||
* which ones have been cached, and which ones have been allocated. */
|
* which ones have been cached, and which ones have been allocated. */
|
||||||
|
|
||||||
#define is_allocated(C,MFID) ((C)->_allocated & (1 << (MFID)))
|
#define is_allocated(C,MFID) ((C)->_allocated & (1 << (MFID)))
|
||||||
#define is_cached(C,MFID) ((C)->_cached & (1 << (MFID)))
|
#define is_cached(C,MFID) ((C)->_cached & (1 << (MFID)))
|
||||||
|
|
||||||
#define set_allocated(C,MFID) ((C)->_allocated |= (1 << (MFID)))
|
#define set_allocated(C,MFID) ((C)->_allocated |= (1 << (MFID)))
|
||||||
#define set_cached(C,MFID) ((C)->_cached |= (1 << (MFID)))
|
#define set_cached(C,MFID) ((C)->_cached |= (1 << (MFID)))
|
||||||
@ -55,10 +55,10 @@ static void
|
|||||||
cache_clear (MuMsgCache *self)
|
cache_clear (MuMsgCache *self)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i != MU_MSG_STRING_FIELD_ID_NUM; ++i)
|
for (i = 0; i != MU_MSG_STRING_FIELD_ID_NUM; ++i)
|
||||||
self->_str[i] = NULL;
|
self->_str[i] = NULL;
|
||||||
|
|
||||||
self->_timestamp = (time_t)-1;
|
self->_timestamp = (time_t)-1;
|
||||||
self->_size = (size_t)-1;
|
self->_size = (size_t)-1;
|
||||||
self->_flags = MU_FLAG_NONE;
|
self->_flags = MU_FLAG_NONE;
|
||||||
@ -66,7 +66,7 @@ cache_clear (MuMsgCache *self)
|
|||||||
self->_date = (time_t)-1;
|
self->_date = (time_t)-1;
|
||||||
|
|
||||||
self->_refs = self->_tags = NULL;
|
self->_refs = self->_tags = NULL;
|
||||||
|
|
||||||
self->_cached = 0;
|
self->_cached = 0;
|
||||||
self->_allocated = 0;
|
self->_allocated = 0;
|
||||||
}
|
}
|
||||||
@ -76,10 +76,10 @@ MuMsgCache*
|
|||||||
mu_msg_cache_new (void)
|
mu_msg_cache_new (void)
|
||||||
{
|
{
|
||||||
MuMsgCache *self;
|
MuMsgCache *self;
|
||||||
|
|
||||||
self = g_slice_new0 (MuMsgCache);
|
self = g_slice_new0 (MuMsgCache);
|
||||||
cache_clear (self);
|
cache_clear (self);
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,10 +88,10 @@ void
|
|||||||
mu_msg_cache_destroy (MuMsgCache *self)
|
mu_msg_cache_destroy (MuMsgCache *self)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!self)
|
if (!self)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
g_return_if_fail (self);
|
g_return_if_fail (self);
|
||||||
|
|
||||||
for (i = 0; i != MU_MSG_STRING_FIELD_ID_NUM; ++i)
|
for (i = 0; i != MU_MSG_STRING_FIELD_ID_NUM; ++i)
|
||||||
@ -100,10 +100,10 @@ mu_msg_cache_destroy (MuMsgCache *self)
|
|||||||
|
|
||||||
mu_str_free_list (self->_tags);
|
mu_str_free_list (self->_tags);
|
||||||
mu_str_free_list (self->_refs);
|
mu_str_free_list (self->_refs);
|
||||||
|
|
||||||
g_slice_free (MuMsgCache, self);
|
g_slice_free (MuMsgCache, self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const char*
|
const char*
|
||||||
@ -114,7 +114,7 @@ mu_msg_cache_set_str (MuMsgCache *self, MuMsgFieldId mfid, char *str,
|
|||||||
g_return_val_if_fail (mu_msg_field_is_string(mfid), NULL);
|
g_return_val_if_fail (mu_msg_field_is_string(mfid), NULL);
|
||||||
|
|
||||||
/* maybe there was an old, allocated value there already? */
|
/* maybe there was an old, allocated value there already? */
|
||||||
if (is_allocated(self, mfid))
|
if (is_allocated(self, mfid))
|
||||||
g_free (self->_str[mfid]);
|
g_free (self->_str[mfid]);
|
||||||
|
|
||||||
self->_str[mfid] = str;
|
self->_str[mfid] = str;
|
||||||
@ -133,9 +133,9 @@ const char*
|
|||||||
mu_msg_cache_str (MuMsgCache *cache, MuMsgFieldId mfid)
|
mu_msg_cache_str (MuMsgCache *cache, MuMsgFieldId mfid)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (mu_msg_field_is_string(mfid), NULL);
|
g_return_val_if_fail (mu_msg_field_is_string(mfid), NULL);
|
||||||
return cache->_str[mfid];
|
return cache->_str[mfid];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const GSList*
|
const GSList*
|
||||||
@ -144,14 +144,14 @@ mu_msg_cache_set_str_list (MuMsgCache *self, MuMsgFieldId mfid,
|
|||||||
{
|
{
|
||||||
g_return_val_if_fail(self, NULL);
|
g_return_val_if_fail(self, NULL);
|
||||||
g_return_val_if_fail(mu_msg_field_is_string_list(mfid), NULL);
|
g_return_val_if_fail(mu_msg_field_is_string_list(mfid), NULL);
|
||||||
|
|
||||||
switch (mfid) {
|
switch (mfid) {
|
||||||
case MU_MSG_FIELD_ID_REFS:
|
case MU_MSG_FIELD_ID_REFS:
|
||||||
if (is_allocated(self, mfid))
|
if (is_allocated(self, mfid))
|
||||||
mu_str_free_list (self->_refs);
|
mu_str_free_list (self->_refs);
|
||||||
self->_refs = lst;
|
self->_refs = lst;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MU_MSG_FIELD_ID_TAGS:
|
case MU_MSG_FIELD_ID_TAGS:
|
||||||
if (is_allocated(self, mfid))
|
if (is_allocated(self, mfid))
|
||||||
mu_str_free_list (self->_tags);
|
mu_str_free_list (self->_tags);
|
||||||
@ -161,14 +161,14 @@ mu_msg_cache_set_str_list (MuMsgCache *self, MuMsgFieldId mfid,
|
|||||||
g_return_val_if_reached(NULL);
|
g_return_val_if_reached(NULL);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_cached (self, mfid);
|
set_cached (self, mfid);
|
||||||
|
|
||||||
if (do_free)
|
if (do_free)
|
||||||
set_allocated (self, mfid);
|
set_allocated (self, mfid);
|
||||||
else
|
else
|
||||||
reset_allocated (self, mfid);
|
reset_allocated (self, mfid);
|
||||||
|
|
||||||
return lst;
|
return lst;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,9 +198,6 @@ mu_msg_cache_set_num (MuMsgCache *self, MuMsgFieldId mfid, gint64 val)
|
|||||||
case MU_MSG_FIELD_ID_DATE:
|
case MU_MSG_FIELD_ID_DATE:
|
||||||
self->_date = (time_t)val;
|
self->_date = (time_t)val;
|
||||||
break;
|
break;
|
||||||
case MU_MSG_FIELD_ID_TIMESTAMP:
|
|
||||||
self->_timestamp = (time_t)val;
|
|
||||||
break;
|
|
||||||
case MU_MSG_FIELD_ID_PRIO:
|
case MU_MSG_FIELD_ID_PRIO:
|
||||||
self->_prio = (MuMsgPrio)val;
|
self->_prio = (MuMsgPrio)val;
|
||||||
break;
|
break;
|
||||||
@ -228,8 +225,6 @@ mu_msg_cache_num (MuMsgCache *self, MuMsgFieldId mfid)
|
|||||||
switch (mfid) {
|
switch (mfid) {
|
||||||
case MU_MSG_FIELD_ID_DATE:
|
case MU_MSG_FIELD_ID_DATE:
|
||||||
return (gint64)self->_date;
|
return (gint64)self->_date;
|
||||||
case MU_MSG_FIELD_ID_TIMESTAMP:
|
|
||||||
return (gint64)self->_timestamp;
|
|
||||||
case MU_MSG_FIELD_ID_PRIO:
|
case MU_MSG_FIELD_ID_PRIO:
|
||||||
return (gint64)self->_prio;
|
return (gint64)self->_prio;
|
||||||
case MU_MSG_FIELD_ID_FLAGS:
|
case MU_MSG_FIELD_ID_FLAGS:
|
||||||
@ -239,7 +234,7 @@ mu_msg_cache_num (MuMsgCache *self, MuMsgFieldId mfid)
|
|||||||
default: g_return_val_if_reached(-1);
|
default: g_return_val_if_reached(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
set_cached (self, mfid);
|
set_cached (self, mfid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -257,7 +252,7 @@ mu_msg_cache_allocate_all (MuMsgCache *self)
|
|||||||
int mfid;
|
int mfid;
|
||||||
|
|
||||||
g_return_if_fail (self);
|
g_return_if_fail (self);
|
||||||
|
|
||||||
for (mfid = 0; mfid != MU_MSG_STRING_FIELD_ID_NUM; ++mfid) {
|
for (mfid = 0; mfid != MU_MSG_STRING_FIELD_ID_NUM; ++mfid) {
|
||||||
if (self->_str[mfid] && !is_allocated(self, mfid)) {
|
if (self->_str[mfid] && !is_allocated(self, mfid)) {
|
||||||
self->_str[mfid] = g_strdup (self->_str[mfid]);
|
self->_str[mfid] = g_strdup (self->_str[mfid]);
|
||||||
|
|||||||
@ -220,13 +220,6 @@ static const MuMsgField FIELD_DATA[] = {
|
|||||||
FLAG_XAPIAN_ESCAPE | FLAG_XAPIAN_PREFIX_ONLY
|
FLAG_XAPIAN_ESCAPE | FLAG_XAPIAN_PREFIX_ONLY
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
MU_MSG_FIELD_ID_TIMESTAMP,
|
|
||||||
MU_MSG_FIELD_TYPE_TIME_T,
|
|
||||||
"timestamp", 0, 0,
|
|
||||||
FLAG_GMIME
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
MU_MSG_FIELD_ID_REFS,
|
MU_MSG_FIELD_ID_REFS,
|
||||||
MU_MSG_FIELD_TYPE_STRING_LIST,
|
MU_MSG_FIELD_TYPE_STRING_LIST,
|
||||||
|
|||||||
@ -56,7 +56,6 @@ enum _MuMsgFieldId {
|
|||||||
MU_MSG_FIELD_ID_FLAGS,
|
MU_MSG_FIELD_ID_FLAGS,
|
||||||
MU_MSG_FIELD_ID_PRIO,
|
MU_MSG_FIELD_ID_PRIO,
|
||||||
MU_MSG_FIELD_ID_SIZE,
|
MU_MSG_FIELD_ID_SIZE,
|
||||||
MU_MSG_FIELD_ID_TIMESTAMP,
|
|
||||||
|
|
||||||
MU_MSG_FIELD_ID_NUM
|
MU_MSG_FIELD_ID_NUM
|
||||||
};
|
};
|
||||||
|
|||||||
10
src/mu-msg.c
10
src/mu-msg.c
@ -441,13 +441,6 @@ mu_msg_get_prio (MuMsg *self)
|
|||||||
return (MuMsgPrio)get_num_field (self, MU_MSG_FIELD_ID_PRIO);
|
return (MuMsgPrio)get_num_field (self, MU_MSG_FIELD_ID_PRIO);
|
||||||
}
|
}
|
||||||
|
|
||||||
time_t
|
|
||||||
mu_msg_get_timestamp (MuMsg *self)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (self, (time_t)-1);
|
|
||||||
return (MuMsgPrio)get_num_field (self, MU_MSG_FIELD_ID_TIMESTAMP);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const char*
|
const char*
|
||||||
mu_msg_get_body_html (MuMsg *self)
|
mu_msg_get_body_html (MuMsg *self)
|
||||||
@ -809,6 +802,3 @@ mu_msg_move_to_maildir (MuMsg *self, const char *maildir,
|
|||||||
|
|
||||||
return newfullpath ? TRUE : FALSE;
|
return newfullpath ? TRUE : FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user