break;
case 1:
hdr->env->subject = str_dup (b);
- /* Now we need to do the things which would normally be done in
- * mutt_read_rfc822_header() */
- if (hdr->env->subject) {
- regmatch_t pmatch[1];
-
- rfc2047_decode (&hdr->env->subject);
-
- if (regexec (ReplyRegexp.rx, hdr->env->subject, 1, pmatch, 0) == 0)
- hdr->env->real_subj = hdr->env->subject + pmatch[0].rm_eo;
- else
- hdr->env->real_subj = hdr->env->subject;
- }
break;
case 2:
rfc822_free_address (&hdr->env->from);
hdr->env->from = rfc822_parse_adrlist (hdr->env->from, b);
- rfc2047_decode_adrlist (hdr->env->from);
/* same as for mutt_parse_rfc822_line():
* don't leave from info NULL if there's an invalid address (or
* whatever) in From: field; mutt would just display it as empty
hdr->env->xref = str_dup (b);
nntp_parse_xref (ctx, nntp_data->group, b, hdr);
}
+ rfc2047_decode_envelope (hdr->env);
if (!*p)
return -1;
b = p;
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;
}
}
a = a->next;
}
}
+
+void rfc2047_decode_envelope (ENVELOPE* e) {
+
+ if (!e)
+ return;
+
+ /* 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;
+ }
+}
void rfc2047_decode (char **);
void rfc2047_decode_adrlist (ADDRESS *);
+
+void rfc2047_decode_envelope (ENVELOPE* e);