From 9133750d24cb4c29c72f2eab39f70797bbb63c61 Mon Sep 17 00:00:00 2001 From: djcb Date: Tue, 12 Jun 2012 11:55:59 +0300 Subject: [PATCH] * mu-str.c: fix bug in check_for_field --- lib/mu-query.cc | 3 +-- lib/mu-str.c | 5 +++-- mu/tests/test-mu-query.c | 19 ++++++++++++++++--- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/lib/mu-query.cc b/lib/mu-query.cc index b376628f..10a72fdd 100644 --- a/lib/mu-query.cc +++ b/lib/mu-query.cc @@ -265,8 +265,7 @@ mu_query_new (MuStore *store, GError **err) try { return new MuQuery (store); - } MU_XAPIAN_CATCH_BLOCK_G_ERROR_RETURN (err, - MU_ERROR_XAPIAN, 0); + } MU_XAPIAN_CATCH_BLOCK_G_ERROR_RETURN (err, MU_ERROR_XAPIAN, 0); return 0; } diff --git a/lib/mu-str.c b/lib/mu-str.c index aca24217..94cc8454 100644 --- a/lib/mu-str.c +++ b/lib/mu-str.c @@ -401,7 +401,8 @@ each_check_prefix (MuMsgFieldId mfid, CheckPrefix *cpfx) static void -check_for_field (const char *str, gboolean *is_field, gboolean *is_range_field) +check_for_field (const char *str, gboolean *is_field, + gboolean *is_range_field) { CheckPrefix pfx; @@ -410,7 +411,7 @@ check_for_field (const char *str, gboolean *is_field, gboolean *is_range_field) /* skip any non-alphanum starts in cpfx->str; this is to * handle the case where we have e.g. "(maildir:/abc)" */ - while (pfx.str && !isalnum(*pfx.str)) + while (pfx.str && *pfx.str && !isalnum(*pfx.str)) ++pfx.str; pfx.match = pfx.range_field = FALSE; diff --git a/mu/tests/test-mu-query.c b/mu/tests/test-mu-query.c index 8315327c..abd2f482 100644 --- a/mu/tests/test-mu-query.c +++ b/mu/tests/test-mu-query.c @@ -91,12 +91,25 @@ run_and_count_matches (const char *xpath, const char *query) MuMsgIter *iter; MuStore *store; guint count1, count2; + GError *err; - store = mu_store_new_read_only (xpath, NULL); + err = NULL; + store = mu_store_new_read_only (xpath, &err); + if (err) { + g_printerr ("error: %s\n", err->message); + g_clear_error (&err); + err = NULL; + } g_assert (store); - mquery = mu_query_new (store, NULL); - g_assert (query); + mquery = mu_query_new (store, &err); + if (err) { + g_printerr ("error: %s\n", err->message); + g_clear_error (&err); + err = NULL; + } + + g_assert (mquery); mu_store_unref (store);