Exemplo n.º 1
0
static MuMsgIter*
run_query (MuQuery *xapian, const gchar *query, MuConfig *opts,  GError **err)
{
	MuMsgIter *iter;
	MuMsgFieldId sortid;
	MuQueryFlags qflags;

	sortid = MU_MSG_FIELD_ID_NONE;
	if (opts->sortfield) {
		sortid = sort_field_from_string (opts->sortfield, err);
		if (sortid == MU_MSG_FIELD_ID_NONE) /* error occured? */
			return FALSE;
	}

	qflags = MU_QUERY_FLAG_NONE;
	if (opts->reverse)
		qflags |= MU_QUERY_FLAG_DESCENDING;
	if (opts->skip_dups)
		qflags |= MU_QUERY_FLAG_SKIP_DUPS;
	if (opts->include_related)
		qflags |= MU_QUERY_FLAG_INCLUDE_RELATED;
	if (opts->threads)
		qflags |= MU_QUERY_FLAG_THREADS;

	iter = mu_query_run (xapian, query, sortid, opts->maxnum, qflags, err);
	return iter;
}
Exemplo n.º 2
0
static MuMsgIter*
run_query (MuQuery *xapian, const gchar *query, MuConfig *opts,  GError **err)
{
	MuMsgIter *iter;
	MuMsgFieldId sortid;

	sortid = MU_MSG_FIELD_ID_NONE;
	if (opts->sortfield) {
		sortid = sort_field_from_string (opts->sortfield, err);
		if (sortid == MU_MSG_FIELD_ID_NONE) /* error occured? */
			return FALSE;
	}

	iter = mu_query_run (xapian, query, opts->threads, sortid,
			     opts->reverse, -1, err);
	return iter;
}