unused variable
[apps/madmutt.git] / crypt.cpkg
index 7047775..f8fce19 100644 (file)
@@ -17,7 +17,6 @@
 
 #include <lib-mime/mime.h>
 #include <lib-ui/lib-ui.h>
-#include <lib-ui/enter.h>
 #include <lib-ui/menu.h>
 #include <lib-mx/mx.h>
 
@@ -327,7 +326,7 @@ static gpgme_ctx_t create_gpgme_context(int for_smime)
     if (err) {
         mutt_error(_("error creating gpgme context: %s\n"),
                    gpgme_strerror(err));
-        sleep(2);
+        mutt_sleep(2);
         mutt_exit(1);
     }
     if (!for_smime)
@@ -336,7 +335,7 @@ static gpgme_ctx_t create_gpgme_context(int for_smime)
     err = gpgme_set_protocol(ctx, GPGME_PROTOCOL_CMS);
     if (err) {
         mutt_error(_("error enabling CMS protocol: %s\n"), gpgme_strerror(err));
-        sleep(2);
+        mutt_sleep(2);
         mutt_exit(1);
     }
     return ctx;
@@ -353,7 +352,7 @@ static gpgme_data_t create_gpgme_data(void)
     if (err) {
         mutt_error(_("error creating gpgme data object: %s\n"),
                    gpgme_strerror(err));
-        sleep(2);
+        mutt_sleep(2);
         mutt_exit(1);
     }
     return data;
@@ -3401,6 +3400,23 @@ crypt_ask_for_key(const char *tag, int abilities, int app, int *forced_valid)
     }
 }
 
+static char *crypt_hook(address_t *adr)
+{
+    char *res = NULL;
+    lua_State *L = luaM_getruntime();
+    lua_getglobal(L, "mod_core");             /* push mod_core        1 */
+    lua_getfield(L, -1, "crypt_hook");        /* push folder_hook()   2 */
+    if (lua_isfunction(L, -1)) {
+        lua_pushstring(L, adr->mailbox);
+        if (!lua_pcall(L, 1, 1, 0)) {
+            res = m_strdup(lua_tostring(L, -1));
+        }
+        lua_pop(L, 1);
+    }
+    lua_pop(L, 2);
+    return res;
+}
+
 /* This routine attempts to find the keyids of the recipients of a
    message.  It returns NULL if any of the keys can not be found.  */
 static char *find_keys(ENVELOPE *env, unsigned int app)
@@ -3423,10 +3439,10 @@ static char *find_keys(ENVELOPE *env, unsigned int app)
     while ((addr = address_list_pop(&lst))) {
         char buf[STRING];
         int forced_valid = 0;
-        const char *keyID;
+        char *keyID;
         cryptkey_t *key = NULL;
 
-        if ((keyID = mutt_crypt_hook(addr))) {
+        if ((keyID = crypt_hook(addr))) {
             int r;
 
             snprintf(buf, sizeof(buf), _("Use keyID = \"%s\" for %s?"), keyID,
@@ -3437,6 +3453,7 @@ static char *find_keys(ENVELOPE *env, unsigned int app)
                 address_list_wipe(&lst);
                 address_list_wipe(&addr);
                 buffer_delete(&keylist);
+                p_delete(&keyID);
                 return NULL;
             }
 
@@ -3453,6 +3470,7 @@ static char *find_keys(ENVELOPE *env, unsigned int app)
                 }
             }
         }
+        p_delete(&keyID);
 
         if (!key) {
             key = crypt_getkeybyaddr(addr, KEYFLAG_CANENCRYPT, app, &forced_valid);