X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=status.c;h=09d82a172ba8315aa5184db0aa6bedfa6651b180;hp=45d3fb4e230e9426a194e045421aaaa6dcba684b;hb=HEAD;hpb=ccf0db161590e2aac7db0e049547c347ab4db528 diff --git a/status.c b/status.c index 45d3fb4e..09d82a17 100644 --- 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; @@ -36,3 +56,33 @@ print_status_database (const char *loc, } 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; + } +} + +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; + } +} +