X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=status.c;h=d0ae47f4d03cb6eb5522df2913f170d77d15e71f;hp=45d3fb4e230e9426a194e045421aaaa6dcba684b;hb=33382c2b5ba2537952a60ea378feff36961e4713;hpb=ccf0db161590e2aac7db0e049547c347ab4db528 diff --git a/status.c b/status.c index 45d3fb4e..d0ae47f4 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,19 @@ 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; + } +}