X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-client.h;h=63be33741a212ac2ed03434418373c1481faff76;hp=f3396d0df721f5dd8bfa03b3a406d26d8a859412;hb=59b251ef940609dac7e17528065a39544463e0b4;hpb=6bd01e1b340f6a209dde64471bc9d7137511dada diff --git a/notmuch-client.h b/notmuch-client.h index f3396d0d..63be3374 100644 --- a/notmuch-client.h +++ b/notmuch-client.h @@ -21,12 +21,13 @@ #ifndef NOTMUCH_CLIENT_H #define NOTMUCH_CLIENT_H - #ifndef _GNU_SOURCE #define _GNU_SOURCE /* for getline */ #endif #include +#include "compat.h" + #include #include "notmuch.h" @@ -50,6 +51,41 @@ #define unused(x) x __attribute__ ((unused)) +#define STRINGIFY(s) STRINGIFY_(s) +#define STRINGIFY_(s) #s + +typedef struct notmuch_show_format { + const char *message_set_start; + const char *message_start; + void (*message) (const void *ctx, + notmuch_message_t *message, + int indent); + const char *header_start; + void (*header) (const void *ctx, + notmuch_message_t *message); + const char *header_end; + const char *body_start; + void (*part_start) (GMimeObject *part, + int *part_count); + void (*part_encstatus) (int status); + void (*part_sigstatus) (const GMimeSignatureValidity* validity); + void (*part_content) (GMimeObject *part); + void (*part_end) (GMimeObject *part); + const char *part_sep; + const char *body_end; + const char *message_end; + const char *message_set_sep; + const char *message_set_end; +} notmuch_show_format_t; + +typedef struct notmuch_show_params { + int entire_thread; + int raw; + int part; + GMimeCipherContext* cryptoctx; + int decrypt; +} notmuch_show_params_t; + /* There's no point in continuing when we've detected that we've done * something wrong internally (as opposed to the user passing in a * bogus value). @@ -66,28 +102,8 @@ #define ARRAY_SIZE(arr) (sizeof (arr) / sizeof (arr[0])) -typedef int (*command_function_t) (void *ctx, int argc, char *argv[]); - -typedef struct command { - const char *name; - command_function_t function; - const char *summary; - const char *documentation; -} command_t; - -typedef void (*add_files_callback_t) (notmuch_message_t *message); - -typedef struct { - int ignore_read_only_directories; - int saw_read_only_directory; - - int total_files; - int processed_files; - int added_messages; - struct timeval tv_start; - - add_files_callback_t callback; -} add_files_state_t; +#define STRNCMP_LITERAL(var, literal) \ + strncmp ((var), (literal), sizeof (literal) - 1) static inline void chomp_newline (char *str) @@ -96,6 +112,9 @@ chomp_newline (char *str) str[strlen(str)-1] = '\0'; } +int +notmuch_count_command (void *ctx, int argc, char *argv[]); + int notmuch_dump_command (void *ctx, int argc, char *argv[]); @@ -120,8 +139,17 @@ notmuch_show_command (void *ctx, int argc, char *argv[]); int notmuch_tag_command (void *ctx, int argc, char *argv[]); +int +notmuch_search_tags_command (void *ctx, int argc, char *argv[]); + +int +notmuch_cat_command (void *ctx, int argc, char *argv[]); + +int +notmuch_config_command (void *ctx, int argc, char *argv[]); + const char * -notmuch_time_relative_date (void *ctx, time_t then); +notmuch_time_relative_date (const void *ctx, time_t then); void notmuch_time_print_formatted_seconds (double seconds); @@ -129,16 +157,22 @@ notmuch_time_print_formatted_seconds (double seconds); double notmuch_time_elapsed (struct timeval start, struct timeval end); -notmuch_status_t -add_files (notmuch_database_t *notmuch, const char *path, - add_files_state_t *state); - char * query_string_from_args (void *ctx, int argc, char *argv[]); notmuch_status_t show_message_body (const char *filename, - void (*show_part) (GMimeObject *part, int *part_count)); + const notmuch_show_format_t *format, + notmuch_show_params_t *params); + +notmuch_status_t +show_one_part (const char *filename, int part); + +char * +json_quote_chararray (const void *ctx, const char *str, const size_t len); + +char * +json_quote_str (const void *ctx, const char *str); /* notmuch-config.c */ @@ -176,7 +210,7 @@ void notmuch_config_set_user_primary_email (notmuch_config_t *config, const char *primary_email); -char ** +const char ** notmuch_config_get_user_other_email (notmuch_config_t *config, size_t *length); @@ -185,4 +219,22 @@ notmuch_config_set_user_other_email (notmuch_config_t *config, const char *other_email[], size_t length); +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); + +notmuch_bool_t +notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config); + +void +notmuch_config_set_maildir_synchronize_flags (notmuch_config_t *config, + notmuch_bool_t synchronize_flags); + +notmuch_bool_t +debugger_is_active (void); + #endif