diff --git a/src/mu-cmd-find.c b/src/mu-cmd-find.c index a3691753..ef400d40 100644 --- a/src/mu-cmd-find.c +++ b/src/mu-cmd-find.c @@ -79,8 +79,7 @@ sort_field_from_string (const char* fieldstr) if (mfid == MU_MSG_FIELD_ID_NONE && strlen(fieldstr) == 1) mfid = mu_msg_field_id_from_shortcut(fieldstr[0], - FALSE); - + FALSE); if (mfid == MU_MSG_FIELD_ID_NONE) g_warning ("Not a valid sort field: '%s'\n", fieldstr); @@ -144,7 +143,8 @@ run_query (MuQuery *xapian, const gchar *query, MuConfigOptions *opts) return FALSE; } - iter = mu_query_run (xapian, query, sortid, !opts->descending, 0); + iter = mu_query_run (xapian, query, sortid, + opts->descending ? FALSE : TRUE, 0); if (!iter) { g_printerr ("error: running query failed\n"); return FALSE; diff --git a/src/mu-config.c b/src/mu-config.c index fcf5fa06..8f18f011 100644 --- a/src/mu-config.c +++ b/src/mu-config.c @@ -122,9 +122,11 @@ set_group_find_defaults (MuConfigOptions *opts) * date-from-subject, and sort descending by date. If fields * *are* specified, we sort in ascending order. */ if (!opts->fields) { - opts->descending = TRUE; opts->fields = "d f s"; - opts->sortfield = "d"; + if (!opts->sortfield) { + opts->sortfield = "d"; + opts->descending = TRUE; + } } if (opts->linksdir) { diff --git a/src/mu-msg-iter.cc b/src/mu-msg-iter.cc index 0ee0241f..69cb8bdb 100644 --- a/src/mu-msg-iter.cc +++ b/src/mu-msg-iter.cc @@ -213,14 +213,6 @@ mu_msg_iter_get_field_numeric (MuMsgIter *iter, MuMsgFieldId mfid) } MU_XAPIAN_CATCH_BLOCK_RETURN(static_cast(-1)); } - - -// static const gchar* -// get_field (MuMsgIter *iter, MuMsgFieldId mfid) -// { -// return mu_msg_iter_get_field(iter, mfid); -// } - static long get_field_number (MuMsgIter *iter, MuMsgFieldId mfid) { diff --git a/src/mu-query.cc b/src/mu-query.cc index 5d6976bc..2f65d702 100644 --- a/src/mu-query.cc +++ b/src/mu-query.cc @@ -130,7 +130,6 @@ static void add_prefix (MuMsgFieldId field, Xapian::QueryParser* qparser); struct _MuQuery { Xapian::Database* _db; Xapian::QueryParser* _qparser; - Xapian::Sorter* _sorters[MU_MSG_FIELD_TYPE_NUM]; Xapian::ValueRangeProcessor* _range_processor; }; @@ -151,7 +150,6 @@ init_mu_query (MuQuery *mqx, const char* dbpath) mqx->_qparser->add_valuerangeprocessor (mqx->_range_processor); - memset (mqx->_sorters, 0, sizeof(mqx->_sorters)); mu_msg_field_foreach ((MuMsgFieldForEachFunc)add_prefix, (gpointer)mqx->_qparser); @@ -176,10 +174,7 @@ uninit_mu_query (MuQuery *mqx) delete mqx->_db; delete mqx->_qparser; delete mqx->_range_processor; - - for (int i = 0; i != MU_MSG_FIELD_TYPE_NUM; ++i) - delete mqx->_sorters[i]; - + } MU_XAPIAN_CATCH_BLOCK; } @@ -383,8 +378,8 @@ mu_query_run (MuQuery *self, const char* searchexpr, g_return_val_if_fail (self, NULL); g_return_val_if_fail (searchexpr, NULL); g_return_val_if_fail (mu_msg_field_id_is_valid (sortfieldid) || - sortfieldid == MU_MSG_FIELD_ID_NONE, NULL); - + sortfieldid == MU_MSG_FIELD_ID_NONE, + NULL); try { char *preprocessed; int err (0); @@ -403,15 +398,14 @@ mu_query_run (MuQuery *self, const char* searchexpr, if (batchsize == 0) batchsize = self->_db->get_doccount(); - - if (sortfieldid != MU_MSG_FIELD_ID_NONE) - enq.set_sort_by_value ( - (Xapian::valueno)sortfieldid, - ascending ? true : false); + if (sortfieldid != MU_MSG_FIELD_ID_NONE) + enq.set_sort_by_value ((Xapian::valueno)sortfieldid, + ascending ? true : false); enq.set_query(q); enq.set_cutoff(0,0); + return mu_msg_iter_new (enq, batchsize); } MU_XAPIAN_CATCH_BLOCK_RETURN(NULL);