X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-ui%2Fhdrline.c;h=e0047a5d921fbe299c59c01edf716bdd234bbf6e;hp=f3e138ba41d690099f5f0f1ad678cf994f8aae95;hb=2289f2d4ca4b2c6ab355c5b72b954a93c56a0c51;hpb=f2ff91d8b7627e22af9715d384b6f9e9e802a39e diff --git a/lib-ui/hdrline.c b/lib-ui/hdrline.c index f3e138b..e0047a5 100644 --- a/lib-ui/hdrline.c +++ b/lib-ui/hdrline.c @@ -12,13 +12,13 @@ #include #include #include +#include #include "mutt.h" #include "alias.h" #include "sort.h" #include "thread.h" #include "charset.h" -#include #include "mutt_idna.h" int mutt_is_mail_list (address_t * addr) @@ -210,19 +210,16 @@ 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[SHORT_STRING], buf2[SHORT_STRING], ch, *p; + char fmt[STRING], buf2[STRING], ch, *p; int do_locales, i; int optional = (flags & M_FORMAT_OPTIONAL); int threads = ((Sort & SORT_MASK) == SORT_THREADS); @@ -438,7 +435,7 @@ static const char *hdr_format_str (char *dest, int j = 0; for (i = 0; hdr->env->from && hdr->env->from->personal && - hdr->env->from->personal[i] && j < SHORT_STRING - 1; i++) { + hdr->env->from->personal[i] && j < STRING - 1; i++) { if (isalpha ((int) hdr->env->from->personal[i])) { if (!iflag) { buf2[j++] = hdr->env->from->personal[i]; @@ -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) - mutt_FormatString (dest, destlen, ifstring, hdr_format_str, - (unsigned long) hfi, flags); - else if (flags & M_FORMAT_OPTIONAL) - mutt_FormatString (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; - mutt_FormatString (dest, destlen, s, hdr_format_str, (unsigned long) &hfi, - flags); + m_strformat(dest, destlen, COLS - SW, s, hdr_format_str, &hfi, flags); }