Use p_new instead of xmalloc()
[apps/madmutt.git] / remailer.c
index bfb66b1..f8f3882 100644 (file)
@@ -340,17 +340,13 @@ static const char *mix_format_caps (remailer_t * r)
  * %a  address
  *
  */
-static const char *mix_entry_fmt (char *dest,
-                                  ssize_t destlen,
-                                  char op,
-                                  const char *src,
-                                  const char *prefix,
-                                  const char *ifstring,
-                                  const char *elsestring,
-                                  unsigned long data, format_flag flags)
+static const char *
+mix_entry_fmt (char *dest, ssize_t destlen, char op, const char *src,
+               const char *prefix, const char *ifstr,
+               const char *elstr, anytype data, format_flag flags)
 {
     char fmt[16];
-    remailer_t *remailer = (remailer_t *) data;
+    remailer_t *remailer = data.ptr;
     int optional = (flags & M_FORMAT_OPTIONAL);
 
     switch (op) {
@@ -387,10 +383,9 @@ static const char *mix_entry_fmt (char *dest,
         *dest = '\0';
     }
 
-    if (optional)
-        m_strformat (dest, destlen, ifstring, mutt_attach_fmt, data, 0);
-    else if (flags & M_FORMAT_OPTIONAL)
-        m_strformat (dest, destlen, elsestring, mutt_attach_fmt, data, 0);
+    if (flags & M_FORMAT_OPTIONAL)
+        m_strformat(dest, destlen, 0, optional ? ifstr : elstr,
+                    mutt_attach_fmt, data, 0);
     return (src);
 }
 
@@ -399,10 +394,9 @@ static const char *mix_entry_fmt (char *dest,
 static void mix_entry (char *b, ssize_t blen, MUTTMENU * menu, int num)
 {
     remailer_t **type2_list = (remailer_t **) menu->data;
-    int w = (COLS-SW) > blen ? blen : (COLS-SW);
 
-    m_strformat(b, w, NONULL (MixEntryFormat), mix_entry_fmt,
-                (unsigned long) type2_list[num],
+    m_strformat(b, blen, COLS - SW, MixEntryFormat, mix_entry_fmt,
+                type2_list[num],
                 option(OPTARROWCURSOR) ? M_FORMAT_ARROWCURSOR : 0);
 }