* mu-cmd-server.c: get initially, get *all* messages when doing a threaded
search. thus, it's more likely we get full threads, since threading is done on all messages.
This commit is contained in:
@ -523,12 +523,12 @@ cmd_compose (MuStore *store, MuQuery *query, GSList *args, GError **err)
|
|||||||
|
|
||||||
|
|
||||||
static unsigned
|
static unsigned
|
||||||
print_sexps (MuMsgIter *iter, gboolean threads)
|
print_sexps (MuMsgIter *iter, gboolean threads, unsigned maxnum)
|
||||||
{
|
{
|
||||||
unsigned u;
|
unsigned u;
|
||||||
u = 0;
|
u = 0;
|
||||||
|
|
||||||
while (!mu_msg_iter_is_done (iter) && !MU_TERMINATE) {
|
while (!mu_msg_iter_is_done (iter) && u < maxnum && !MU_TERMINATE) {
|
||||||
|
|
||||||
MuMsg *msg;
|
MuMsg *msg;
|
||||||
msg = mu_msg_iter_get_msg_floating (iter);
|
msg = mu_msg_iter_get_msg_floating (iter);
|
||||||
@ -750,8 +750,11 @@ cmd_find (MuStore *store, MuQuery *query, GSList *args, GError **err)
|
|||||||
return MU_OK;
|
return MU_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* note: when we're threading, we get *all* messages, and then
|
||||||
|
* only return maxnum; this is so that we maximimize the
|
||||||
|
* change of all messages in a thread showing up */
|
||||||
iter = mu_query_run (query, querystr, threads, sortfield, reverse,
|
iter = mu_query_run (query, querystr, threads, sortfield, reverse,
|
||||||
maxnum, err);
|
threads ? -1 : maxnum, err);
|
||||||
if (!iter) {
|
if (!iter) {
|
||||||
print_and_clear_g_error (err);
|
print_and_clear_g_error (err);
|
||||||
return MU_OK;
|
return MU_OK;
|
||||||
@ -762,7 +765,7 @@ cmd_find (MuStore *store, MuQuery *query, GSList *args, GError **err)
|
|||||||
* will ensure that the output of two finds will not be
|
* will ensure that the output of two finds will not be
|
||||||
* mixed. */
|
* mixed. */
|
||||||
print_expr ("(:erase t)");
|
print_expr ("(:erase t)");
|
||||||
foundnum = print_sexps (iter, threads);
|
foundnum = print_sexps (iter, threads, maxnum > 0 ? maxnum : G_MAXINT32);
|
||||||
print_expr ("(:found %u)", foundnum);
|
print_expr ("(:found %u)", foundnum);
|
||||||
mu_msg_iter_destroy (iter);
|
mu_msg_iter_destroy (iter);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user