notmuch/status.c

55 lines
1.1 KiB
C
Raw Normal View History

#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_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;
}
}