cli: add utility routine to print error status.
authorDavid Bremner <david@tethera.net>
Sun, 6 Sep 2015 13:15:45 +0000 (10:15 -0300)
committerDavid Bremner <david@tethera.net>
Sun, 20 Sep 2015 11:04:31 +0000 (08:04 -0300)
No attention to formatting here, initially just focus on getting the
relevant strings out of the library.

Makefile.local
notmuch-client.h
status.c [new file with mode: 0644]

index 61a9c4c3a7398ada89ff7dc7a78bd0f7af473ae2..d58cea04746a498efe0b2016822b6671822f631c 100644 (file)
@@ -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               \
index 882aa30563df68283bdac24d82e548980c6c9355..de8a3b15f86558886f79abaf909995192a75d09a 100644 (file)
@@ -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 (file)
index 0000000..8fa81cb
--- /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;
+}