Drop mixmaster support. I don't like people caring about being anonymous that much.
[apps/madmutt.git] / compose.c
index d607021..8ad53e8 100644 (file)
--- a/compose.c
+++ b/compose.c
@@ -30,7 +30,6 @@
 #include "sort.h"
 #include "charset.h"
 #include "buffy.h"
-#include "remailer.h"
 
 #ifdef USE_NNTP
 #include "nntp.h"
@@ -50,7 +49,6 @@ enum {
   HDR_SUBJECT,
   HDR_REPLYTO,
   HDR_FCC,
-  HDR_MIX,
 
   HDR_CRYPT,
   HDR_CRYPTINFO,
@@ -86,32 +84,6 @@ static const char *Prompts[] = {
 #endif
 };
 
-static struct mapping_t ComposeHelp[] = {
-  {N_("Send"), OP_COMPOSE_SEND_MESSAGE},
-  {N_("Abort"), OP_EXIT},
-  {"To", OP_COMPOSE_EDIT_TO},
-  {"CC", OP_COMPOSE_EDIT_CC},
-  {"Subj", OP_COMPOSE_EDIT_SUBJECT},
-  {N_("Attach file"), OP_COMPOSE_ATTACH_FILE},
-  {N_("Descrip"), OP_COMPOSE_EDIT_DESCRIPTION},
-  {N_("Help"), OP_HELP},
-  {NULL, OP_NULL}
-};
-
-#ifdef USE_NNTP
-static struct mapping_t ComposeNewsHelp[] = {
-  {N_("Send"), OP_COMPOSE_SEND_MESSAGE},
-  {N_("Abort"), OP_EXIT},
-  {"Newsgroups", OP_COMPOSE_EDIT_NEWSGROUPS},
-  {"Subj", OP_COMPOSE_EDIT_SUBJECT},
-  {N_("Attach file"), OP_COMPOSE_ATTACH_FILE},
-  {N_("Descrip"), OP_COMPOSE_EDIT_DESCRIPTION},
-  {N_("Help"), OP_HELP},
-  {NULL, OP_NULL}
-};
-#endif
-
-
 static void snd_entry (char *b, ssize_t blen, MUTTMENU * menu, int num) {
   m_strformat(b, blen, COLS - SW, AttachFormat, mutt_attach_fmt,
               ((ATTACHPTR **)menu->data)[num], M_FORMAT_STAT_FILE);
@@ -122,79 +94,50 @@ static void redraw_crypt_lines (HEADER * msg)
   int off = 0;
 
   if (!msg->security)
-    mvaddstr (HDR_CRYPT, SW, "    Security: ");
+    mvwaddstr (stdscr, HDR_CRYPT, SW, "    Security: ");
   else if (msg->security & APPLICATION_SMIME)
-    mvaddstr (HDR_CRYPT, SW, "      S/MIME: ");
+    mvwaddstr (stdscr, HDR_CRYPT, SW, "      S/MIME: ");
   else if (msg->security & APPLICATION_PGP)
-    mvaddstr (HDR_CRYPT, SW, "         PGP: ");
+    mvwaddstr (stdscr, HDR_CRYPT, SW, "         PGP: ");
 
   if ((msg->security & (ENCRYPT | SIGN)) == (ENCRYPT | SIGN))
-    addstr (_("Sign, Encrypt"));
+    waddstr (stdscr, _("Sign, Encrypt"));
   else if (msg->security & ENCRYPT)
-    addstr (_("Encrypt"));
+    waddstr (stdscr, _("Encrypt"));
   else if (msg->security & SIGN)
-    addstr (_("Sign"));
+    waddstr (stdscr, _("Sign"));
   else
-    addstr (_("Clear"));
+    waddstr (stdscr, _("Clear"));
 
   if ((msg->security & APPLICATION_PGP)
       && (msg->security & (ENCRYPT | SIGN))) {
     if ((msg->security & INLINE))
-      addstr (_(" (inline)"));
+      waddstr (stdscr, _(" (inline)"));
     else
-      addstr (_(" (PGP/MIME)"));
+      waddstr (stdscr, _(" (PGP/MIME)"));
   }
-  clrtoeol ();
+  wclrtoeol (stdscr);
 
-  move (HDR_CRYPTINFO, SW);
-  clrtoeol ();
+  wmove (stdscr, HDR_CRYPTINFO, SW);
+  wclrtoeol (stdscr);
   if (msg->security & APPLICATION_PGP && msg->security & SIGN)
-    printw ("%s%s", _("     sign as: "),
+    wprintw (stdscr, "%s%s", _("     sign as: "),
             PgpSignAs ? PgpSignAs : _("<default>"));
 
   if (msg->security & APPLICATION_SMIME && msg->security & SIGN) {
-    printw ("%s%s", _("     sign as: "),
+    wprintw (stdscr, "%s%s", _("     sign as: "),
             SmimeDefaultKey ? SmimeDefaultKey : _("<default>"));
   }
 
   if ((msg->security & APPLICATION_SMIME)
       && (msg->security & ENCRYPT)
       && SmimeCryptAlg && *SmimeCryptAlg) {
-    mvprintw (HDR_CRYPTINFO, SW + 40, "%s%s", _("Encrypt with: "),
+    mvwprintw (stdscr, HDR_CRYPTINFO, SW + 40, "%s%s", _("Encrypt with: "),
               NONULL (SmimeCryptAlg));
     off = 20;
   }
 }
 
-static void redraw_mix_line (string_list_t * chain)
-{
-  int c;
-  const char *t;
-
-  mvaddstr (HDR_MIX, SW, "         Mix: ");
-
-  if (!chain) {
-    addstr ("<no chain defined>");
-    clrtoeol ();
-    return;
-  }
-
-  for (c = 12; chain; chain = chain->next) {
-    t = chain->data;
-    if (t && t[0] == '0' && t[1] == '\0')
-      t = "<random>";
-
-    if (c + m_strlen(t) + 2 >= COLS - SW)
-      break;
-
-    addstr (NONULL (t));
-    if (chain->next)
-      addstr (", ");
-
-    c += m_strlen(t) + 2;
-  }
-}
-
 static int check_attachments (ATTACHPTR ** idx, short idxlen)
 {
   int i, r;
@@ -230,7 +173,7 @@ static void draw_envelope_addr (int line, address_t * addr)
 
   buf[0] = 0;
   rfc822_addrcat(buf, sizeof (buf), addr, 1);
-  mvprintw (line, SW, TITLE_FMT, Prompts[line - 1]);
+  mvwprintw (stdscr, line, SW, TITLE_FMT, Prompts[line - 1]);
   mutt_paddstr (W, buf);
 }
 
@@ -245,25 +188,24 @@ static void draw_envelope (HEADER * msg, char *fcc)
     draw_envelope_addr (HDR_BCC, msg->env->bcc);
 #ifdef USE_NNTP
   } else {
-    mvprintw (HDR_TO, SW, TITLE_FMT, Prompts[HDR_NEWSGROUPS - 1]);
+    mvwprintw (stdscr, HDR_TO, SW, TITLE_FMT, Prompts[HDR_NEWSGROUPS - 1]);
     mutt_paddstr (W, NONULL (msg->env->newsgroups));
-    mvprintw (HDR_CC, SW, TITLE_FMT, Prompts[HDR_FOLLOWUPTO - 1]);
+    mvwprintw (stdscr, HDR_CC, SW, TITLE_FMT, Prompts[HDR_FOLLOWUPTO - 1]);
     mutt_paddstr (W, NONULL (msg->env->followup_to));
   }
 #endif
-  mvprintw (HDR_SUBJECT, SW, TITLE_FMT, Prompts[HDR_SUBJECT - 1]);
+  mvwprintw (stdscr, HDR_SUBJECT, SW, TITLE_FMT, Prompts[HDR_SUBJECT - 1]);
   mutt_paddstr (W, NONULL (msg->env->subject));
   draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to);
-  mvprintw (HDR_FCC, SW, TITLE_FMT, Prompts[HDR_FCC - 1]);
+  mvwprintw (stdscr, HDR_FCC, SW, TITLE_FMT, Prompts[HDR_FCC - 1]);
   mutt_paddstr (W, fcc);
 
   redraw_crypt_lines (msg);
-  redraw_mix_line (msg->chain);
 
   SETCOLOR (MT_COLOR_STATUS);
-  mvaddstr (HDR_ATTACH - 1, SW, _("-- Attachments"));
+  mvwaddstr (stdscr, HDR_ATTACH - 1, SW, _("-- Attachments"));
   BKGDSET (MT_COLOR_STATUS);
-  clrtoeol ();
+  wclrtoeol (stdscr);
 
   BKGDSET (MT_COLOR_NORMAL);
   SETCOLOR (MT_COLOR_NORMAL);
@@ -296,7 +238,7 @@ static int edit_address_list (int line, address_t ** addr)
   /* redraw the expanded list so the user can see the result */
   buf[0] = 0;
   rfc822_addrcat(buf, sizeof (buf), *addr, 1);
-  move (line, HDR_XOFFSET + SW);
+  wmove (stdscr, line, HDR_XOFFSET + SW);
   mutt_paddstr (W, buf);
 
   return 0;
@@ -466,7 +408,6 @@ int mutt_compose_menu (HEADER * msg,    /* structure for new message */
                        ssize_t fcclen,
                        HEADER * cur __attribute__ ((unused)))
 {                               /* current message */
-  char helpstr[STRING];
   char buf[LONG_STRING];
   char fname[_POSIX_PATH_MAX];
   MUTTMENU *menu;
@@ -501,14 +442,6 @@ int mutt_compose_menu (HEADER * msg,    /* structure for new message */
   menu->make_entry = snd_entry;
   menu->tag = mutt_tag_attach;
   menu->data = idx;
-#ifdef USE_NNTP
-  if (news)
-    menu->help = mutt_compile_help(helpstr, sizeof(helpstr), MENU_COMPOSE,
-                                   ComposeNewsHelp);
-  else
-#endif
-    menu->help = mutt_compile_help(helpstr, sizeof(helpstr), MENU_COMPOSE,
-                                   ComposeHelp);
 
   if (option (OPTMBOXPANE))
     buffy_check (0);
@@ -568,10 +501,10 @@ int mutt_compose_menu (HEADER * msg,    /* structure for new message */
           p_delete(&msg->env->newsgroups);
           m_strrtrim(buf);
           msg->env->newsgroups = m_strdup(skipspaces(buf));
-          move (HDR_TO, HDR_XOFFSET);
-          clrtoeol ();
+          wmove (stdscr, HDR_TO, HDR_XOFFSET);
+          wclrtoeol (stdscr);
           if (msg->env->newsgroups)
-            printw ("%-*.*s", W, W, msg->env->newsgroups);
+            wprintw (stdscr, "%-*.*s", W, W, msg->env->newsgroups);
         }
       }
       break;
@@ -586,10 +519,10 @@ int mutt_compose_menu (HEADER * msg,    /* structure for new message */
           p_delete(&msg->env->followup_to);
           m_strrtrim(buf);
           msg->env->followup_to = m_strdup(skipspaces(buf));
-          move (HDR_CC, HDR_XOFFSET);
-          clrtoeol ();
+          wmove (stdscr, HDR_CC, HDR_XOFFSET);
+          wclrtoeol (stdscr);
           if (msg->env->followup_to)
-            printw ("%-*.*s", W, W, msg->env->followup_to);
+            wprintw (stdscr, "%-*.*s", W, W, msg->env->followup_to);
         }
       }
       break;
@@ -602,8 +535,8 @@ int mutt_compose_menu (HEADER * msg,    /* structure for new message */
         buf[0] = 0;
       if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0) {
         m_strreplace(&msg->env->subject, buf);
-        move (HDR_SUBJECT, HDR_XOFFSET + SW);
-        clrtoeol ();
+        wmove (stdscr, HDR_SUBJECT, HDR_XOFFSET + SW);
+        wclrtoeol (stdscr);
         if (msg->env->subject)
           mutt_paddstr (W, msg->env->subject);
       }
@@ -618,7 +551,7 @@ int mutt_compose_menu (HEADER * msg,    /* structure for new message */
       if (mutt_get_field ("Fcc: ", buf, sizeof (buf), M_FILE | M_CLEAR) == 0) {
         m_strcpy(fcc, _POSIX_PATH_MAX, buf);
         mutt_pretty_mailbox (fcc);
-        move (HDR_FCC, HDR_XOFFSET + SW);
+        wmove (stdscr, HDR_FCC, HDR_XOFFSET + SW);
         mutt_paddstr (W, fcc);
         fccSet = 1;
       }
@@ -960,9 +893,6 @@ int mutt_compose_menu (HEADER * msg,    /* structure for new message */
         break;
       }
 
-      if (msg->chain && mix_check_message (msg) != 0)
-        break;
-
       if (!fccSet && *fcc) {
         if ((i = query_quadoption (OPT_COPY,
                                    _("Save a copy of this message?"))) == -1)
@@ -1236,11 +1166,6 @@ int mutt_compose_menu (HEADER * msg,    /* structure for new message */
       redraw_crypt_lines (msg);
       mutt_message_hook (NULL, msg, M_SEND2HOOK);
       break;
-
-    case OP_COMPOSE_MIX:
-      mix_make_chain (&msg->chain, &menu->redraw);
-      mutt_message_hook (NULL, msg, M_SEND2HOOK);
-      break;
     }
 
     /* Draw formated compose status line */
@@ -1248,8 +1173,8 @@ int mutt_compose_menu (HEADER * msg,    /* structure for new message */
       compose_status_line (buf, sizeof (buf), menu, NONULL (ComposeFormat));
       CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES - 2);
       SETCOLOR (MT_COLOR_STATUS);
-      move (option (OPTSTATUSONTOP) ? 0 : LINES - 2, SW);
-      printw ("%-*.*s", COLS-SW, COLS-SW, buf);
+      wmove (stdscr, option (OPTSTATUSONTOP) ? 0 : LINES - 2, SW);
+      wprintw (stdscr, "%-*.*s", COLS-SW, COLS-SW, buf);
       SETCOLOR (MT_COLOR_NORMAL);
       menu->redraw &= ~REDRAW_STATUS;
     }