示例#1
0
文件: mu-cmd-find.c 项目: migadu/mu
static gboolean
output_query_results (MuMsgIter *iter, MuConfig *opts, GError **err)
{
        int              count;
        gboolean         rv;
        OutputFunc      *output_func;

        output_func = output_prepare (opts, err);
        if (!output_func)
                return FALSE;

        for (count = 0, rv = TRUE; !mu_msg_iter_is_done(iter);
             mu_msg_iter_next (iter)) {

                MuMsg *msg;

                if (count == opts->maxnum)
                        break;
                msg = get_message (iter, opts->after);
                if (!msg)
                        break;

                /* { */
                /*      const char* thread_id; */
                /*      thread_id = mu_msg_iter_get_thread_id (iter); */
                /*      g_print ("%s ", thread_id ? thread_id : "<none>"); */

                /* } */
                rv = output_func (msg, iter, opts, err);
                if (!rv)
                        break;
                else
                        ++count;
        }

        output_finish (opts);

        if (rv && count == 0) {
                mu_util_g_set_error (err, MU_ERROR_NO_MATCHES,
                                     "no matches for search expression");
                return FALSE;
        }

        return rv;
}
示例#2
0
文件: mu-cmd-find.c 项目: Popsch/mu
static gboolean
output_query_results (MuMsgIter *iter, MuConfig *opts, GError **err)
{
	unsigned count;
	gboolean rv;
	OutputFunc *output_func;

	output_func = output_prepare (opts, err);
	if (!output_func)
		return FALSE;

	for (count = 0, rv = TRUE; !mu_msg_iter_is_done(iter);
	     mu_msg_iter_next (iter)) {

		MuMsg *msg;

		msg = get_message (iter, opts->after);
		if (!msg)
			break;

		rv = output_func (msg, iter, opts, err);
		if (!rv)
			break;
		else
			++count;
	}

	output_finish (opts);

	if (rv && count == 0) {
		mu_util_g_set_error (err, MU_ERROR_NO_MATCHES,
				     "no matches for search expression");
		return FALSE;
	}

	return rv;
}