unused variable
[apps/madmutt.git] / crypt.cpkg
index 1387f54..f8fce19 100644 (file)
@@ -16,8 +16,7 @@
 #include <gpgme.h>
 
 #include <lib-mime/mime.h>
-#include <lib-ui/curses.h>
-#include <lib-ui/enter.h>
+#include <lib-ui/lib-ui.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;
@@ -1217,7 +1216,6 @@ static int crypt_verify_one(BODY *sigbdy, STATE *s, FILE *fp, int is_smime)
   state_attach_puts (_("[-- Begin signature information --]\n"), s);
 
   err = gpgme_op_verify (ctx, signature, message, NULL);
-  mutt_need_hard_redraw ();
   if (err) {
     char buf[200];
 
@@ -2269,8 +2267,8 @@ static void crypt_entry (char *s, ssize_t l, MUTTMENU * menu, int num)
   entry.key = cryptkey_table[num];
   entry.num = num + 1;
 
-  m_strformat(s, l, COLS - SW, mod_crypt.pgp_entry_format, crypt_entry_fmt,
-              &entry, 0);
+  m_strformat(s, l, getmaxx(main_w), mod_crypt.pgp_entry_format,
+              crypt_entry_fmt, &entry, 0);
 }
 
 /* Compare two addresses and the keyid to be used for sorting. */
@@ -3036,7 +3034,7 @@ static cryptkey_t *crypt_select_key (cryptkey_t * keys,
   cryptkey_t **cryptkey_table;
   MUTTMENU *menu;
   int i, done = 0;
-  char helpstr[STRING], buf[LONG_STRING];
+  char buf[LONG_STRING];
   cryptkey_t *k;
   int (*f) (const void *, const void *);
   int menu_to_use = 0;
@@ -3090,23 +3088,10 @@ static cryptkey_t *crypt_select_key (cryptkey_t * keys,
   else if (app & APPLICATION_SMIME)
       menu_to_use = MENU_KEY_SELECT_SMIME;
 
-  helpstr[0] = 0;
-  mutt_make_help (buf, sizeof (buf), _("Exit  "), menu_to_use, OP_EXIT);
-  m_strcat(helpstr, sizeof(helpstr), buf);
-  mutt_make_help (buf, sizeof (buf), _("Select  "), menu_to_use,
-                  OP_GENERIC_SELECT_ENTRY);
-  m_strcat(helpstr, sizeof(helpstr), buf);
-  mutt_make_help (buf, sizeof (buf), _("Check key  "),
-                  menu_to_use, OP_VERIFY_KEY);
-  m_strcat(helpstr, sizeof(helpstr), buf);
-  mutt_make_help (buf, sizeof (buf), _("Help"), menu_to_use, OP_HELP);
-  m_strcat(helpstr, sizeof(helpstr), buf);
-
   menu = mutt_new_menu ();
   menu->max = i;
   menu->make_entry = crypt_entry;
   menu->menu = menu_to_use;
-  menu->help = helpstr;
   menu->data = cryptkey_table;
 
   {
@@ -3415,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)
@@ -3437,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,
@@ -3451,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;
             }
 
@@ -3467,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);