struct notmuch_show_params;
typedef struct notmuch_show_format {
- struct sprinter *(*new_sprinter)(const void *ctx, FILE *stream);
+ struct sprinter *(*new_sprinter)(notmuch_database_t * db, FILE *stream);
notmuch_status_t (*part)(const void *ctx, struct sprinter *sprinter,
struct mime_node *node, int indent,
const struct notmuch_show_params *params);
bool entire_thread;
bool omit_excluded;
bool output_body;
+ int duplicate;
int part;
+ int offset;
+ int limit;
_notmuch_crypto_t crypto;
bool include_html;
GMimeStream *out_stream;
* this. New (required) map fields can be added without increasing
* this.
*/
-#define NOTMUCH_FORMAT_CUR 4
+#define NOTMUCH_FORMAT_CUR 5
/* The minimum supported structured output format version. Requests
* for format versions below this will return an error. */
#define NOTMUCH_FORMAT_MIN 1
*/
extern int notmuch_format_version;
-typedef struct _notmuch_config notmuch_config_t;
+typedef struct _notmuch_conffile notmuch_conffile_t;
/* Commands that support structured output should support the
* following argument
notmuch_exit_if_unsupported_format (void);
int
-notmuch_count_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_count_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_dump_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_dump_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_new_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_new_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_insert_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_insert_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_reindex_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_reindex_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_reply_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_reply_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_restore_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_restore_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_search_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_search_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_address_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_address_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_setup_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_setup_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_show_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_show_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_tag_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_tag_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_config_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_config_command (notmuch_database_t *notmuch, int argc, char *argv[]);
int
-notmuch_compact_command (notmuch_config_t *config, notmuch_database_t *notmuch,
- int argc, char *argv[]);
+notmuch_compact_command (notmuch_database_t *notmuch, int argc, char *argv[]);
const char *
notmuch_time_relative_date (const void *ctx, time_t then);
void
format_part_sprinter (const void *ctx, struct sprinter *sp, mime_node_t *node,
+ int duplicate,
bool output_body,
bool include_html);
char *
json_quote_str (const void *ctx, const char *str);
+/* notmuch-client-init.c */
+
+void notmuch_client_init (void);
+
/* notmuch-config.c */
typedef enum {
- 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_CONFIG_LOAD = 1 << 5,
} notmuch_command_mode_t;
-notmuch_config_t *
-notmuch_config_open (notmuch_database_t *notmuch,
- const char *filename,
- notmuch_command_mode_t config_mode);
+notmuch_conffile_t *
+notmuch_conffile_open (notmuch_database_t *notmuch,
+ const char *filename,
+ bool create);
void
-notmuch_config_close (notmuch_config_t *config);
+notmuch_conffile_close (notmuch_conffile_t *config);
int
-notmuch_config_save (notmuch_config_t *config);
+notmuch_conffile_save (notmuch_conffile_t *config);
bool
-notmuch_config_is_new (notmuch_config_t *config);
-
-const char *
-notmuch_config_get_database_path (notmuch_config_t *config);
-
-void
-notmuch_config_set_database_path (notmuch_config_t *config,
- const char *database_path);
-
-const char *
-notmuch_config_get_user_name (notmuch_config_t *config);
+notmuch_conffile_is_new (notmuch_conffile_t *config);
void
-notmuch_config_set_user_name (notmuch_config_t *config,
- const char *user_name);
-
-const char *
-notmuch_config_get_user_primary_email (notmuch_config_t *config);
+notmuch_conffile_set_database_path (notmuch_conffile_t *config,
+ const char *database_path);
void
-notmuch_config_set_user_primary_email (notmuch_config_t *config,
- const char *primary_email);
-
-const char **
-notmuch_config_get_user_other_email (notmuch_config_t *config,
- size_t *length);
+notmuch_conffile_set_user_name (notmuch_conffile_t *config,
+ const char *user_name);
void
-notmuch_config_set_user_other_email (notmuch_config_t *config,
- const char *other_email[],
- size_t length);
+notmuch_conffile_set_user_primary_email (notmuch_conffile_t *config,
+ const char *primary_email);
-const char **
-notmuch_config_get_new_tags (notmuch_config_t *config,
- size_t *length);
void
-notmuch_config_set_new_tags (notmuch_config_t *config,
- const char *new_tags[],
- size_t length);
-
-const char **
-notmuch_config_get_new_ignore (notmuch_config_t *config,
- size_t *length);
+notmuch_conffile_set_user_other_email (notmuch_conffile_t *config,
+ const char *other_email[],
+ size_t length);
void
-notmuch_config_set_new_ignore (notmuch_config_t *config,
- const char *new_ignore[],
+notmuch_conffile_set_new_tags (notmuch_conffile_t *config,
+ const char *new_tags[],
size_t length);
-bool
-notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config);
-
void
-notmuch_config_set_maildir_synchronize_flags (notmuch_config_t *config,
- bool synchronize_flags);
-
-const char **
-notmuch_config_get_search_exclude_tags (notmuch_config_t *config, size_t *length);
+notmuch_conffile_set_new_ignore (notmuch_conffile_t *config,
+ const char *new_ignore[],
+ size_t length);
void
-notmuch_config_set_search_exclude_tags (notmuch_config_t *config,
- const char *list[],
- size_t length);
-const char *
-_notmuch_config_get_path (notmuch_config_t *config);
+notmuch_conffile_set_maildir_synchronize_flags (notmuch_conffile_t *config,
+ bool synchronize_flags);
+void
+notmuch_conffile_set_search_exclude_tags (notmuch_conffile_t *config,
+ const char *list[],
+ size_t length);
int
notmuch_run_hook (notmuch_database_t *notmuch, const char *hook);
};
/* Construct a new MIME node pointing to the root message part of
- * message. If crypto->verify is true, signed child parts will be
+ * message. Use the duplicate-th filename if that parameter is
+ * positive. If crypto->verify is true, signed child parts will be
* verified. If crypto->decrypt is NOTMUCH_DECRYPT_TRUE, encrypted
* child parts will be decrypted using either stored session keys or
* asymmetric crypto. If crypto->decrypt is NOTMUCH_DECRYPT_AUTO,
*/
notmuch_status_t
mime_node_open (const void *ctx, notmuch_message_t *message,
+ int duplicate,
_notmuch_crypto_t *crypto, mime_node_t **node_out);
/* Return a new MIME node for the requested child part of parent.
const _notmuch_message_crypto_t *
mime_node_get_message_crypto_status (mime_node_t *node);
-typedef enum dump_formats {
+typedef enum {
DUMP_FORMAT_AUTO,
DUMP_FORMAT_BATCH_TAG,
DUMP_FORMAT_SUP
} dump_format_t;
-typedef enum dump_includes {
+typedef enum {
DUMP_INCLUDE_TAGS = 1,
DUMP_INCLUDE_CONFIG = 2,
DUMP_INCLUDE_PROPERTIES = 4
#include "command-line-arguments.h"
-extern const char *notmuch_requested_db_uuid;
extern const notmuch_opt_desc_t notmuch_shared_options [];
-void notmuch_exit_if_unmatched_db_uuid (notmuch_database_t *notmuch);
-void notmuch_process_shared_options (const char *subcommand_name);
+notmuch_query_syntax_t shared_option_query_syntax ();
+
+void notmuch_process_shared_options (notmuch_database_t *notmuch, const char *subcommand_name);
int notmuch_minimal_options (const char *subcommand_name,
int argc, char **argv);
struct _notmuch_client_indexing_cli_choices {
int decrypt_policy;
bool decrypt_policy_set;
- notmuch_indexopts_t *opts;
};
extern struct _notmuch_client_indexing_cli_choices indexing_cli_choices;
extern const notmuch_opt_desc_t notmuch_shared_indexing_options [];
notmuch_status_t
-notmuch_process_shared_indexing_options (notmuch_database_t *notmuch);
+notmuch_process_shared_indexing_options (notmuch_indexopts_t *opts);
#endif