From 66c9b11bb05e09a7fa2a8ff390190cc16c1499e6 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 16 Jul 2017 01:01:45 +0200 Subject: [PATCH] crypto: Avoid explicit handling of GMimeCryptoContext in gmime 3 gmime 3.0 knows how to select the correct GMimeCryptoContext automatically, so a bunch of the code in notmuch can be dropped in that case. The #ifdef removal of the crypto stuff is better than #define aliasing in gmime-extra.h for this stuff. When built against gmime 3.0: * it reduces compiled code, and * it avoids initializing unused gpgme contexts (based on a patch from dkg) --- crypto.c | 8 +++++++- mime-node.c | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/crypto.c b/crypto.c index 3e8ce7ca..cc45b885 100644 --- a/crypto.c +++ b/crypto.c @@ -19,7 +19,7 @@ */ #include "notmuch-client.h" - +#if (GMIME_MAJOR_VERSION < 3) /* Create a GPG context (GMime 2.6) */ static notmuch_crypto_context_t * create_gpg_context (notmuch_crypto_t *crypto) @@ -132,3 +132,9 @@ notmuch_crypto_cleanup (notmuch_crypto_t *crypto) return 0; } +#else +int notmuch_crypto_cleanup (unused(notmuch_crypto_t *crypto)) +{ + return 0; +} +#endif diff --git a/mime-node.c b/mime-node.c index bc41b752..bb0870d0 100644 --- a/mime-node.c +++ b/mime-node.c @@ -240,6 +240,7 @@ _mime_node_create (mime_node_t *parent, GMimeObject *part) return NULL; } +#if (GMIME_MAJOR_VERSION < 3) if ((GMIME_IS_MULTIPART_ENCRYPTED (part) && node->ctx->crypto->decrypt) || (GMIME_IS_MULTIPART_SIGNED (part) && node->ctx->crypto->verify)) { GMimeContentType *content_type = g_mime_object_get_content_type (part); @@ -248,6 +249,7 @@ _mime_node_create (mime_node_t *parent, GMimeObject *part) if (!cryptoctx) return NULL; } +#endif /* Handle PGP/MIME parts */ if (GMIME_IS_MULTIPART_ENCRYPTED (part) && node->ctx->crypto->decrypt) { -- 2.26.2