# include "config.h"
#endif
+#include <lib-lib/mem.h>
+
#include "mutt.h"
#include "buffer.h"
#include "enter.h"
else if (o) {
m = str_len (s);
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__ */
}
*/
if (!(at = strchr (new, '@')) || strchr (at + 1, '@')
|| (in_reply_to && at - new <= 8))
- mem_free (&new);
+ p_delete(&new);
else {
- t = (LIST *) mem_malloc (sizeof (LIST));
+ t = p_new(LIST, 1);
t->data = new;
t->next = lst;
lst = t;
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]))
char *pc;
char *subtype;
- mem_free (&ct->subtype);
+ p_delete(&ct->subtype);
mutt_free_parameter (&ct->parameter);
/* First extract any existing parameters */
{
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);
else if (p->type == TYPEMESSAGE && !p->subtype)
p->subtype = str_dup ("rfc822");
- mem_free (&line);
+ p_delete(&line);
return (p);
}
}
/* 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));
}
void mutt_parse_mime_message (CONTEXT * ctx, HEADER * cur)
/* 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;
}
}
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;
}
#ifdef USE_NNTP
case 'n':
if (!str_casecmp (line + 1, "ewsgroups")) {
- mem_free (&e->newsgroups);
+ p_delete(&e->newsgroups);
str_skip_trailws (p);
e->newsgroups = str_dup (str_skip_initws (p));
matched = 1;
{
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;
}
- mem_free (&line);
+ p_delete(&line);
if (hdr) {
hdr->content->hdr_offset = hdr->offset;