mirror of https://github.com/djcb/mu.git
* add mu_msg_iter_reset (to reset iter to the beginning), add tests
This commit is contained in:
parent
4c1baccc86
commit
4dfe33609b
|
@ -124,6 +124,21 @@ update_msg (MuMsgIter *iter)
|
|||
}
|
||||
|
||||
|
||||
gboolean
|
||||
mu_msg_iter_reset (MuMsgIter *iter)
|
||||
{
|
||||
g_return_val_if_fail (iter, FALSE);
|
||||
|
||||
try {
|
||||
iter->_cursor = iter->_matches.begin();
|
||||
|
||||
} MU_XAPIAN_CATCH_BLOCK_RETURN (FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
gboolean
|
||||
mu_msg_iter_next (MuMsgIter *iter)
|
||||
{
|
||||
|
|
|
@ -62,6 +62,16 @@ MuMsgIter *mu_msg_iter_new (XapianEnquire *enq,
|
|||
gboolean mu_msg_iter_next (MuMsgIter *iter);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* reset the iterator to the beginning
|
||||
*
|
||||
* @param iter a valid MuMsgIter iterator
|
||||
*
|
||||
* @return TRUE if it succeeded, FALSE otherwise
|
||||
*/
|
||||
gboolean mu_msg_iter_reset (MuMsgIter *iter);
|
||||
|
||||
/**
|
||||
* does this iterator point past the end of the list?
|
||||
*
|
||||
|
|
|
@ -65,7 +65,7 @@ run_and_count_matches (const char *xpath, const char *query)
|
|||
{
|
||||
MuQuery *mquery;
|
||||
MuMsgIter *iter;
|
||||
guint count;
|
||||
guint count1, count2;
|
||||
|
||||
mquery = mu_query_new (xpath, NULL);
|
||||
g_assert (query);
|
||||
|
@ -85,12 +85,20 @@ run_and_count_matches (const char *xpath, const char *query)
|
|||
mu_query_destroy (mquery);
|
||||
g_assert (iter);
|
||||
|
||||
for (count = 0; !mu_msg_iter_is_done(iter);
|
||||
mu_msg_iter_next(iter), ++count);
|
||||
/* run query twice, to test mu_msg_iter_reset */
|
||||
for (count1 = 0; !mu_msg_iter_is_done(iter);
|
||||
mu_msg_iter_next(iter), ++count1);
|
||||
|
||||
g_assert(mu_msg_iter_reset (iter));
|
||||
|
||||
for (count2 = 0; !mu_msg_iter_is_done(iter);
|
||||
mu_msg_iter_next(iter), ++count2);
|
||||
|
||||
mu_msg_iter_destroy (iter);
|
||||
|
||||
g_assert_cmpuint (count1, ==, count2);
|
||||
|
||||
return count;
|
||||
return count1;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue