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.
/* Create a GPG context (GMime 2.6) */
static notmuch_crypto_context_t *
/* 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 */
{
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;
if (! gpgctx)
return NULL;
/* Create a GPG context (GMime 2.4) */
static notmuch_crypto_context_t *
/* 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);
{
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)
g_object_unref (session);
if (! gpgctx)
if (strcasecmp (protocol, "application/pgp-signature") == 0 ||
strcasecmp (protocol, "application/pgp-encrypted") == 0) {
if (! crypto->gpgctx) {
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");
}
if (! crypto->gpgctx)
fprintf (stderr, "Failed to construct gpg context.\n");
}
notmuch_crypto_context_t* gpgctx;
notmuch_bool_t verify;
notmuch_bool_t decrypt;
notmuch_crypto_context_t* gpgctx;
notmuch_bool_t verify;
notmuch_bool_t decrypt;
} notmuch_crypto_t;
typedef struct notmuch_show_params {
} notmuch_crypto_t;
typedef struct notmuch_show_params {
.part = -1,
.crypto = {
.verify = FALSE,
.part = -1,
.crypto = {
.verify = FALSE,
+ .decrypt = FALSE,
+ .gpgpath = NULL
}
};
int format = FORMAT_DEFAULT;
}
};
int format = FORMAT_DEFAULT;
.output_body = TRUE,
.crypto = {
.verify = FALSE,
.output_body = TRUE,
.crypto = {
.verify = FALSE,
+ .decrypt = FALSE,
+ .gpgpath = NULL
},
.include_html = FALSE
};
},
.include_html = FALSE
};