]> git.notmuchmail.org Git - notmuch/blobdiff - status.c
fix leaks due to missing invocations of va_end
[notmuch] / status.c
index 8fa81cbf7a2b85c2bf671c517b9edc212622d8b4..8bc2fe4b47ecba8af5246f8389f9e62f2e33f88c 100644 (file)
--- a/status.c
+++ b/status.c
@@ -19,3 +19,36 @@ print_status_query (const char *loc,
     }
     return status;
 }
+
+notmuch_status_t
+print_status_database (const char *loc,
+                   const notmuch_database_t *notmuch,
+                   notmuch_status_t status)
+{
+    if (status) {
+       const char *msg;
+
+       fprintf (stderr, "%s: %s\n", loc,
+                notmuch_status_to_string (status));
+       msg = notmuch_database_status_string (notmuch);
+       if (msg)
+           fputs (msg, stderr);
+    }
+    return status;
+}
+
+int
+status_to_exit (notmuch_status_t status)
+{
+    switch (status) {
+    case NOTMUCH_STATUS_SUCCESS:
+       return EXIT_SUCCESS;
+    case NOTMUCH_STATUS_OUT_OF_MEMORY:
+    case NOTMUCH_STATUS_XAPIAN_EXCEPTION:
+    case NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID:
+    case NOTMUCH_STATUS_FILE_ERROR:
+       return EX_TEMPFAIL;
+    default:
+       return EXIT_FAILURE;
+    }
+}