LINES - 1 is the status bar, living on stdscr.
[apps/madmutt.git] / recvattach.c
index 198bfa7..518cb59 100644 (file)
 #include <lib-mime/mime.h>
 #include <lib-sys/unix.h>
 
-#include <lib-ui/curses.h>
+#include <lib-ui/lib-ui.h>
 #include <lib-ui/enter.h>
 #include <lib-ui/menu.h>
 #include <lib-mx/mx.h>
-#include <lib-crypt/crypt.h>
 
 #include "mutt.h"
+#include "crypt.h"
 #include "handler.h"
 #include "recvattach.h"
 #include "attach.h"
 #include "copy.h"
 
-#define SW    (option(OPTMBOXPANE)?SidebarWidth:0)
-
-static struct mapping_t AttachHelp[] = {
-  {N_("Exit"), OP_EXIT},
-  {N_("Save"), OP_SAVE},
-  {N_("Pipe"), OP_PIPE},
-  {N_("Print"), OP_PRINT},
-  {N_("Help"), OP_HELP},
-  {NULL, OP_NULL}
-};
-
 void mutt_update_tree (ATTACHPTR ** idx, short idxlen)
 {
   char buf[STRING];
@@ -186,8 +175,7 @@ mutt_attach_fmt(char *dest, ssize_t destlen, char op, const char *src,
         char s[STRING];
 
         _mutt_make_string (s, sizeof (s), MsgFmt, NULL, aptr->content->hdr,
-                           M_FORMAT_FORCESUBJ | M_FORMAT_MAKEPRINT |
-                           (option(OPTARROWCURSOR) ? M_FORMAT_ARROWCURSOR : 0));
+                           M_FORMAT_FORCESUBJ | M_FORMAT_MAKEPRINT);
         if (*s) {
           mutt_format_s (dest, destlen, prefix, s);
           break;
@@ -316,9 +304,8 @@ mutt_attach_fmt(char *dest, ssize_t destlen, char op, const char *src,
 
 static void attach_entry(char *b, ssize_t blen, MUTTMENU * menu, int num)
 {
-    m_strformat(b, blen, COLS - SW, AttachFormat, mutt_attach_fmt,
-                ((ATTACHPTR **) menu->data)[num],
-                option(OPTARROWCURSOR) ? M_FORMAT_ARROWCURSOR : 0);
+    m_strformat(b, blen, getmaxx(main_w), AttachFormat, mutt_attach_fmt,
+                ((ATTACHPTR **) menu->data)[num], 0);
 }
 
 int mutt_tag_attach (MUTTMENU * menu, int n, int m)
@@ -333,7 +320,7 @@ int mutt_tag_attach (MUTTMENU * menu, int n, int m)
 static int mutt_query_save_attachment (FILE * fp, BODY * body, HEADER * hdr,
                                        char **directory)
 {
-  char *prompt;
+  const char *prompt;
   char buf[_POSIX_PATH_MAX], tfile[_POSIX_PATH_MAX];
   int is_message;
   int append = 0;
@@ -497,10 +484,10 @@ mutt_query_pipe_attachment(char *command, FILE * fp, BODY * body, int afilter)
              _("WARNING!  You are about to overwrite %s, continue?"),
              body->filename);
     if (mutt_yesorno (warning, M_NO) != M_YES) {
-      CLEARLINE (LINES - 1);
+      CLEARLINE(stdscr, LINES - 1);
       return;
     }
-    tempfd = m_tempfd(tfile, sizeof(tfile), NONULL(MCore.tmpdir), NULL);
+    tempfd = m_tempfd(tfile, sizeof(tfile), NONULL(mod_core.tmpdir), NULL);
   }
 
   if (mutt_pipe_attachment(fp, body, command, tempfd)) {
@@ -634,7 +621,7 @@ static void print_attachment_list (FILE * fp, int tag, BODY * top,
           FILE *ifp;
           int newfile_fd;
 
-          newfile_fd = m_tempfd(newfile, sizeof(newfile), NONULL(MCore.tmpdir), NULL);
+          newfile_fd = m_tempfd(newfile, sizeof(newfile), NONULL(mod_core.tmpdir), NULL);
           if (mutt_decode_save_attachment (fp, top, newfile_fd, M_PRINTING) == 0) {
             if ((ifp = fopen (newfile, "r")) != NULL) {
               mutt_copy_stream (ifp, state->fpout);
@@ -801,7 +788,6 @@ void mutt_view_attachments (HEADER * hdr)
   int secured = 0;
   int need_secured = 0;
 
-  char helpstr[STRING];
   MUTTMENU *menu;
   BODY *cur = NULL;
   MESSAGE *msg;
@@ -825,14 +811,7 @@ void mutt_view_attachments (HEADER * hdr)
   {
     need_secured = 1;
 
-    if ((hdr->security & ENCRYPT) && !crypt_valid_passphrase (hdr->security)) {
-      mx_close_message (&msg);
-      return;
-    }
     if (hdr->security & APPLICATION_SMIME) {
-      if (hdr->env)
-        crypt_smime_getkeys (hdr->env);
-
       if (mutt_is_application_smime (hdr->content)) {
         secured = !crypt_smime_decrypt_mime (msg->fp, &fp,
                                              hdr->content, &cur);
@@ -877,8 +856,6 @@ void mutt_view_attachments (HEADER * hdr)
   menu->title = _("Attachments");
   menu->make_entry = attach_entry;
   menu->tag = mutt_tag_attach;
-  menu->help =
-    mutt_compile_help (helpstr, sizeof (helpstr), MENU_ATTACH, AttachHelp);
 
   mutt_attach_init (cur);
   attach_collapse (cur, 0, 1, 0);
@@ -935,10 +912,6 @@ void mutt_view_attachments (HEADER * hdr)
       mutt_update_attach_index (cur, &idx, &idxlen, &idxmax, menu);
       break;
 
-    case OP_FORGET_PASSPHRASE:
-      crypt_forget_passphrase ();
-      break;
-
     case OP_EXTRACT_KEYS:
       crypt_pgp_extract_keys_from_attachment_list (fp, menu->tagprefix,
                                                    menu->
@@ -992,15 +965,6 @@ void mutt_view_attachments (HEADER * hdr)
         break;
       }
 
-#ifdef USE_NNTP
-      if (Context->magic == M_NNTP) {
-        mutt_flushinp ();
-        mutt_error _("Can't delete attachment from newsserver.");
-
-        break;
-      }
-#endif
-
       if (hdr->security & (~PGP_TRADITIONAL_CHECKED)) {
         mutt_message
           _("Deletion of attachments from encrypted messages is unsupported.");
@@ -1085,32 +1049,6 @@ void mutt_view_attachments (HEADER * hdr)
       menu->redraw = REDRAW_FULL;
       break;
 
-#ifdef USE_NNTP
-    case OP_FORWARD_TO_GROUP:
-      CHECK_ATTACH;
-      mutt_attach_forward (fp, hdr, idx, idxlen,
-                           menu->tagprefix ? NULL : idx[menu->current]->
-                           content, SENDNEWS);
-      menu->redraw = REDRAW_FULL;
-      break;
-
-    case OP_FOLLOWUP:
-      CHECK_ATTACH;
-
-      if (!idx[menu->current]->content->hdr->env->followup_to ||
-          m_strcasecmp(idx[menu->current]->content->hdr->env->followup_to,
-                           "poster")
-          || query_quadoption (OPT_FOLLOWUPTOPOSTER,
-                               _("Reply by mail as poster prefers?")) !=
-          M_YES) {
-        mutt_attach_reply (fp, hdr, idx, idxlen,
-                           menu->tagprefix ? NULL : idx[menu->current]->
-                           content, SENDNEWS | SENDREPLY);
-        menu->redraw = REDRAW_FULL;
-        break;
-      }
-#endif
-
     case OP_REPLY:
     case OP_GROUP_REPLY:
     case OP_LIST_REPLY:
@@ -1160,5 +1098,7 @@ void mutt_view_attachments (HEADER * hdr)
 
     op = OP_NULL;
   }
+#undef CHECK_READONLY
+#undef CHECK_ATTACH
   /* not reached */
 }