p++;
if (!*p)
return -1;
- len = p + 1 - line;
- if (len > sizeof (group))
- len = sizeof (group);
+ len = MIN(p + 1 - line, ssizeof(group));
m_strcpy(group, len, line);
if ((data = (NNTP_DATA *) hash_find (news->newsgroups, group)) == NULL) {
data = xmalloc(sizeof(NNTP_DATA) + m_strlen(group) + 1);
FILE *ifp;
FILE *ofp;
char buf[HUGE_STRING];
- char tmpfile[_POSIX_PATH_MAX], link[_POSIX_PATH_MAX];
+ char tmpf[_POSIX_PATH_MAX], lnk[_POSIX_PATH_MAX];
char *c;
int ext = 0, done = 0, r = 0, l = 0;
mutt_error (_("Unable to lock %s"), filename);
return -1;
}
- /* use mutt_adv_mktemp() to get a tempfile in the same
+
+ /* use m_tempfile() to get a tempfile in the same
* directory as filename is so that we can follow symlinks
* via rename(2); as dirname(2) may modify its argument,
* temporarily use buf as copy of it
*/
m_strcpy(buf, sizeof(buf), filename);
- m_strcpy(tmpfile, sizeof(tmpfile), basename(filename));
- mutt_adv_mktemp ((const char*) dirname (buf), tmpfile, sizeof (tmpfile));
- if (!(ofp = fopen (tmpfile, "w"))) {
+ ofp = m_tempfile(tmpf, sizeof(tmpf), dirname(buf), filename);
+ if (!ofp) {
m_fclose(&ifp);
- mutt_error (_("Unable to open %s for writing"), tmpfile);
+ mutt_error (_("Unable to open %s for writing"), tmpf);
return -1;
}
m_fclose(&ofp);
m_fclose(&ifp);
if (r == EOF) {
- unlink (tmpfile);
- mutt_error (_("Can't write %s"), tmpfile);
+ unlink (tmpf);
+ mutt_error (_("Can't write %s"), tmpf);
return -1;
}
- link[0] = '\0';
- if ((l = readlink (filename, link, sizeof (link)-1)) > 0)
- link[l] = '\0';
- if (rename (tmpfile, l > 0 ? link : filename) < 0) {
- unlink (tmpfile);
- mutt_error (_("Can't rename %s to %s"), tmpfile, l > 0 ? link : filename);
+ lnk[0] = '\0';
+ if ((l = readlink (filename, lnk, sizeof(lnk)-1)) > 0)
+ lnk[l] = '\0';
+ if (rename (tmpf, l > 0 ? lnk : filename) < 0) {
+ unlink (tmpf);
+ mutt_error (_("Can't rename %s to %s"), tmpf, l > 0 ? lnk : filename);
return -1;
}
return 0;
parameter_delval(&b->parameter, "x-mutt-noconv");
}
- mutt_adv_mktemp (NULL, file, sizeof (file));
- if ((s.fpout = safe_fopen (file, "w")) == NULL)
+ s.fpout = m_tempfile(file, sizeof(file), NONULL(Tempdir), file);
+ if (!s.fpout)
goto bail;
-
if (mutt_is_application_pgp (b) & (ENCRYPT | SIGN)) {
mutt_body_handler (b, &s);