#endif
#include <lib-lib/mem.h>
+#include <lib-lib/ascii.h>
+#include <lib-lib/str.h>
+#include <lib-lib/macros.h>
+#include <lib-lib/file.h>
#include "mutt.h"
-#include "ascii.h"
#include "handler.h"
#include "recvattach.h"
#include "mutt_curses.h"
#include "mutt_crypt.h"
#include "mutt_idna.h"
-#include "lib/str.h"
-#include "lib/intl.h"
#include "lib/debug.h"
#include <string.h>
fprintf (f, "Content-Type: %s/%s", TYPE (a), a->subtype);
if (a->parameter) {
- len = 25 + str_len (a->subtype); /* approximate len. of content-type */
+ len = 25 + m_strlen(a->subtype); /* approximate len. of content-type */
for (p = a->parameter; p; p = p->next) {
char *tmp;
fputc (';', f);
buffer[0] = 0;
- tmp = str_dup (p->value);
+ tmp = m_strdup(p->value);
encode = rfc2231_encode_string (&tmp);
rfc822_cat (buffer, sizeof (buffer), tmp, MimeSpecials);
p_delete(&tmp);
- tmplen = str_len (buffer) + str_len (p->attribute) + 1;
+ tmplen = m_strlen(buffer) + m_strlen(p->attribute) + 1;
if (len + tmplen + 2 > 76) {
fputs ("\n\t", f);
t = fn;
buffer[0] = 0;
- tmp = str_dup (t);
+ tmp = m_strdup(t);
encode = rfc2231_encode_string (&tmp);
rfc822_cat (buffer, sizeof (buffer), tmp, MimeSpecials);
p_delete(&tmp);
/* This is pretty gross, but it's the best solution for now... */
if ((WithCrypto & APPLICATION_PGP)
&& a->type == TYPEAPPLICATION
- && str_cmp (a->subtype, "pgp-encrypted") == 0) {
+ && m_strcmp(a->subtype, "pgp-encrypted") == 0) {
fputs ("Version: 1\n", f);
return 0;
}
}
info = p_new(CONTENT, 1);
- memset (&state, 0, sizeof (state));
+ p_clear(&state, 1);
if (b != NULL && b->type == TYPETEXT && (!b->noconv && !b->force_charset)) {
char *chs = mutt_get_parameter ("charset", b->parameter);
type = TYPEOTHER;
cur_sze = 0;
- szf = str_len (path);
+ szf = m_strlen(path);
for (count = 0; count < 4; count++) {
/*
/* cycle through the file extensions */
while ((p = strtok (p, " \t\n"))) {
- sze = str_len (p);
+ sze = m_strlen(p);
if ((sze > cur_sze) && (szf >= sze) &&
(str_casecmp (path + szf - sze, p) == 0
|| ascii_strcasecmp (path + szf - sze, p) == 0) && (szf == sze
a->d_filename = a->filename;
if (a->filename && a->unlink)
unlink (a->filename);
- a->filename = str_dup (temp);
+ a->filename = m_strdup(temp);
a->unlink = 1;
if (stat (a->filename, &sb) == -1) {
mutt_perror ("stat");
STATE s;
struct stat sb;
- memset (&s, 0, sizeof (s));
+ p_clear(&s, 1);
for (; a; a = a->next) {
if (a->type == TYPEMULTIPART) {
if (a->encoding != ENC7BIT)
mutt_decode_attachment (a, &s);
fclose (s.fpout);
a->d_filename = a->filename;
- a->filename = str_dup (buff);
+ a->filename = m_strdup(buff);
a->unlink = 1;
if (stat (a->filename, &sb) == -1) {
mutt_perror ("stat");
body = mutt_new_body ();
body->type = TYPEMESSAGE;
- body->subtype = str_dup ("rfc822");
- body->filename = str_dup (buffer);
+ body->subtype = m_strdup("rfc822");
+ body->filename = m_strdup(buffer);
body->unlink = 1;
body->use_disp = 0;
body->disposition = DISPINLINE;
CONTENT *info;
att = mutt_new_body ();
- att->filename = str_dup (path);
+ att->filename = m_strdup(path);
/* Attempt to determine the appropriate content-type based on the filename
* suffix.
mutt_lookup_mime_type (buf, sizeof (buf), xbuf, sizeof (xbuf),
path)) != TYPEOTHER || *xbuf != '\0') {
att->type = n;
- att->subtype = str_dup (buf);
- att->xtype = str_dup (xbuf);
+ att->subtype = m_strdup(buf);
+ att->xtype = m_strdup(xbuf);
}
#else
* chars if this is really a binary file...
*/
att->type = TYPETEXT;
- att->subtype = str_dup ("plain");
+ att->subtype = m_strdup("plain");
}
else {
att->type = TYPEAPPLICATION;
- att->subtype = str_dup ("octet-stream");
+ att->subtype = m_strdup("octet-stream");
}
}
new = mutt_new_body ();
new->type = TYPEMULTIPART;
- new->subtype = str_dup ("mixed");
+ new->subtype = m_strdup("mixed");
new->encoding = get_toplevel_encoding (b);
mutt_generate_boundary (&new->parameter);
new->use_disp = 0;
adr->next = NULL;
buf[0] = 0;
rfc822_write_address (buf, sizeof (buf), adr, display);
- len = str_len (buf);
+ len = m_strlen(buf);
if (count && linelen + len > 74) {
fputs ("\n\t", fp);
linelen = len + 8; /* tab is usually about 8 spaces... */
i = p - h->data;
++p;
SKIPWS (p);
- tmp = str_dup (p);
+ tmp = m_strdup(p);
if (!tmp)
continue;
rfc2047_encode_string (&tmp);
- p_realloc(&h->data, str_len(h->data) + 2 + str_len(tmp) + 1);
+ p_realloc(&h->data, m_strlen(h->data) + 2 + m_strlen(tmp) + 1);
sprintf (h->data + i, ": %s", NONULL (tmp)); /* __SPRINTF_CHECKED__ */
break;
case 'O':
snprintf (tmp, sizeof (tmp), "%lo", (unsigned long) now);
- str_ncat (buf, len, tmp, str_len (tmp));
+ str_ncat (buf, len, tmp, m_strlen(tmp));
break;
case 'p':
snprintf (tmp, sizeof (tmp), "%u", (unsigned int) getpid ());
- str_ncat (buf, len, tmp, str_len (tmp));
+ str_ncat (buf, len, tmp, m_strlen(tmp));
break;
case 'P':
snprintf (tmp, sizeof (tmp), "%c", MsgIdPfx);
break;
case 'r':
snprintf (tmp, sizeof (tmp), "%u", (unsigned int) rand ());
- str_ncat (buf, len, tmp, str_len (tmp));
+ str_ncat (buf, len, tmp, m_strlen(tmp));
break;
case 'R':
snprintf (tmp, sizeof (tmp), "%x", (unsigned int) rand ());
- str_ncat (buf, len, tmp, str_len (tmp));
+ str_ncat (buf, len, tmp, m_strlen(tmp));
break;
case 's':
snprintf (tmp, sizeof (tmp), "%02d", tm->tm_sec);
break;
case 'T':
snprintf (tmp, sizeof (tmp), "%u", (unsigned int) now);
- str_ncat (buf, len, tmp, str_len (tmp));
+ str_ncat (buf, len, tmp, m_strlen(tmp));
break;
case 'X':
snprintf (tmp, sizeof (tmp), "%x", (unsigned int) now);
- str_ncat (buf, len, tmp, str_len (tmp));
+ str_ncat (buf, len, tmp, m_strlen(tmp));
break;
case 'Y':
snprintf (tmp, sizeof (tmp), "%04d", tm->tm_year + 1900); /* this will break in the year 10000 ;-) */
if (!(fqdn = mutt_fqdn (0)))
fqdn = NONULL (Hostname);
- localpart_length = sizeof (buf) - str_len (fqdn) - 4; /* the 4 characters are '<', '@', '>' and '\0' */
+ localpart_length = sizeof (buf) - m_strlen(fqdn) - 4; /* the 4 characters are '<', '@', '>' and '\0' */
mutt_gen_localpart (localpart, localpart_length, MsgIdFormat);
snprintf (buf, sizeof (buf), "<%s@%s>", localpart, fqdn);
- return (str_dup (buf));
+ return (m_strdup(buf));
}
static RETSIGTYPE alarm_handler (int sig)
char tmp[_POSIX_PATH_MAX];
mutt_mktemp (tmp);
- *tempfile = str_dup (tmp);
+ *tempfile = m_strdup(tmp);
}
if ((pid = fork ()) == 0) {
return i;
}
- s = str_dup (cmd);
+ s = m_strdup(cmd);
}
else
#endif
- s = str_dup (Sendmail);
+ s = m_strdup(Sendmail);
ps = s;
i = 0;
if (i)
args[argslen++] = ps;
else {
- path = str_dup (ps);
+ path = m_strdup(ps);
ps = strrchr (ps, '/');
if (ps)
ps++;
string. */
char *mutt_append_string (char *a, const char *b)
{
- size_t la = str_len (a);
+ size_t la = m_strlen(a);
- p_realloc(&a, la + str_len(b) + 1);
+ p_realloc(&a, la + m_strlen(b) + 1);
strcpy (a + la, b); /* __STRCPY_CHECKED__ */
return (a);
}
char *r, *pr;
size_t rlen;
- rlen = str_len (s) + 3;
+ rlen = m_strlen(s) + 3;
pr = r = p_new(char, rlen);
*pr++ = '"';
while (*s) {
rfc822_cat (buffer, sizeof (buffer), "undisclosed-recipients",
RFC822Specials);
- env->to->mailbox = str_dup (buffer);
+ env->to->mailbox = m_strdup(buffer);
}
mutt_set_followup_to (env);