is_pgp = (key->protocol == GPGME_PROTOCOL_OpenPGP);
bufsize = m_strlen(prefix) + m_strlen(s) * 4 + 2;
- buf = xmalloc(bufsize);
+ buf = p_new(char, bufsize);
m_strcpy(buf, bufsize, prefix);
p = buf + m_strlen(buf);
if (is_pgp && m_strlen(s) == 40) { /* PGP v4 style formatted. */
char tempfile[_POSIX_PATH_MAX];
char buf[HUGE_STRING];
FILE *tfp;
+ int tempfd;
short sgn = 0;
short enc = 0;
if (tagged_only && !b->tagged)
return 0;
- mutt_mktemp (tempfile);
- if (mutt_decode_save_attachment (fp, b, tempfile, 0, 0) != 0) {
+ tempfd = m_tempfd(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+ if (mutt_decode_save_attachment (fp, b, tempfd, 0) != 0) {
unlink (tempfile);
return 0;
}
- if ((tfp = fopen (tempfile, "r")) == NULL) {
+ if ((tfp = fopen(tempfile, "r")) == NULL) {
unlink (tempfile);
return 0;
}
*dest = '\0';
}
- if (optional)
- m_strformat (dest, destlen, ifstr, mutt_attach_fmt, data, 0);
- else if (flags & M_FORMAT_OPTIONAL)
- m_strformat (dest, destlen, elstr, mutt_attach_fmt, data, 0);
- return (src);
+ if (flags & M_FORMAT_OPTIONAL)
+ m_strformat(dest, destlen, 0, optional ? ifstr: elstr,
+ mutt_attach_fmt, data, 0);
+ return src;
}
/* Used by the display fucntion to format a line. */
entry.key = key_table[num];
entry.num = num + 1;
- m_strformat(s, l, NONULL (PgpEntryFormat), crypt_entry_fmt,
- (void*)&entry,
+ m_strformat(s, l, COLS - SW, PgpEntryFormat, crypt_entry_fmt, &entry,
option(OPTARROWCURSOR) ? M_FORMAT_ARROWCURSOR : 0);
}
if (!n || (n & 1))
return NULL; /* empty or odd number of digits */
n /= 2;
- p = xmalloc(n + 1);
+ p = p_new(unsigned char, n + 1);
array->value = (char *) p;
for (s1 = string; n; s1 += 2, n--)
*p++ = xtoi_2 (s1);
n++;
}
- p = xmalloc(n + 1);
+ p = p_new(unsigned char, n + 1);
array->value = (char *) p;
for (s = string; n; s++, n--) {
if (*s == '\\') {