try-emacs-mua: Trim `require' advice for Emacs 25
[notmuch] / status.c
index 8bc2fe4b47ecba8af5246f8389f9e62f2e33f88c..09d82a172ba8315aa5184db0aa6bedfa6651b180 100644 (file)
--- a/status.c
+++ b/status.c
@@ -20,10 +20,30 @@ print_status_query (const char *loc,
     return status;
 }
 
+notmuch_status_t
+print_status_message (const char *loc,
+                     const notmuch_message_t *message,
+                     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_message_get_database (message);
+       msg = notmuch_database_status_string (notmuch);
+       if (msg)
+           fputs (msg, stderr);
+    }
+    return status;
+}
+
 notmuch_status_t
 print_status_database (const char *loc,
-                   const notmuch_database_t *notmuch,
-                   notmuch_status_t status)
+                      const notmuch_database_t *notmuch,
+                      notmuch_status_t status)
 {
     if (status) {
        const char *msg;
@@ -52,3 +72,17 @@ status_to_exit (notmuch_status_t status)
        return EXIT_FAILURE;
     }
 }
+
+notmuch_status_t
+print_status_gzbytes (const char *loc, gzFile file, int bytes)
+{
+    if (bytes <= 0) {
+       int errnum;
+       const char *errstr = gzerror (file, &errnum);
+       fprintf (stderr, "%s: zlib error %s (%d)\n", loc, errstr, errnum);
+       return NOTMUCH_STATUS_FILE_ERROR;
+    } else {
+       return NOTMUCH_STATUS_SUCCESS;
+    }
+}
+