#include <lib-lib/lib-lib.h>
#include "recvattach.h"
-
#include "charset.h"
#include "mime.h"
o = NULL;
} else {
new = p_new(char, n + m + 1);
- strcpy(new, o);
- strcpy(new + n, s);
+ m_strcpy(new, n + m + 1, o);
+ m_strcpy(new + n, m + 1, s);
}
}
s++;
for (i = 0; *s && i < ssizeof(buffer) - 1; i++, s++) {
- if (!option(OPTSTRICTMIME)) {
- /* As iso-2022-* has a characer of '"' with non-ascii state,
- * ignore it. */
- if (*s == 0x1b && i < ssizeof(buffer) - 2) {
- state_ascii = s[1] == '(' && (s[2] == 'B' || s[2] == 'J');
- }
+ /* As iso-2022-* has a characer of '"' with non-ascii state,
+ * ignore it. */
+ if (*s == 0x1b && i < ssizeof(buffer) - 2) {
+ state_ascii = s[1] == '(' && (s[2] == 'B' || s[2] == 'J');
}
if (state_ascii && *s == '"')
break;
* field, so we can attempt to convert the type to BODY here.
*/
switch (ct->type) {
- char buffer[SHORT_STRING];
+ char buffer[STRING];
case TYPETEXT:
ct->subtype = m_strdup("plain");
pc = parameter_getval(ct->parameter, "charset");
if (!pc) {
parameter_setval(&ct->parameter, "charset",
- option(OPTSTRICTMIME)
- ? "us-ascii"
- : charset_getfirst(AssumedCharset));
+ charset_getfirst(MCharset.assumed_charset));
}
}
}
if (b->subtype) {
fseeko(fp, b->offset, SEEK_SET);
- if (mutt_is_message_type(b->type, b->subtype)) {
+ if (mutt_is_message_type(b)) {
b->parts = mutt_parse_messageRFC822(fp, b);
} else
if (mime_which_token(b->subtype, -1) == MIME_EXTERNAL_BODY) {
time_t mutt_parse_date(const char *s, HEADER *h)
{
int zhours = 0, zminutes = 0, zoccident = 0;
- char scratch[SHORT_STRING];
+ char scratch[STRING];
struct tm tm;
int count = 0;
char *p;
p_clear(&tm, 1);
while ((p = strtok (p, " \t")) != NULL) {
- char tzstr[SHORT_STRING];
+ char tzstr[STRING];
const char *ptz;
switch (count) {
/* restore the original line */
line[m_strlen(line)] = ':';
- if (weed && option(OPTWEED) && mutt_matches_ignore(line, Ignore)
- && !mutt_matches_ignore(line, UnIgnore)) {
+ if (weed && string_list_contains(Ignore, line, "*")
+ && !string_list_contains(UnIgnore, line, "*")) {
break;
}
p = strpbrk(line, ": \t");
if (!p || *p != ':') {
- char return_path[LONG_STRING];
- time_t t;
-
/* some bogus MTAs will quote the original "From " line */
- if (!m_strncmp(">From ", line, 6))
+ if (!m_strncmp(">From ", line, 6) || !m_strncmp("From ", line, 5))
continue; /* just ignore */
- if (is_from(line, return_path, sizeof(return_path), &t)) {
- /* MH somtimes has the From_ line in the middle of the header! */
- if (hdr && !hdr->received)
- hdr->received = t - mutt_local_tz(t);
- continue;
- }
-
fseeko(f, loc, 0);
break; /* end of header */
}
int mutt_count_body_parts(HEADER *hdr, int flags)
{
- if (!option(OPTCOUNTATTACH))
- return 0;
-
if (hdr->attach_valid && !(flags & M_PARTS_RECOUNT))
return hdr->attach_total;