notmuch/status.c
Daniel Kahn Gillmor f32e52448b cli: add print_status_message()
This function is a parallel to print_status_query() or
print_status_database().  Thanks to David Bremner for the suggestion!
2018-05-26 07:32:14 -07:00

74 lines
1.6 KiB
C

#include "notmuch-client.h"
notmuch_status_t
print_status_query (const char *loc,
const notmuch_query_t *query,
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_query_get_database (query);
msg = notmuch_database_status_string (notmuch);
if (msg)
fputs (msg, stderr);
}
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;
}
}