mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 03:48:10 +01:00
89 lines
1.9 KiB
C
89 lines
1.9 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;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
}
|
||
|
|