remove patchlist things, and more generated and commited things.
[apps/madmutt.git] / remailer.c
index 5d68c73..8f934b4 100644 (file)
@@ -1,22 +1,10 @@
 /*
+ * Copyright notice from original mutt:
  * Copyright (C) 1999-2000 Thomas Roessler <roessler@does-not-exist.org>
- * 
- *     This program is free software; you can redistribute it
- *     and/or modify it under the terms of the GNU General Public
- *     License as published by the Free Software Foundation; either
- *     version 2 of the License, or (at your option) any later
- *     version.
- * 
- *     This program is distributed in the hope that it will be
- *     useful, but WITHOUT ANY WARRANTY; without even the implied
- *     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- *     PURPOSE.  See the GNU General Public License for more
- *     details.
- * 
- *     You should have received a copy of the GNU General Public
- *     License along with this program; if not, write to the Free
- *     Software Foundation, Inc., 59 Temple Place - Suite 330,
- *     Boston, MA  02111, USA.
+ *
+ * This file is part of mutt-ng, see http://www.muttng.org/.
+ * It's licensed under the GNU General Public License,
+ * please see the file GPL in the top level source directory.
  */
 
 /*
 #endif
 
 #include "mutt.h"
+#include "recvattach.h"
 #include "mutt_curses.h"
 #include "mutt_menu.h"
-#include "mutt_regex.h"
 #include "mapping.h"
 
 #include "remailer.h"
 
+#include "lib/mem.h"
+#include "lib/intl.h"
+#include "lib/str.h"
+#include "lib/rx.h"
+
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -43,6 +36,8 @@
 #include <sys/file.h>
 #include <fcntl.h>
 
+#define SW              (option(OPTMBOXPANE)?SidebarWidth:0)
+
 #ifdef MIXMASTER
 
 struct coord {
@@ -108,7 +103,7 @@ static void mix_add_entry (REMAILER *** type2_list, REMAILER * entry,
 {
   if (*used == *slots) {
     *slots += 5;
-    safe_realloc (type2_list, sizeof (REMAILER *) * (*slots));
+    mem_realloc (type2_list, sizeof (REMAILER *) * (*slots));
   }
 
   (*type2_list)[(*used)++] = entry;
@@ -118,16 +113,16 @@ static void mix_add_entry (REMAILER *** type2_list, REMAILER * entry,
 
 static REMAILER *mix_new_remailer (void)
 {
-  return safe_calloc (1, sizeof (REMAILER));
+  return mem_calloc (1, sizeof (REMAILER));
 }
 
 static void mix_free_remailer (REMAILER ** r)
 {
-  FREE (&(*r)->shortname);
-  FREE (&(*r)->addr);
-  FREE (&(*r)->ver);
+  mem_free (&(*r)->shortname);
+  mem_free (&(*r)->addr);
+  mem_free (&(*r)->ver);
 
-  FREE (r);
+  mem_free (r);
 }
 
 /* parse the type2.list as given by mixmaster -T */
@@ -163,7 +158,7 @@ static REMAILER **mix_type2_list (size_t * l)
   /* first, generate the "random" remailer */
 
   p = mix_new_remailer ();
-  p->shortname = safe_strdup ("<random>");
+  p->shortname = str_dup ("<random>");
   mix_add_entry (&type2_list, p, &slots, &used);
 
   while (fgets (line, sizeof (line), fp)) {
@@ -172,12 +167,12 @@ static REMAILER **mix_type2_list (size_t * l)
     if (!(t = strtok (line, " \t\n")))
       goto problem;
 
-    p->shortname = safe_strdup (t);
+    p->shortname = str_dup (t);
 
     if (!(t = strtok (NULL, " \t\n")))
       goto problem;
 
-    p->addr = safe_strdup (t);
+    p->addr = str_dup (t);
 
     if (!(t = strtok (NULL, " \t\n")))
       goto problem;
@@ -185,7 +180,7 @@ static REMAILER **mix_type2_list (size_t * l)
     if (!(t = strtok (NULL, " \t\n")))
       goto problem;
 
-    p->ver = safe_strdup (t);
+    p->ver = str_dup (t);
 
     if (!(t = strtok (NULL, " \t\n")))
       goto problem;
@@ -217,7 +212,7 @@ static void mix_free_type2_list (REMAILER *** ttlp)
   for (i = 0; type2_list[i]; i++)
     mix_free_remailer (&type2_list[i]);
 
-  FREE (type2_list);
+  mem_free (type2_list);
 }
 
 
@@ -236,13 +231,13 @@ static void mix_screen_coordinates (REMAILER ** type2_list,
   if (!chain->cl)
     return;
 
-  safe_realloc (coordsp, sizeof (struct coord) * chain->cl);
+  mem_realloc (coordsp, sizeof (struct coord) * chain->cl);
 
   coords = *coordsp;
 
   if (i) {
     c =
-      coords[i - 1].c + strlen (type2_list[chain->ch[i - 1]]->shortname) + 2;
+      coords[i - 1].c + str_len (type2_list[chain->ch[i - 1]]->shortname) + 2;
     r = coords[i - 1].r;
   }
   else {
@@ -253,7 +248,7 @@ static void mix_screen_coordinates (REMAILER ** type2_list,
 
   for (; i < chain->cl; i++) {
     oc = c;
-    c += strlen (type2_list[chain->ch[i]]->shortname) + 2;
+    c += str_len (type2_list[chain->ch[i]]->shortname) + 2;
 
     if (c >= COLS) {
       oc = c = MIX_HOFFSET;
@@ -426,8 +421,9 @@ static const char *mix_entry_fmt (char *dest,
 static void mix_entry (char *b, size_t blen, MUTTMENU * menu, int num)
 {
   REMAILER **type2_list = (REMAILER **) menu->data;
+  int w=(COLS-SW)>blen?blen:(COLS-SW);
 
-  mutt_FormatString (b, blen, NONULL (MixEntryFormat), mix_entry_fmt,
+  mutt_FormatString (b, w, NONULL (MixEntryFormat), mix_entry_fmt,
                      (unsigned long) type2_list[num], M_FORMAT_ARROWCURSOR);
 }
 
@@ -439,7 +435,7 @@ static int mix_chain_add (MIXCHAIN * chain, const char *s,
   if (chain->cl >= MAXMIXES)
     return -1;
 
-  if (!mutt_strcmp (s, "0") || !ascii_strcasecmp (s, "<random>")) {
+  if (!str_cmp (s, "0") || !ascii_strcasecmp (s, "<random>")) {
     chain->ch[chain->cl++] = 0;
     return 0;
   }
@@ -498,7 +494,7 @@ void mix_make_chain (LIST ** chainp, int *redraw)
 
   *redraw = REDRAW_FULL;
 
-  chain = safe_calloc (sizeof (MIXCHAIN), 1);
+  chain = mem_calloc (sizeof (MIXCHAIN), 1);
   for (p = *chainp; p; p = p->next)
     mix_chain_add (chain, (char *) p->data, type2_list);
 
@@ -665,8 +661,8 @@ void mix_make_chain (LIST ** chainp, int *redraw)
   }
 
   mix_free_type2_list (&type2_list);
-  FREE (&coords);
-  FREE (&chain);
+  mem_free (&coords);
+  mem_free (&chain);
 }
 
 /* some safety checks before piping the message to mixmaster */