#include <errno.h>
#include <signal.h>
#include <ctype.h>
+#include <zlib.h>
#include "talloc-extra.h"
#include "crypto.h"
/* notmuch-config.c */
typedef enum {
- NOTMUCH_CONFIG_OPEN = 1 << 0,
- NOTMUCH_CONFIG_CREATE = 1 << 1,
-} notmuch_config_mode_t;
+ NOTMUCH_COMMAND_CONFIG_OPEN = 1 << 0,
+ NOTMUCH_COMMAND_CONFIG_CREATE = 1 << 1,
+ NOTMUCH_COMMAND_DATABASE_EARLY = 1 << 2,
+ NOTMUCH_COMMAND_DATABASE_WRITE = 1 << 3,
+} notmuch_command_mode_t;
notmuch_config_t *
notmuch_config_open (void *ctx,
const char *filename,
- notmuch_config_mode_t config_mode);
+ notmuch_command_mode_t config_mode);
void
notmuch_config_close (notmuch_config_t *config);
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.
*/
int
status_to_exit (notmuch_status_t status);
+notmuch_status_t
+print_status_gzbytes (const char *loc,
+ gzFile file,
+ int bytes);
+
+/* the __location__ macro is defined in talloc.h */
+#define ASSERT_GZBYTES(file, bytes) ((print_status_gzbytes (__location__, file, bytes)) ? exit (1) : 0)
+#define GZPRINTF(file, fmt, ...) ASSERT_GZBYTES (file, gzprintf (file, fmt, ##__VA_ARGS__));
+#define GZPUTS(file, str) ASSERT_GZBYTES(file, gzputs (file, str));
+
#include "command-line-arguments.h"
extern const char *notmuch_requested_db_uuid;