[PATCH 3/6] status: add print_status_gzbytes
David Bremner
david at tethera.net
Mon Apr 13 05:36:20 PDT 2020
This is in the client code, rather than libnotmuch_util, because it
prints to stderr. Also it in pretends to generate notmuch status
codes.
---
notmuch-client.h | 8 +++++++-
status.c | 14 ++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/notmuch-client.h b/notmuch-client.h
index 89e15ba6..467e1d84 100644
--- a/notmuch-client.h
+++ b/notmuch-client.h
@@ -49,6 +49,7 @@
#include <errno.h>
#include <signal.h>
#include <ctype.h>
+#include <zlib.h>
#include "talloc-extra.h"
#include "crypto.h"
@@ -469,7 +470,7 @@ notmuch_database_dump (notmuch_database_t *notmuch,
dump_include_t include,
bool gzip_output);
-/* If status is non-zero (i.e. error) print appropriate
+/* If status indicates error print appropriate
* messages to stderr.
*/
@@ -491,6 +492,11 @@ print_status_database (const char *loc,
int
status_to_exit (notmuch_status_t status);
+notmuch_status_t
+print_status_gzbytes (const char *loc,
+ gzFile file,
+ int bytes);
+
#include "command-line-arguments.h"
extern const char *notmuch_requested_db_uuid;
diff --git a/status.c b/status.c
index d0ae47f4..09d82a17 100644
--- a/status.c
+++ b/status.c
@@ -72,3 +72,17 @@ status_to_exit (notmuch_status_t status)
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;
+ }
+}
+
--
2.25.1
More information about the notmuch
mailing list