aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2015-09-06 10:15:45 -0300
committerDavid Bremner <david@tethera.net>2015-09-20 08:04:31 -0300
commit39c54df26dad01e3ec294f7c4a613d9ee71faf3e (patch)
treeff665f59381f72704a7bbee72054269c29b3a596
parentd4321162ae1bd5cbbf620a8bc26cec5430acf90b (diff)
cli: add utility routine to print error status.
No attention to formatting here, initially just focus on getting the relevant strings out of the library.
-rw-r--r--Makefile.local1
-rw-r--r--notmuch-client.h9
-rw-r--r--status.c21
3 files changed, 31 insertions, 0 deletions
diff --git a/Makefile.local b/Makefile.local
index 61a9c4c3..d58cea04 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -271,6 +271,7 @@ dataclean: distclean
notmuch_client_srcs = \
command-line-arguments.c\
debugger.c \
+ status.c \
gmime-filter-reply.c \
hooks.c \
notmuch.c \
diff --git a/notmuch-client.h b/notmuch-client.h
index 882aa305..de8a3b15 100644
--- a/notmuch-client.h
+++ b/notmuch-client.h
@@ -449,6 +449,15 @@ notmuch_database_dump (notmuch_database_t *notmuch,
dump_format_t output_format,
notmuch_bool_t gzip_output);
+/* If status is non-zero (i.e. error) print appropriate
+ messages to stderr.
+*/
+
+notmuch_status_t
+print_status_query (const char *loc,
+ const notmuch_query_t *query,
+ notmuch_status_t status);
+
#include "command-line-arguments.h"
extern char *notmuch_requested_db_uuid;
diff --git a/status.c b/status.c
new file mode 100644
index 00000000..8fa81cbf
--- /dev/null
+++ b/status.c
@@ -0,0 +1,21 @@
+#include "notmuch-client.h"
+
+notmuch_status_t
+print_status_query (const char *loc,
+ const notmuch_query_t *query,
+ notmuch_status_t status)
+{
+ if (status) {
+ const char *msg;
+ notmuch_database_t *notmuch;
+
+ fprintf (stderr, "%s: %s\n", loc,
+ notmuch_status_to_string (status));
+
+ notmuch = notmuch_query_get_database (query);
+ msg = notmuch_database_status_string (notmuch);
+ if (msg)
+ fputs (msg, stderr);
+ }
+ return status;
+}