X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=handler.c;h=47cbaca08cef7f5af68f496c9593419958bcc0dd;hp=4129fda38e6231eb9208430e3e4d20fa66abc339;hb=96e4b6de291b2195b26289fb03536acd101c6650;hpb=23e6291cb5d5b4cd2008403d8b628007fd75ff23 diff --git a/handler.c b/handler.c index 4129fda..47cbaca 100644 --- a/handler.c +++ b/handler.c @@ -25,14 +25,13 @@ #include #include +#include #include #include "mutt.h" #include "recvattach.h" #include "handler.h" -#include "rfc1524.h" -#include "rfc3676.h" #include "keymap.h" #include "copy.h" #include "charset.h" @@ -271,7 +270,7 @@ void mutt_decode_base64 (STATE * s, long len, int istext, iconv_t cd) else bufi[l++] = ch; - if (l + 8 >= sizeof (bufi)) + if (l + 8 >= ssizeof (bufi)) mutt_convert_to_state (cd, bufi, &l, s); } @@ -782,14 +781,12 @@ static int alternative_handler (BODY * a, STATE * s) mustfree = 1; fstat (fileno (s->fpin), &st); - b = mutt_new_body (); + b = body_new(); b->length = (long) st.st_size; - b->parts = mutt_parse_multipart (s->fpin, - mutt_get_parameter ("boundary", - a->parameter), - (long) st.st_size, - ascii_strcasecmp ("digest", - a->subtype) == 0); + b->parts = mutt_parse_multipart(s->fpin, + parameter_getval(a->parameter, "boundary"), + (long)st.st_size, + !ascii_strcasecmp("digest", a->subtype)); } else b = a; @@ -840,12 +837,12 @@ static int alternative_handler (BODY * a, STATE * s) while (b) { snprintf (buf, sizeof (buf), "%s/%s", TYPE (b), b->subtype); if (mutt_is_autoview (b, buf)) { - rfc1524_entry *entry = rfc1524_new_entry (); + rfc1524_entry *entry = rfc1524_entry_new(); if (rfc1524_mailcap_lookup (b, buf, entry, M_AUTOVIEW)) { choice = b; } - rfc1524_free_entry (&entry); + rfc1524_entry_delete(&entry); } b = b->next; } @@ -906,7 +903,7 @@ static int alternative_handler (BODY * a, STATE * s) } if (mustfree) - mutt_free_body (&a); + body_list_wipe(&a); return (rc); } @@ -923,7 +920,7 @@ static int message_handler (BODY * a, STATE * s) if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE || a->encoding == ENCUUENCODED) { fstat (fileno (s->fpin), &st); - b = mutt_new_body (); + b = body_new(); b->length = (long) st.st_size; b->parts = mutt_parse_messageRFC822 (s->fpin, b); } @@ -947,7 +944,7 @@ static int message_handler (BODY * a, STATE * s) if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE || a->encoding == ENCUUENCODED) - mutt_free_body (&b); + body_list_wipe(&b); return (rc); } @@ -998,14 +995,12 @@ static int multipart_handler (BODY * a, STATE * s) if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE || a->encoding == ENCUUENCODED) { fstat (fileno (s->fpin), &st); - b = mutt_new_body (); + b = body_new(); b->length = (long) st.st_size; - b->parts = mutt_parse_multipart (s->fpin, - mutt_get_parameter ("boundary", - a->parameter), - (long) st.st_size, - ascii_strcasecmp ("digest", - a->subtype) == 0); + b->parts = mutt_parse_multipart(s->fpin, + parameter_getval(a->parameter, "boundary"), + (long)st.st_size, + !ascii_strcasecmp("digest", a->subtype)); } else b = a; @@ -1050,14 +1045,14 @@ static int multipart_handler (BODY * a, STATE * s) if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE || a->encoding == ENCUUENCODED) - mutt_free_body (&b); + body_list_wipe(&b); return (rc); } static int autoview_handler (BODY * a, STATE * s) { - rfc1524_entry *entry = rfc1524_new_entry (); + rfc1524_entry *entry = rfc1524_entry_new(); char buffer[LONG_STRING]; char type[STRING]; char command[LONG_STRING]; @@ -1094,7 +1089,7 @@ static int autoview_handler (BODY * a, STATE * s) if ((fpin = safe_fopen (tempfile, "w+")) == NULL) { mutt_perror ("fopen"); - rfc1524_free_entry (&entry); + rfc1524_entry_delete(&entry); return (-1); } @@ -1170,7 +1165,7 @@ static int autoview_handler (BODY * a, STATE * s) if (s->flags & M_DISPLAY) mutt_clear_error (); } - rfc1524_free_entry (&entry); + rfc1524_entry_delete(&entry); return (rc); } @@ -1180,7 +1175,7 @@ static int external_body_handler (BODY * b, STATE * s) const char *expiration; time_t expire; - access_type = mutt_get_parameter ("access-type", b->parameter); + access_type = parameter_getval(b->parameter, "access-type"); if (!access_type) { if (s->flags & M_DISPLAY) { state_mark_attach (s); @@ -1189,7 +1184,7 @@ static int external_body_handler (BODY * b, STATE * s) return (-1); } - expiration = mutt_get_parameter ("expiration", b->parameter); + expiration = parameter_getval(b->parameter, "expiration"); if (expiration) expire = mutt_parse_date (expiration, NULL); else @@ -1203,7 +1198,7 @@ static int external_body_handler (BODY * b, STATE * s) state_mark_attach (s); state_printf (s, _("[-- This %s/%s attachment "), TYPE (b->parts), b->parts->subtype); - length = mutt_get_parameter ("length", b->parameter); + length = parameter_getval(b->parameter, "length"); if (length) { mutt_pretty_size (pretty_size, sizeof (pretty_size), strtol (length, NULL, 10)); @@ -1260,16 +1255,16 @@ static int external_body_handler (BODY * b, STATE * s) void mutt_decode_attachment (BODY * b, STATE * s) { int istext = mutt_is_text_part (b); - iconv_t cd = (iconv_t) (-1); + iconv_t cd = MUTT_ICONV_ERROR; Quotebuf[0] = '\0'; if (istext) { if (s->flags & M_CHARCONV) { - const char *charset = mutt_get_parameter ("charset", b->parameter); + const char *charset = parameter_getval(b->parameter, "charset"); if (!option (OPTSTRICTMIME) && !charset) - charset = mutt_get_first_charset (AssumedCharset); + charset = charset_getfirst(AssumedCharset); if (charset && Charset) cd = mutt_iconv_open (Charset, charset, M_ICONV_HOOK_FROM); } @@ -1299,7 +1294,7 @@ void mutt_decode_attachment (BODY * b, STATE * s) break; } - if (cd != (iconv_t) (-1)) + if (cd != MUTT_ICONV_ERROR) iconv_close (cd); } @@ -1321,13 +1316,13 @@ int mutt_body_handler (BODY * b, STATE * s) snprintf (type, sizeof (type), "%s/%s", TYPE (b), b->subtype); if (mutt_is_autoview (b, type)) { - rfc1524_entry *entry = rfc1524_new_entry (); + rfc1524_entry *entry = rfc1524_entry_new(); if (rfc1524_mailcap_lookup (b, type, entry, M_AUTOVIEW)) { handler = autoview_handler; s->flags &= ~M_CHARCONV; } - rfc1524_free_entry (&entry); + rfc1524_entry_delete(&entry); } else if (b->type == TYPETEXT) { if (ascii_strcasecmp ("plain", b->subtype) == 0) { @@ -1337,9 +1332,8 @@ int mutt_body_handler (BODY * b, STATE * s) if (mutt_is_application_pgp (b)) handler = crypt_pgp_application_pgp_handler; else - if (ascii_strcasecmp - ("flowed", mutt_get_parameter ("format", b->parameter)) == 0) - handler = rfc3676_handler; + if (!ascii_strcasecmp("flowed", parameter_getval(b->parameter, "format"))) + handler = rfc3676_handler; else plaintext = 1; } @@ -1362,7 +1356,7 @@ int mutt_body_handler (BODY * b, STATE * s) if (ascii_strcasecmp ("alternative", b->subtype) == 0) handler = alternative_handler; else if (ascii_strcasecmp ("signed", b->subtype) == 0) { - p = mutt_get_parameter ("protocol", b->parameter); + p = parameter_getval(b->parameter, "protocol"); if (!p) mutt_error (_("Error: multipart/signed has no protocol.")); @@ -1371,7 +1365,7 @@ int mutt_body_handler (BODY * b, STATE * s) handler = mutt_signed_handler; } else if (m_strcasecmp("encrypted", b->subtype) == 0) { - p = mutt_get_parameter ("protocol", b->parameter); + p = parameter_getval(b->parameter, "protocol"); if (!p) mutt_error (_