summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2010-11-24 00:48:28 +0200
committerDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2010-11-24 00:48:28 +0200
commite5089c06a3f0d87c4911f3cda97c197f2803632f (patch)
tree4692b759dee27ed2482498f9745f7971dc5d3a91 /src
parentb87b5d25fdc586d3ab36365d26f5542e40a2824b (diff)
* mu-cmd-find.c: update for GErrors in mu_query; fix uninit'd var problem
Diffstat (limited to 'src')
-rw-r--r--src/mu-cmd-find.c42
1 files changed, 30 insertions, 12 deletions
diff --git a/src/mu-cmd-find.c b/src/mu-cmd-find.c
index ef400d4..b00c307 100644
--- a/src/mu-cmd-find.c
+++ b/src/mu-cmd-find.c
@@ -57,10 +57,18 @@ static gboolean
print_xapian_query (MuQuery *xapian, const gchar *query)
{
char *querystr;
-
- MU_WRITE_LOG ("query: '%s' (xquery)", query);
+ GError *err;
- querystr = mu_query_as_string (xapian, query);
+ MU_WRITE_LOG ("query: '%s' (xquery)", query);
+
+ err = NULL;
+ querystr = mu_query_as_string (xapian, query, &err);
+ if (!querystr) {
+ g_warning ("Error: %s", err->message);
+ g_error_free (err);
+ return FALSE;
+ }
+
g_print ("%s\n", querystr);
g_free (querystr);
@@ -132,6 +140,7 @@ make_links (MuMsgIter *iter, const char* linksdir, gboolean clearlinks)
static gboolean
run_query (MuQuery *xapian, const gchar *query, MuConfigOptions *opts)
{
+ GError *err;
MuMsgIter *iter;
MuMsgFieldId sortid;
size_t matches;
@@ -142,11 +151,13 @@ run_query (MuQuery *xapian, const gchar *query, MuConfigOptions *opts)
if (sortid == MU_MSG_FIELD_ID_NONE) /* error occured? */
return FALSE;
}
-
+
+ err = NULL;
iter = mu_query_run (xapian, query, sortid,
- opts->descending ? FALSE : TRUE, 0);
+ opts->descending ? FALSE : TRUE, 0, &err);
if (!iter) {
- g_printerr ("error: running query failed\n");
+ g_warning ("Error: %s", err->message);
+ g_error_free (err);
return FALSE;
}
@@ -224,9 +235,13 @@ get_query (MuConfigOptions *opts)
g_warning ("Empty search query");
return FALSE;
}
-
- if (opts->bookmark && ((bookmarkval = resolve_bookmark (opts)) == NULL))
- return NULL;
+
+ bookmarkval = NULL;
+ if (opts->bookmark) {
+ bookmarkval = resolve_bookmark (opts);
+ if (!bookmarkval)
+ return NULL;
+ }
query = mu_util_str_from_strv ((const gchar**)&opts->params[1]);
if (bookmarkval) {
@@ -262,6 +277,7 @@ db_is_ready (const char *xpath)
gboolean
mu_cmd_find (MuConfigOptions *opts)
{
+ GError *err;
MuQuery *xapian;
gboolean rv;
gchar *query;
@@ -281,10 +297,12 @@ mu_cmd_find (MuConfigOptions *opts)
query = get_query (opts);
if (!query)
return FALSE;
-
- xapian = mu_query_new (xpath);
+
+ err = NULL;
+ xapian = mu_query_new (xpath, &err);
if (!xapian) {
- g_warning ("Failed to create a Xapian query\n");
+ g_warning ("Error: %s", err->message);
+ g_error_free (err);
return FALSE;
}