projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add more encoding arrays
[apps/madmutt.git]
/
parse.c
diff --git
a/parse.c
b/parse.c
index
5b88380
..
8175f6f
100644
(file)
--- a/
parse.c
+++ b/
parse.c
@@
-11,21
+11,22
@@
# include "config.h"
#endif
# include "config.h"
#endif
+#include <lib-lib/mem.h>
+#include <lib-lib/str.h>
+#include <lib-lib/ascii.h>
+#include <lib-lib/macros.h>
+#include <lib-lib/buffer.h>
+
+#include <lib-mime/mime.h>
+
#include "mutt.h"
#include "mutt.h"
-#include "buffer.h"
#include "enter.h"
#include "enter.h"
-#include "ascii.h"
#include "recvattach.h"
#include "mx.h"
#include "recvattach.h"
#include "mx.h"
-#include "mime.h"
#include "rfc2047.h"
#include "rfc2047.h"
-#include "rfc2231.h"
#include "mutt_crypt.h"
#include "url.h"
#include "mutt_crypt.h"
#include "url.h"
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
#include "lib/rx.h"
#include "lib/debug.h"
#include "lib/rx.h"
#include "lib/debug.h"
@@
-44,14
+45,14
@@
char *mutt_read_rfc822_line (FILE * f, char *line, size_t * linelen)
char ch;
size_t offset = 0;
char ch;
size_t offset = 0;
-
FOREVER
{
+
for (;;)
{
if (fgets (buf, *linelen - offset, f) == NULL || /* end of file or */
(ISSPACE (*line) && !offset)) { /* end of headers */
*line = 0;
return (line);
}
if (fgets (buf, *linelen - offset, f) == NULL || /* end of file or */
(ISSPACE (*line) && !offset)) { /* end of headers */
*line = 0;
return (line);
}
- buf +=
str_len
(buf) - 1;
+ buf +=
m_strlen
(buf) - 1;
if (*buf == '\n') {
/* we did get a full line. remove trailing space */
while (ISSPACE (*buf))
if (*buf == '\n') {
/* we did get a full line. remove trailing space */
while (ISSPACE (*buf))
@@
-76,7
+77,7
@@
char *mutt_read_rfc822_line (FILE * f, char *line, size_t * linelen)
if (*linelen < offset + STRING) {
/* grow the buffer */
*linelen += STRING;
if (*linelen < offset + STRING) {
/* grow the buffer */
*linelen += STRING;
-
mem_realloc
(&line, *linelen);
+
p_realloc
(&line, *linelen);
buf = line + offset;
}
}
buf = line + offset;
}
}
@@
-100,19
+101,19
@@
LIST *mutt_parse_references (char *s, int in_reply_to)
new = NULL;
if (*s == '<') {
new = NULL;
if (*s == '<') {
- n =
str_len
(s);
+ n =
m_strlen
(s);
if (s[n - 1] != '>') {
o = s;
s = NULL;
continue;
}
if (s[n - 1] != '>') {
o = s;
s = NULL;
continue;
}
- new =
str_dup
(s);
+ new =
m_strdup
(s);
}
else if (o) {
}
else if (o) {
- m =
str_len
(s);
+ m =
m_strlen
(s);
if (s[m - 1] == '>') {
if (s[m - 1] == '>') {
- new =
mem_malloc (sizeof (char) * (n + m + 1)
);
+ new =
p_new(char, n + m + 1
);
strcpy (new, o); /* __STRCPY_CHECKED__ */
strcpy (new + n, s); /* __STRCPY_CHECKED__ */
}
strcpy (new, o); /* __STRCPY_CHECKED__ */
strcpy (new + n, s); /* __STRCPY_CHECKED__ */
}
@@
-126,9
+127,9
@@
LIST *mutt_parse_references (char *s, int in_reply_to)
*/
if (!(at = strchr (new, '@')) || strchr (at + 1, '@')
|| (in_reply_to && at - new <= 8))
*/
if (!(at = strchr (new, '@')) || strchr (at + 1, '@')
|| (in_reply_to && at - new <= 8))
-
mem_free
(&new);
+
p_delete
(&new);
else {
else {
- t =
(LIST *) mem_malloc (sizeof (LIST)
);
+ t =
p_new(LIST, 1
);
t->data = new;
t->next = lst;
lst = t;
t->data = new;
t->next = lst;
lst = t;
@@
-187,16
+188,13
@@
static PARAMETER *parse_parameters (const char *s)
new = mutt_new_parameter ();
new = mutt_new_parameter ();
- new->attribute = mem_malloc (i + 1);
- memcpy (new->attribute, s, i);
- new->attribute[i] = 0;
+ new->attribute = p_dupstr(s, i);
/* remove whitespace from the end of the attribute name */
while (ISSPACE (new->attribute[--i]))
new->attribute[i] = 0;
/* remove whitespace from the end of the attribute name */
while (ISSPACE (new->attribute[--i]))
new->attribute[i] = 0;
- s = p + 1; /* skip over the = */
- SKIPWS (s);
+ s = vskipspaces(p + 1); /* skip over the = */
if (*s == '"') {
int state_ascii = 1;
if (*s == '"') {
int state_ascii = 1;
@@
-235,7
+233,7
@@
static PARAMETER *parse_parameters (const char *s)
buffer[i] = 0;
}
buffer[i] = 0;
}
- new->value =
str_dup
(buffer);
+ new->value =
m_strdup
(buffer);
debug_print (2, ("`%s' = `%s'\n", new->attribute ? new->attribute : "",
new->value ? new->value : ""));
debug_print (2, ("`%s' = `%s'\n", new->attribute ? new->attribute : "",
new->value ? new->value : ""));
@@
-258,10
+256,8
@@
static PARAMETER *parse_parameters (const char *s)
break; /* no more parameters */
do {
break; /* no more parameters */
do {
- s++;
-
/* Move past any leading whitespace */
/* Move past any leading whitespace */
-
SKIPWS (s
);
+
s = vskipspaces(s + 1
);
}
while (*s == ';'); /* skip empty parameters */
}
}
while (*s == ';'); /* skip empty parameters */
}
@@
-307,7
+303,7
@@
void mutt_parse_content_type (char *s, BODY * ct)
char *pc;
char *subtype;
char *pc;
char *subtype;
-
mem_free
(&ct->subtype);
+
p_delete
(&ct->subtype);
mutt_free_parameter (&ct->parameter);
/* First extract any existing parameters */
mutt_free_parameter (&ct->parameter);
/* First extract any existing parameters */
@@
-322,7
+318,7
@@
void mutt_parse_content_type (char *s, BODY * ct)
* let that take precedence, and don't set it here */
if ((pc = mutt_get_parameter ("name", ct->parameter)) != 0
&& !ct->filename)
* let that take precedence, and don't set it here */
if ((pc = mutt_get_parameter ("name", ct->parameter)) != 0
&& !ct->filename)
- ct->filename =
str_dup
(pc);
+ ct->filename =
m_strdup
(pc);
#ifdef SUN_ATTACHMENT
/* this is deep and utter perversion */
#ifdef SUN_ATTACHMENT
/* this is deep and utter perversion */
@@
-337,7
+333,7
@@
void mutt_parse_content_type (char *s, BODY * ct)
*subtype++ = '\0';
for (pc = subtype; *pc && !ISSPACE (*pc) && *pc != ';'; pc++);
*pc = '\0';
*subtype++ = '\0';
for (pc = subtype; *pc && !ISSPACE (*pc) && *pc != ';'; pc++);
*pc = '\0';
- ct->subtype =
str_dup
(subtype);
+ ct->subtype =
m_strdup
(subtype);
}
/* Finally, get the major type */
}
/* Finally, get the major type */
@@
-345,11
+341,11
@@
void mutt_parse_content_type (char *s, BODY * ct)
#ifdef SUN_ATTACHMENT
if (ascii_strcasecmp ("x-sun-attachment", s) == 0)
#ifdef SUN_ATTACHMENT
if (ascii_strcasecmp ("x-sun-attachment", s) == 0)
- ct->subtype =
str_dup
("x-sun-attachment");
+ ct->subtype =
m_strdup
("x-sun-attachment");
#endif
if (ct->type == TYPEOTHER) {
#endif
if (ct->type == TYPEOTHER) {
- ct->xtype =
str_dup
(s);
+ ct->xtype =
m_strdup
(s);
}
if (ct->subtype == NULL) {
}
if (ct->subtype == NULL) {
@@
-357,20
+353,20
@@
void mutt_parse_content_type (char *s, BODY * ct)
* field, so we can attempt to convert the type to BODY here.
*/
if (ct->type == TYPETEXT)
* field, so we can attempt to convert the type to BODY here.
*/
if (ct->type == TYPETEXT)
- ct->subtype =
str_dup
("plain");
+ ct->subtype =
m_strdup
("plain");
else if (ct->type == TYPEAUDIO)
else if (ct->type == TYPEAUDIO)
- ct->subtype =
str_dup
("basic");
+ ct->subtype =
m_strdup
("basic");
else if (ct->type == TYPEMESSAGE)
else if (ct->type == TYPEMESSAGE)
- ct->subtype =
str_dup
("rfc822");
+ ct->subtype =
m_strdup
("rfc822");
else if (ct->type == TYPEOTHER) {
char buffer[SHORT_STRING];
ct->type = TYPEAPPLICATION;
snprintf (buffer, sizeof (buffer), "x-%s", s);
else if (ct->type == TYPEOTHER) {
char buffer[SHORT_STRING];
ct->type = TYPEAPPLICATION;
snprintf (buffer, sizeof (buffer), "x-%s", s);
- ct->subtype =
str_dup
(buffer);
+ ct->subtype =
m_strdup
(buffer);
}
else
}
else
- ct->subtype =
str_dup
("x-unknown");
+ ct->subtype =
m_strdup
("x-unknown");
}
/* Default character set for text types. */
}
/* Default character set for text types. */
@@
-397,14
+393,12
@@
static void parse_content_disposition (char *s, BODY * ct)
/* Check to see if a default filename was given */
if ((s = strchr (s, ';')) != NULL) {
/* Check to see if a default filename was given */
if ((s = strchr (s, ';')) != NULL) {
- s++;
- SKIPWS (s);
- if ((s =
- mutt_get_parameter ("filename",
- (parms = parse_parameters (s)))) != 0)
+ s = vskipspaces(s + 1);
+ if ((s = mutt_get_parameter("filename",
+ (parms = parse_parameters (s)))) != 0)
str_replace (&ct->filename, s);
if ((s = mutt_get_parameter ("name", parms)) != 0)
str_replace (&ct->filename, s);
if ((s = mutt_get_parameter ("name", parms)) != 0)
- ct->form_name =
str_dup
(s);
+ ct->form_name =
m_strdup
(s);
mutt_free_parameter (&parms);
}
}
mutt_free_parameter (&parms);
}
}
@@
-420,7
+414,7
@@
BODY *mutt_read_mime_header (FILE * fp, int digest)
{
BODY *p = mutt_new_body ();
char *c;
{
BODY *p = mutt_new_body ();
char *c;
- char *line =
mem_malloc (
LONG_STRING);
+ char *line =
p_new(char,
LONG_STRING);
size_t linelen = LONG_STRING;
p->hdr_offset = ftello (fp);
size_t linelen = LONG_STRING;
p->hdr_offset = ftello (fp);
@@
-432,9
+426,8
@@
BODY *mutt_read_mime_header (FILE * fp, int digest)
while (*(line = mutt_read_rfc822_line (fp, line, &linelen)) != 0) {
/* Find the value of the current header */
if ((c = strchr (line, ':'))) {
while (*(line = mutt_read_rfc822_line (fp, line, &linelen)) != 0) {
/* Find the value of the current header */
if ((c = strchr (line, ':'))) {
- *c = 0;
- c++;
- SKIPWS (c);
+ *c++ = 0;
+ c = vskipspaces(c);
if (!*c) {
debug_print (1, ("skipping empty header field: %s\n", line));
continue;
if (!*c) {
debug_print (1, ("skipping empty header field: %s\n", line));
continue;
@@
-474,11
+467,11
@@
BODY *mutt_read_mime_header (FILE * fp, int digest)
}
p->offset = ftello (fp); /* Mark the start of the real data */
if (p->type == TYPETEXT && !p->subtype)
}
p->offset = ftello (fp); /* Mark the start of the real data */
if (p->type == TYPETEXT && !p->subtype)
- p->subtype =
str_dup
("plain");
+ p->subtype =
m_strdup
("plain");
else if (p->type == TYPEMESSAGE && !p->subtype)
else if (p->type == TYPEMESSAGE && !p->subtype)
- p->subtype =
str_dup
("rfc822");
+ p->subtype =
m_strdup
("rfc822");
-
mem_free
(&line);
+
p_delete
(&line);
return (p);
}
return (p);
}
@@
-590,14
+583,14
@@
BODY *mutt_parse_multipart (FILE * fp, const char *boundary, off_t end_off,
return (NULL);
}
return (NULL);
}
- blen =
str_len
(boundary);
+ blen =
m_strlen
(boundary);
while (ftello (fp) < end_off && fgets (buffer, LONG_STRING, fp) != NULL) {
while (ftello (fp) < end_off && fgets (buffer, LONG_STRING, fp) != NULL) {
- len =
str_len
(buffer);
+ len =
m_strlen
(buffer);
crlf = (len > 1 && buffer[len - 2] == '\r') ? 1 : 0;
if (buffer[0] == '-' && buffer[1] == '-' &&
crlf = (len > 1 && buffer[len - 2] == '\r') ? 1 : 0;
if (buffer[0] == '-' && buffer[1] == '-' &&
-
str_ncmp
(buffer + 2, boundary, blen) == 0) {
+
m_strncmp
(buffer + 2, boundary, blen) == 0) {
if (last) {
last->length = ftello (fp) - last->offset - len - 1 - crlf;
if (last->parts && last->parts->length == 0)
if (last) {
last->length = ftello (fp) - last->offset - len - 1 - crlf;
if (last->parts && last->parts->length == 0)
@@
-613,7
+606,7
@@
BODY *mutt_parse_multipart (FILE * fp, const char *boundary, off_t end_off,
buffer[i] = 0;
/* Check for the end boundary */
buffer[i] = 0;
/* Check for the end boundary */
- if (
str_cmp
(buffer + blen + 2, "--") == 0) {
+ if (
m_strcmp
(buffer + blen + 2, "--") == 0) {
final = 1;
break; /* done parsing */
}
final = 1;
break; /* done parsing */
}
@@
-669,8
+662,7
@@
static const char *uncomment_timezone (char *buf, size_t buflen,
if (*tz != '(')
return tz; /* no need to do anything */
if (*tz != '(')
return tz; /* no need to do anything */
- tz++;
- SKIPWS (tz);
+ tz = vskipspaces(tz + 1);
if ((p = strpbrk (tz, " )")) == NULL)
return tz;
len = p - tz;
if ((p = strpbrk (tz, " )")) == NULL)
return tz;
len = p - tz;
@@
-797,16
+789,16
@@
time_t mutt_parse_date (const char *s, HEADER * h)
* the date format imposes a natural limit.
*/
* the date format imposes a natural limit.
*/
-
strfcpy (scratch, s, sizeof (scratch)
);
+
m_strcpy(scratch, sizeof(scratch), s
);
/* kill the day of the week, if it exists. */
if ((t = strchr (scratch, ',')))
t++;
else
t = scratch;
/* kill the day of the week, if it exists. */
if ((t = strchr (scratch, ',')))
t++;
else
t = scratch;
-
SKIPWS
(t);
+
t = vskipspaces
(t);
-
memset (&tm, 0, sizeof (tm)
);
+
p_clear(&tm, 1
);
while ((t = strtok (t, " \t")) != NULL) {
switch (count) {
while ((t = strtok (t, " \t")) != NULL) {
switch (count) {
@@
-911,19
+903,13
@@
time_t mutt_parse_date (const char *s, HEADER * h)
}
/* extract the first substring that looks like a message-id */
}
/* extract the first substring that looks like a message-id */
-static char *extract_message_id
(const char *s)
+static char *extract_message_id(const char *s)
{
{
- const char *p;
- char *r;
- size_t l;
+ const char *p;
- if ((s = strchr (s, '<')) == NULL || (p = strchr (s, '>')) == NULL)
- return (NULL);
- l = (size_t) (p - s) + 1;
- r = mem_malloc (l + 1);
- memcpy (r, s, l);
- r[l] = 0;
- return (r);
+ if ((s = strchr(s, '<')) == NULL || (p = strchr(s, '>')) == NULL)
+ return NULL;
+ return p_dupstr(s, (p - s) + 1);
}
void mutt_parse_mime_message (CONTEXT * ctx, HEADER * cur)
}
void mutt_parse_mime_message (CONTEXT * ctx, HEADER * cur)
@@
-1042,15
+1028,15
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
* bothered me for _years_ */
if (!e->from) {
e->from = rfc822_new_address ();
* bothered me for _years_ */
if (!e->from) {
e->from = rfc822_new_address ();
- e->from->personal =
str_dup
(p);
+ e->from->personal =
m_strdup
(p);
}
matched = 1;
}
#ifdef USE_NNTP
}
matched = 1;
}
#ifdef USE_NNTP
- else if (!
str_casecmp
(line + 1, "ollowup-to")) {
+ else if (!
m_strcasecmp
(line + 1, "ollowup-to")) {
if (!e->followup_to) {
str_skip_trailws (p);
if (!e->followup_to) {
str_skip_trailws (p);
- e->followup_to =
str_dup (str_skip_initws
(p));
+ e->followup_to =
m_strdup(vskipspaces
(p));
}
matched = 1;
}
}
matched = 1;
}
@@
-1092,7
+1078,7
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
/* Take the first mailto URL */
if (url_check_scheme (beg) == U_MAILTO) {
/* Take the first mailto URL */
if (url_check_scheme (beg) == U_MAILTO) {
-
mem_free
(&e->list_post);
+
p_delete
(&e->list_post);
e->list_post = str_substrdup (beg, end);
break;
}
e->list_post = str_substrdup (beg, end);
break;
}
@@
-1110,7
+1096,7
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
}
else if (!ascii_strcasecmp (line + 1, "essage-id")) {
/* We add a new "Message-ID:" when building a message */
}
else if (!ascii_strcasecmp (line + 1, "essage-id")) {
/* We add a new "Message-ID:" when building a message */
-
mem_free
(&e->message_id);
+
p_delete
(&e->message_id);
e->message_id = extract_message_id (p);
matched = 1;
}
e->message_id = extract_message_id (p);
matched = 1;
}
@@
-1130,10
+1116,10
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
#ifdef USE_NNTP
case 'n':
#ifdef USE_NNTP
case 'n':
- if (!
str_casecmp
(line + 1, "ewsgroups")) {
-
mem_free
(&e->newsgroups);
+ if (!
m_strcasecmp
(line + 1, "ewsgroups")) {
+
p_delete
(&e->newsgroups);
str_skip_trailws (p);
str_skip_trailws (p);
- e->newsgroups =
str_dup (str_skip_initws
(p));
+ e->newsgroups =
m_strdup(vskipspaces
(p));
matched = 1;
}
break;
matched = 1;
}
break;
@@
-1141,9
+1127,9
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
case 'o':
/* field `Organization:' saves only for pager! */
case 'o':
/* field `Organization:' saves only for pager! */
- if (!
str_casecmp
(line + 1, "rganization")) {
- if (!e->organization &&
str_casecmp
(p, "unknown"))
- e->organization =
str_dup
(p);
+ if (!
m_strcasecmp
(line + 1, "rganization")) {
+ if (!e->organization &&
m_strcasecmp
(p, "unknown"))
+ e->organization =
m_strdup
(p);
}
break;
}
break;
@@
-1174,7
+1160,7
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
case 's':
if (!ascii_strcasecmp (line + 1, "ubject")) {
if (!e->subject)
case 's':
if (!ascii_strcasecmp (line + 1, "ubject")) {
if (!e->subject)
- e->subject =
str_dup
(p);
+ e->subject =
m_strdup
(p);
matched = 1;
}
else if (!ascii_strcasecmp (line + 1, "ender")) {
matched = 1;
}
else if (!ascii_strcasecmp (line + 1, "ender")) {
@@
-1202,7
+1188,7
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
}
else if ((!ascii_strcasecmp ("upersedes", line + 1) ||
!ascii_strcasecmp ("upercedes", line + 1)) && hdr)
}
else if ((!ascii_strcasecmp ("upersedes", line + 1) ||
!ascii_strcasecmp ("upercedes", line + 1)) && hdr)
- e->supersedes =
str_dup
(p);
+ e->supersedes =
m_strdup
(p);
break;
case 't':
break;
case 't':
@@
-1235,18
+1221,18
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
matched = 1;
}
else if (ascii_strcasecmp (line + 1, "-label") == 0) {
matched = 1;
}
else if (ascii_strcasecmp (line + 1, "-label") == 0) {
- e->x_label =
str_dup
(p);
+ e->x_label =
m_strdup
(p);
matched = 1;
}
#ifdef USE_NNTP
matched = 1;
}
#ifdef USE_NNTP
- else if (!
str_casecmp
(line + 1, "-comment-to")) {
+ else if (!
m_strcasecmp
(line + 1, "-comment-to")) {
if (!e->x_comment_to)
if (!e->x_comment_to)
- e->x_comment_to =
str_dup
(p);
+ e->x_comment_to =
m_strdup
(p);
matched = 1;
}
matched = 1;
}
- else if (!
str_casecmp
(line + 1, "ref")) {
+ else if (!
m_strcasecmp
(line + 1, "ref")) {
if (!e->xref)
if (!e->xref)
- e->xref =
str_dup
(p);
+ e->xref =
m_strdup
(p);
matched = 1;
}
#endif
matched = 1;
}
#endif
@@
-1258,7
+1244,7
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
/* Keep track of the user-defined headers */
if (!matched && user_hdrs) {
/* restore the original line */
/* Keep track of the user-defined headers */
if (!matched && user_hdrs) {
/* restore the original line */
- line[
str_len
(line)] = ':';
+ line[
m_strlen
(line)] = ':';
if (weed && option (OPTWEED) && mutt_matches_ignore (line, Ignore)
&& !mutt_matches_ignore (line, UnIgnore))
if (weed && option (OPTWEED) && mutt_matches_ignore (line, Ignore)
&& !mutt_matches_ignore (line, UnIgnore))
@@
-1270,7
+1256,7
@@
int mutt_parse_rfc822_line (ENVELOPE * e, HEADER * hdr, char *line, char *p,
}
else
last = e->userhdrs = mutt_new_list ();
}
else
last = e->userhdrs = mutt_new_list ();
- last->data =
str_dup
(line);
+ last->data =
m_strdup
(line);
if (do_2047)
rfc2047_decode (&last->data);
}
if (do_2047)
rfc2047_decode (&last->data);
}
@@
-1305,7
+1291,7
@@
ENVELOPE *mutt_read_rfc822_header (FILE * f, HEADER * hdr, short user_hdrs,
{
ENVELOPE *e = mutt_new_envelope ();
LIST *last = NULL;
{
ENVELOPE *e = mutt_new_envelope ();
LIST *last = NULL;
- char *line =
mem_malloc (
LONG_STRING);
+ char *line =
p_new(char,
LONG_STRING);
char *p;
off_t loc;
int matched;
char *p;
off_t loc;
int matched;
@@
-1318,7
+1304,7
@@
ENVELOPE *mutt_read_rfc822_header (FILE * f, HEADER * hdr, short user_hdrs,
/* set the defaults from RFC1521 */
hdr->content->type = TYPETEXT;
/* set the defaults from RFC1521 */
hdr->content->type = TYPETEXT;
- hdr->content->subtype =
str_dup
("plain");
+ hdr->content->subtype =
m_strdup
("plain");
hdr->content->encoding = ENC7BIT;
hdr->content->length = -1;
hdr->content->encoding = ENC7BIT;
hdr->content->length = -1;
@@
-1336,7
+1322,7
@@
ENVELOPE *mutt_read_rfc822_header (FILE * f, HEADER * hdr, short user_hdrs,
time_t t;
/* some bogus MTAs will quote the original "From " line */
time_t t;
/* some bogus MTAs will quote the original "From " line */
- if (
str_ncmp
(">From ", line, 6) == 0)
+ if (
m_strncmp
(">From ", line, 6) == 0)
continue; /* just ignore */
else if (is_from (line, return_path, sizeof (return_path), &t)) {
/* MH somtimes has the From_ line in the middle of the header! */
continue; /* just ignore */
else if (is_from (line, return_path, sizeof (return_path), &t)) {
/* MH somtimes has the From_ line in the middle of the header! */
@@
-1385,9
+1371,8
@@
ENVELOPE *mutt_read_rfc822_header (FILE * f, HEADER * hdr, short user_hdrs,
}
}
}
}
- *p = 0;
- p++;
- SKIPWS (p);
+ *p++ = 0;
+ p = vskipspaces(p);
if (!*p)
continue; /* skip empty header fields */
if (!*p)
continue; /* skip empty header fields */
@@
-1396,7
+1381,7
@@
ENVELOPE *mutt_read_rfc822_header (FILE * f, HEADER * hdr, short user_hdrs,
}
}
-
mem_free
(&line);
+
p_delete
(&line);
if (hdr) {
hdr->content->hdr_offset = hdr->offset;
if (hdr) {
hdr->content->hdr_offset = hdr->offset;
@@
-1422,7
+1407,7
@@
ADDRESS *mutt_parse_adrlist (ADDRESS * p, const char *s)
char tmp[HUGE_STRING];
char *r;
char tmp[HUGE_STRING];
char *r;
-
strfcpy (tmp, s, sizeof (tmp)
);
+
m_strcpy(tmp, sizeof(tmp), s
);
r = tmp;
while ((r = strtok (r, " \t")) != NULL) {
p = rfc822_parse_adrlist (p, r);
r = tmp;
while ((r = strtok (r, " \t")) != NULL) {
p = rfc822_parse_adrlist (p, r);
@@
-1498,7
+1483,7
@@
int count_body_parts (BODY *body, int flags) {
} else if (bp->type == TYPEMULTIPART) {
/* Always recurse multiparts, except multipart/alternative. */
shallrecurse = 1;
} else if (bp->type == TYPEMULTIPART) {
/* Always recurse multiparts, except multipart/alternative. */
shallrecurse = 1;
- if (!
str_
casecmp(bp->subtype, "alternative"))
+ if (!
m_str
casecmp(bp->subtype, "alternative"))
shallrecurse = 0;
/* Don't count containers if they're top-level. */
shallrecurse = 0;
/* Don't count containers if they're top-level. */