]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-client.h
cli: use new typedef to deal with gmime 2.4/2.6 context incompatibility
[notmuch] / notmuch-client.h
index fa04fa2e48d68761fe6fab97b12856db75fe4529..d377b044fdccb06886b3a111f5e0daee0f7b7e78 100644 (file)
@@ -36,6 +36,9 @@
  * these to check the version number. */
 #ifdef GMIME_MAJOR_VERSION
 #define GMIME_ATLEAST_26
+typedef GMimeCryptoContext notmuch_crypto_context_t;
+#else
+typedef GMimeCipherContext notmuch_crypto_context_t;
 #endif
 
 #include "notmuch.h"
@@ -70,42 +73,16 @@ typedef struct notmuch_show_format {
     notmuch_status_t (*part) (const void *ctx,
                              struct mime_node *node, int indent,
                              const struct notmuch_show_params *params);
-    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);
-    void (*header_message_part) (GMimeMessage *message);
-    const char *header_end;
-    const char *body_start;
-    void (*part_start) (GMimeObject *part,
-                       int *part_count);
-    void (*part_encstatus) (int status);
-#ifdef GMIME_ATLEAST_26
-    void (*part_sigstatus) (GMimeSignatureList* siglist);
-#else
-    void (*part_sigstatus) (const GMimeSignatureValidity* validity);
-#endif
-    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 {
     notmuch_bool_t entire_thread;
+    notmuch_bool_t omit_excluded;
     notmuch_bool_t raw;
     int part;
-#ifdef GMIME_ATLEAST_26
-    GMimeCryptoContext* cryptoctx;
-#else
-    GMimeCipherContext* cryptoctx;
-#endif
+    notmuch_crypto_context_t* cryptoctx;
     notmuch_bool_t decrypt;
 } notmuch_show_params_t;
 
@@ -183,11 +160,6 @@ notmuch_time_elapsed (struct timeval start, struct timeval end);
 char *
 query_string_from_args (void *ctx, int argc, char *argv[]);
 
-notmuch_status_t
-show_message_body (notmuch_message_t *message,
-                  const notmuch_show_format_t *format,
-                  notmuch_show_params_t *params);
-
 notmuch_status_t
 show_one_part (const char *filename, int part);
 
@@ -197,6 +169,14 @@ format_part_json (const void *ctx, mime_node_t *node, notmuch_bool_t first);
 void
 format_headers_json (const void *ctx, GMimeMessage *message, notmuch_bool_t reply);
 
+typedef enum {
+    NOTMUCH_SHOW_TEXT_PART_REPLY = 1 << 0,
+} notmuch_show_text_part_flags;
+
+void
+show_text_part_content (GMimeObject *part, GMimeStream *stream_out,
+                       notmuch_show_text_part_flags flags);
+
 char *
 json_quote_chararray (const void *ctx, const char *str, const size_t len);
 
@@ -374,11 +354,7 @@ struct mime_node {
  */
 notmuch_status_t
 mime_node_open (const void *ctx, notmuch_message_t *message,
-#ifdef GMIME_ATLEAST_26
-               GMimeCryptoContext *cryptoctx,
-#else
-               GMimeCipherContext *cryptoctx,
-#endif
+               notmuch_crypto_context_t *cryptoctx,
                notmuch_bool_t decrypt, mime_node_t **node_out);
 
 /* Return a new MIME node for the requested child part of parent.