diff --git a/src/mu-cmd-find.c b/src/mu-cmd-find.c index 2ab2f297..6b18823e 100644 --- a/src/mu-cmd-find.c +++ b/src/mu-cmd-find.c @@ -161,15 +161,9 @@ run_query (MuQuery *xapian, const gchar *query, MuConfig *opts, rv = mu_output_plain (iter, opts->fields, opts->summary_len, count); break; - case FORMAT_XML: - rv = mu_output_xml (iter, count); - break; - case FORMAT_JSON: - rv = mu_output_json (iter, count); - break; - case FORMAT_SEXP: - rv = mu_output_sexp (iter, count); - break; + case FORMAT_XML: rv = mu_output_xml (iter, count); break; + case FORMAT_JSON: rv = mu_output_json (iter, count); break; + case FORMAT_SEXP: rv = mu_output_sexp (iter, count); break; default: g_assert_not_reached (); return FALSE; diff --git a/src/mu-msg-fields.c b/src/mu-msg-fields.c index 7c7803a6..3cfdc2fe 100644 --- a/src/mu-msg-fields.c +++ b/src/mu-msg-fields.c @@ -127,7 +127,7 @@ static const MuMsgField FIELD_DATA[] = { MU_MSG_FIELD_ID_SIZE, MU_MSG_FIELD_TYPE_BYTESIZE, "size", 'z', 'Z', /* siZe */ - FLAG_GMIME + FLAG_GMIME | FLAG_XAPIAN_TERM | FLAG_XAPIAN_VALUE }, { diff --git a/src/mu-msg-iter.cc b/src/mu-msg-iter.cc index 0f16cfca..b158e716 100644 --- a/src/mu-msg-iter.cc +++ b/src/mu-msg-iter.cc @@ -212,15 +212,6 @@ mu_msg_iter_get_field_numeric (MuMsgIter *iter, MuMsgFieldId mfid) } MU_XAPIAN_CATCH_BLOCK_RETURN(static_cast(-1)); } -static long -get_field_number (MuMsgIter *iter, MuMsgFieldId mfid) -{ - const char* str = mu_msg_iter_get_field(iter, mfid); - return str ? atol (str) : 0; -} - - - /* hmmm.... is it impossible to get a 0 docid, or just very improbable? */ unsigned int mu_msg_iter_get_docid (MuMsgIter *iter) @@ -292,8 +283,14 @@ size_t mu_msg_iter_get_size (MuMsgIter *iter) { g_return_val_if_fail (!mu_msg_iter_is_done(iter), 0); - return static_cast(get_field_number - (iter, MU_MSG_FIELD_ID_SIZE)); + + try { + return static_cast( + Xapian::sortable_unserialise( + mu_msg_iter_get_field + (iter,MU_MSG_FIELD_ID_SIZE))); + + } MU_XAPIAN_CATCH_BLOCK_RETURN(0); }