modify 61f7c3c5e to catch another hardcoded gpg call
authorPaul <paul@claws-mail.org>
Mon, 4 Jul 2016 08:25:46 +0000 (09:25 +0100)
committerPaul <paul@claws-mail.org>
Mon, 4 Jul 2016 08:25:46 +0000 (09:25 +0100)
src/plugins/pgpcore/pgp_viewer.c
src/plugins/pgpcore/sgpgme.c
src/plugins/pgpcore/sgpgme.h

index 22e9caefc4fdc28b9a5e0de8ea40a417a6fe094f..f4256fb8fc2306aa7fff866cc5135e28497df580 100644 (file)
@@ -70,23 +70,6 @@ static GtkWidget *pgp_get_widget(MimeViewer *_viewer)
        return GTK_WIDGET(viewer->textview->vbox);
 }
 
-static gchar *_get_gpg_executable_name()
-{
-       gpgme_engine_info_t e;
-
-       if (!gpgme_get_engine_info(&e)) {
-               while (e != NULL) {
-                       if (e->protocol == GPGME_PROTOCOL_OpenPGP
-                                       && e->file_name != NULL) {
-                               debug_print("Found gpg executable: '%s'\n", e->file_name);
-                               return e->file_name;
-                       }
-               }
-       }
-
-       return NULL;
-}
-
 #ifdef G_OS_WIN32
 struct _ImportCtx {
        gboolean done;
@@ -182,7 +165,7 @@ static void pgpview_show_mime_part(TextView *textview, MimeInfo *partinfo)
        }
        gpgme_get_key(ctx, sig->fpr, &key, 0);
        if (!key) {
-               gchar *gpgbin = _get_gpg_executable_name();
+               gchar *gpgbin = get_gpg_executable_name();
                gchar *cmd = g_strdup_printf("\"%s\" --no-tty --recv-keys %s",
                                (gpgbin ? gpgbin : "gpg"), sig->fpr);
                AlertValue val = G_ALERTDEFAULT;
index d4075313886e9377c93b839a757cb3f6dc5eea2d..093d262e432f8cd7bce8d0de769e0fa71d8a7800 100644 (file)
@@ -168,6 +168,23 @@ static const gchar *get_owner_trust_str(unsigned long owner_trust)
        }
 }
 
+gchar *get_gpg_executable_name()
+{
+       gpgme_engine_info_t e;
+
+       if (!gpgme_get_engine_info(&e)) {
+               while (e != NULL) {
+                       if (e->protocol == GPGME_PROTOCOL_OpenPGP
+                                       && e->file_name != NULL) {
+                               debug_print("Found gpg executable: '%s'\n", e->file_name);
+                               return e->file_name;
+                       }
+               }
+       }
+
+       return NULL;
+}
+
 static gchar *extract_name(const char *uid)
 {
        if (uid == NULL)
@@ -889,7 +906,9 @@ again:
                g_free(buf);
                if (val == G_ALERTALTERNATE) {
 #ifndef G_OS_WIN32
-                       gchar *cmd = g_strdup_printf("gpg --no-tty --send-keys %s", key->fpr);
+                       gchar *gpgbin = get_gpg_executable_name();
+                       gchar *cmd = g_strdup_printf("\"%s\" --no-tty --send-keys %s",
+                               (gpgbin ? gpgbin : "gpg"), key->fpr);
                        int res = 0;
                        pid_t pid = 0;
                        pid = fork();
index c61da590e2c7e1f8064a0cc93d9c4df347a16335..78127f463a2b26afbbce5d4b866037a9f184ef7d 100644 (file)
@@ -52,5 +52,6 @@ void sgpgme_create_secret_key(PrefsAccount *account, gboolean ask_create);
 void *sgpgme_data_release_and_get_mem(gpgme_data_t data, size_t *len);
 
 gpgme_error_t cm_gpgme_data_rewind(gpgme_data_t dh);
+gchar *get_gpg_executable_name();
 
 #endif /* SGPGME_H */