[Patch v2 1/2] CLI: set up infrastructure to make path to gpg configurable.

2015-03-11 Thread David Bremner
David Bremner  writes:

> GMIME takes a path to gpg, but we hardcode that path.  In this commit
> we set up argument passing and option storage to allow this path to
> specified in the top level notmuch command.

Pushed these two, with two trivial test fixes for the new variable.

d


Re: [Patch v2 1/2] CLI: set up infrastructure to make path to gpg configurable.

2015-03-11 Thread David Bremner
David Bremner da...@tethera.net writes:

 GMIME takes a path to gpg, but we hardcode that path.  In this commit
 we set up argument passing and option storage to allow this path to
 specified in the top level notmuch command.

Pushed these two, with two trivial test fixes for the new variable.

d
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[Patch v2 1/2] CLI: set up infrastructure to make path to gpg configurable.

2015-03-09 Thread David Bremner
GMIME takes a path to gpg, but we hardcode that path.  In this commit
we set up argument passing and option storage to allow this path to
specified in the top level notmuch command.
---
 crypto.c | 10 +-
 notmuch-client.h |  1 +
 notmuch-reply.c  |  3 ++-
 notmuch-show.c   |  3 ++-
 4 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/crypto.c b/crypto.c
index 6f4a6db..026640f 100644
--- a/crypto.c
+++ b/crypto.c
@@ -24,12 +24,12 @@

 /* Create a GPG context (GMime 2.6) */
 static notmuch_crypto_context_t *
