simplifications
[apps/madmutt.git] / lib-ui / hdrline.c
index 6a4f7ea..e0047a5 100644 (file)
 #include <lib-mime/mime.h>
 #include <lib-ui/curses.h>
 #include <lib-mx/mx.h>
+#include <lib-crypt/crypt.h>
 
 #include "mutt.h"
 #include "alias.h"
 #include "sort.h"
 #include "thread.h"
 #include "charset.h"
-#include <lib-crypt/crypt.h>
 #include "mutt_idna.h"
 
 int mutt_is_mail_list (address_t * addr)
@@ -210,16 +210,13 @@ struct hdr_format_info {
   HEADER *hdr;
 };
 
-static const char *hdr_format_str (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 *
+hdr_format_str(char *dest, ssize_t destlen,
+               char op, const char *src, const char *prefix,
+               const char *ifstr, const char *elstr,
+               anytype data, format_flag flags)
 {
-  struct hdr_format_info *hfi = (struct hdr_format_info *) data;
+  struct hdr_format_info *hfi = data.ptr;
   HEADER *hdr, *htmp;
   CONTEXT *ctx;
   char fmt[STRING], buf2[STRING], ch, *p;
@@ -581,9 +578,7 @@ static const char *hdr_format_str (char *dest,
   case 'T':
     snprintf (fmt, sizeof (fmt), "%%%sc", prefix);
     snprintf (dest, destlen, fmt,
-              (Tochars
-               && ((i = mutt_user_is_recipient (hdr))) <
-               m_strlen(Tochars)) ? Tochars[i] : ' ');
+              ((i = mutt_user_is_recipient(hdr)) < m_strlen(Tochars)) ? Tochars[i] : ' ');
     break;
 
   case 'u':
@@ -660,8 +655,7 @@ static const char *hdr_format_str (char *dest,
               hdr->deleted ? 'D' : (hdr->attach_del ? 'd' : ch),
               hdr->tagged ? '*'
               : (hdr->flagged ? '!'
-                 : (Tochars && ((i = mutt_user_is_recipient(hdr)) < m_strlen(Tochars))
-                    ?  Tochars[i] : ' ')));
+                 : ((i = mutt_user_is_recipient(hdr)) < m_strlen(Tochars) ?  Tochars[i] : ' ')));
     mutt_format_s (dest, destlen, prefix, buf2);
     break;
 
@@ -702,18 +696,15 @@ static const char *hdr_format_str (char *dest,
     break;
 
   default:
-    snprintf (dest, destlen, "%%%s%c", prefix, op);
+    *dest = 0;
     break;
   }
 
-  if (optional)
-    m_strformat (dest, destlen, ifstring, hdr_format_str,
-                       (unsigned long) hfi, flags);
-  else if (flags & M_FORMAT_OPTIONAL)
-    m_strformat (dest, destlen, elsestring, hdr_format_str,
-                       (unsigned long) hfi, flags);
+  if (flags & M_FORMAT_OPTIONAL)
+    m_strformat(dest, destlen, 0, optional ? ifstr: elstr,
+                hdr_format_str, data, flags);
 
-  return (src);
+  return src;
 #undef THREAD_NEW
 #undef THREAD_OLD
 }
@@ -727,6 +718,5 @@ _mutt_make_string (char *dest, ssize_t destlen, const char *s, CONTEXT * ctx,
   hfi.hdr = hdr;
   hfi.ctx = ctx;
 
-  m_strformat (dest, destlen, s, hdr_format_str, (unsigned long) &hfi,
-                     flags);
+  m_strformat(dest, destlen, COLS - SW, s, hdr_format_str, &hfi, flags);
 }