X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=status.c;h=09d82a172ba8315aa5184db0aa6bedfa6651b180;hp=8fa81cbf7a2b85c2bf671c517b9edc212622d8b4;hb=HEAD;hpb=33c8777a967ece2dd4bbda7e83a4e07c195abf51;ds=sidebyside diff --git a/status.c b/status.c index 8fa81cbf..09d82a17 100644 --- a/status.c +++ b/status.c @@ -19,3 +19,70 @@ 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) +{ + 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; + } +} + +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; + } +} +