-create_gpg_context (void)
+create_gpg_context (const char *gpgpath)
 {
 notmuch_crypto_context_t *gpgctx;

 /* TODO: GMimePasswordRequestFunc */
-gpgctx = g_mime_gpg_context_new (NULL, "gpg");
+gpgctx = g_mime_gpg_context_new (NULL, gpgpath ? gpgpath : "gpg");
 if (! gpgctx)
return NULL;

@@ -43,13 +43,13 @@ create_gpg_context (void)

 /* Create a GPG context (GMime 2.4) */
 static notmuch_crypto_context_t *
-create_gpg_context (void)
+create_gpg_context (const char* gpgpath)
 {
 GMimeSession *session;
 notmuch_crypto_context_t *gpgctx;

 session = g_object_new (g_mime_session_get_type (), NULL);
-gpgctx = g_mime_gpg_context_new (session, "gpg");
+gpgctx = g_mime_gpg_context_new (session, gpgpath ? gpgpath : "gpg");
 g_object_unref (session);

 if (! gpgctx)
@@ -83,7 +83,7 @@ notmuch_crypto_get_context (notmuch_crypto_t *crypto, const 
char *protocol)
 if (strcasecmp (protocol, "application/pgp-signature") == 0 ||
strcasecmp (protocol, "application/pgp-encrypted") == 0) {
if (! crypto->gpgctx) {
-   crypto->gpgctx = create_gpg_context ();
+   crypto->gpgctx = create_gpg_context (crypto->gpgpath);
if (! crypto->gpgctx)
fprintf (stderr, "Failed to construct gpg context.\n");
}
diff --git a/notmuch-client.h b/notmuch-client.h
index 5e0d475..c25c4ea 100644
--- a/notmuch-client.h
+++ b/notmuch-client.h
@@ -80,6 +80,7 @@ typedef struct notmuch_crypto {
 notmuch_crypto_context_t* gpgctx;
 notmuch_bool_t verify;
 notmuch_bool_t decrypt;
+const char *gpgpath;
 } notmuch_crypto_t;

 typedef struct notmuch_show_params {
diff --git a/notmuch-reply.c b/notmuch-reply.c
index 7c1c809..e18370f 100644
--- a/notmuch-reply.c
+++ b/notmuch-reply.c
@@ -769,7 +769,8 @@ notmuch_reply_command (notmuch_config_t *config, int argc, 
char *argv[])
.part = -1,
.crypto = {
.verify = FALSE,
-   .decrypt = FALSE
+   .decrypt = FALSE,
+   .gpgpath = NULL
}
 };
 int format = FORMAT_DEFAULT;
diff --git a/notmuch-show.c b/notmuch-show.c
index d416fbd..d292f29 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -1082,7 +1082,8 @@ notmuch_show_command (notmuch_config_t *config, int argc, 
char *argv[])
.output_body = TRUE,
.crypto = {
.verify = FALSE,
-   .decrypt = FALSE
+   .decrypt = FALSE,
+   .gpgpath = NULL
},
.include_html = FALSE
 };
-- 
2.1.4



[Patch v2 1/2] CLI: set up infrastructure to make path to gpg configurable.

2015-03-09 Thread David Bremner
GMIME takes a path to gpg, but we hardcode that path.  In this commit
we set up argument passing and option storage to allow this path to
specified in the top level notmuch command.
---
 crypto.c | 10 +-
 notmuch-client.h |  1 +
 notmuch-reply.c  |  3 ++-
 notmuch-show.c   |  3 ++-
 4 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/crypto.c b/crypto.c
index 6f4a6db..026640f 100644
--- a/crypto.c
+++ b/crypto.c
@@ -24,12 +24,12 @@
 
 /* Create a GPG context (GMime 2.6) */
 static notmuch_crypto_context_t *
-create_gpg_context (void)
+create_gpg_context (const char *gpgpath)
 {
 notmuch_crypto_context_t *gpgctx;
 
 /* TODO: GMimePasswordRequestFunc */
-gpgctx = g_mime_gpg_context_new (NULL, gpg);
+gpgctx = g_mime_gpg_context_new (NULL, gpgpath ? gpgpath : gpg);
 if (! gpgctx)
return NULL;
 
@@ -43,13 +43,13 @@ create_gpg_context (void)
 
 /* Create a GPG context (GMime 2.4) */
 static notmuch_crypto_context_t *
-create_gpg_context (void)
+create_gpg_context (const char* gpgpath)
 {
 GMimeSession *session;
 notmuch_crypto_context_t *gpgctx;
 
 session = g_object_new (g_mime_session_get_type (), NULL);
-gpgctx = g_mime_gpg_context_new (session, gpg);
+gpgctx = g_mime_gpg_context_new (session, gpgpath ? gpgpath : gpg);
 g_object_unref (session);
 
 if (! gpgctx)
@@ -83,7 +83,7 @@ notmuch_crypto_get_context (notmuch_crypto_t *crypto, const 
char *protocol)
 if (strcasecmp (protocol, application/pgp-signature) == 0 ||
strcasecmp (protocol, application/pgp-encrypted) == 0) {
if (! crypto-gpgctx) {
-   crypto-gpgctx = create_gpg_context ();
+   crypto-gpgctx = create_gpg_context (crypto-gpgpath);
if (! crypto-gpgctx)
fprintf (stderr, Failed to construct gpg context.\n);
}
diff --git a/notmuch-client.h b/notmuch-client.h
index 5e0d475..c25c4ea 100644
--- a/notmuch-client.h
+++ b/notmuch-client.h
@@ -80,6 +80,7 @@ typedef struct notmuch_crypto {
 notmuch_crypto_context_t* gpgctx;
 notmuch_bool_t verify;
 notmuch_bool_t decrypt;
+const char *gpgpath;
 } notmuch_crypto_t;
 
 typedef struct notmuch_show_params {
diff --git a/notmuch-reply.c b/notmuch-reply.c
index 7c1c809..e18370f 100644
--- a/notmuch-reply.c
+++ b/notmuch-reply.c
@@ -769,7 +769,8 @@ notmuch_reply_command (notmuch_config_t *config, int argc, 
char *argv[])
.part = -1,
.crypto = {
.verify = FALSE,
-   .decrypt = FALSE
+   .decrypt = FALSE,
+   .gpgpath = NULL
}
 };
 int format = FORMAT_DEFAULT;
diff --git a/notmuch-show.c b/notmuch-show.c
index d416fbd..d292f29 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -1082,7 +1082,8 @@ notmuch_show_command (notmuch_config_t *config, int argc, 
char *argv[])
.output_body = TRUE,
.crypto = {
.verify = FALSE,
-   .decrypt = FALSE
+   .decrypt = FALSE,
+   .gpgpath = NULL
},
.include_html = FALSE
 };
-- 
2.1.4

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch