X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=parse.c;h=1562faf237b4b44a51895312abc258ad8ff55973;hb=da68385c8a5ae014ac1ea0f06302850b712e7906;hp=34ba5ce1691aa40f7de4e958ff07839e05a8674e;hpb=364bf52ada05bf7d7158dba9d2391f63b71258f6;p=apps%2Fmadmutt.git diff --git a/parse.c b/parse.c index 34ba5ce..1562faf 100644 --- a/parse.c +++ b/parse.c @@ -38,7 +38,7 @@ * lines. ``line'' must point to a dynamically allocated string; it is * increased if more space is required to fit the whole line. */ -static char *read_rfc822_line (FILE * f, char *line, size_t * linelen) +char *mutt_read_rfc822_line (FILE * f, char *line, size_t * linelen) { char *buf = line; char ch; @@ -425,7 +425,7 @@ BODY *mutt_read_mime_header (FILE * fp, int digest) p->type = digest ? TYPEMESSAGE : TYPETEXT; p->disposition = DISPINLINE; - while (*(line = read_rfc822_line (fp, line, &linelen)) != 0) { + while (*(line = mutt_read_rfc822_line (fp, line, &linelen)) != 0) { /* Find the value of the current header */ if ((c = strchr (line, ':'))) { *c = 0; @@ -1101,7 +1101,7 @@ int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p, matched = 1; } else if (!ascii_strcasecmp (line + 1, "essage-id")) { - /* We add a new "Message-Id:" when building a message */ + /* We add a new "Message-ID:" when building a message */ mem_free (&e->message_id); e->message_id = extract_message_id (p); matched = 1; @@ -1320,7 +1320,7 @@ ENVELOPE *mutt_read_rfc822_header (FILE * f, HEADER * hdr, short user_hdrs, } while ((loc = ftell (f)), - *(line = read_rfc822_line (f, line, &linelen)) != 0) { + *(line = mutt_read_rfc822_line (f, line, &linelen)) != 0) { matched = 0; if ((p = strpbrk (line, ": \t")) == NULL || *p != ':') { @@ -1393,31 +1393,11 @@ ENVELOPE *mutt_read_rfc822_header (FILE * f, HEADER * hdr, short user_hdrs, if (hdr) { hdr->content->hdr_offset = hdr->offset; hdr->content->offset = ftell (f); - - /* do RFC2047 decoding */ - rfc2047_decode_adrlist (e->from); - rfc2047_decode_adrlist (e->to); - rfc2047_decode_adrlist (e->cc); - rfc2047_decode_adrlist (e->bcc); - rfc2047_decode_adrlist (e->reply_to); - rfc2047_decode_adrlist (e->mail_followup_to); - rfc2047_decode_adrlist (e->return_path); - rfc2047_decode_adrlist (e->sender); - - if (e->subject) { - regmatch_t pmatch[1]; - - rfc2047_decode (&e->subject); - - if (regexec (ReplyRegexp.rx, e->subject, 1, pmatch, 0) == 0) - e->real_subj = e->subject + pmatch[0].rm_eo; - else - e->real_subj = e->subject; - } - + rfc2047_decode_envelope (e); /* check for missing or invalid date */ if (hdr->date_sent <= 0) { - debug_print (1, ("no date found, using received time from msg separator\n")); + debug_print (1, ("no date found, using received " + "time from msg separator\n")); hdr->date_sent = hdr->received; } }