X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-mx%2Fmbox.c;h=8e75038fb6af950872341f320e684b53fc46df27;hb=a3570e5059a0cbb884fce42a12be470addb770fa;hp=03c8d27e23a36f93f3045cc22c12224e378971a5;hpb=fcaada9d60ee8f52bbc8503c06fe061ca9e2fa68;p=apps%2Fmadmutt.git diff --git a/lib-mx/mbox.c b/lib-mx/mbox.c index 03c8d27..8e75038 100644 --- a/lib-mx/mbox.c +++ b/lib-mx/mbox.c @@ -546,15 +546,9 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused)) return (-1); /* Create a temporary file to write the new version of the mailbox in. */ - mutt_mktemp (tempfile); - if ((i = open (tempfile, O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 || - (fp = fdopen (i, "w")) == NULL) { - if (-1 != i) { - close (i); - unlink (tempfile); - } + fp = m_tempfile(tempfile, _POSIX_PATH_MAX, NONULL(Tempdir), NULL); + if (fp == NULL) { mutt_error _("Could not create temporary file!"); - mutt_sleep (5); goto bail; } @@ -616,7 +610,6 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused)) unlink (tempfile); goto bail; } - } /* save the new offset for this message. we add `offset' because the @@ -664,14 +657,12 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused)) } } - if (fclose (fp) != 0) { - fp = NULL; + if (m_fclose(&fp) != 0) { unlink (tempfile); mutt_perror (tempfile); mutt_sleep (5); goto bail; } - fp = NULL; /* Save the state of this folder. */ if (stat (ctx->path, &statbuf) == -1) { @@ -716,11 +707,10 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused)) } } - fclose (fp); - fp = NULL; + m_fclose(&fp); mbox_unlock_mailbox (ctx); - if (fclose (ctx->fp) != 0 || i == -1) { + if (m_fclose(&ctx->fp) != 0 || i == -1) { /* error occured while writing the mailbox back, so keep the temp copy * around */ @@ -770,7 +760,7 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused)) bail: /* Come here in case of disaster */ - safe_fclose (&fp); + m_fclose(&fp); /* restore offsets, as far as they are valid */ if (first >= 0 && oldOffset) { @@ -1016,7 +1006,7 @@ int mbox_is_magic (const char* path, struct stat* st) { magic = M_MBOX; else if (m_strcmp(MMDF_SEP, tmp) == 0) magic = M_MMDF; - safe_fclose (&f); + m_fclose(&f); /* need to restore the times here, the file was not really accessed, * only the type was accessed. This is important, because detection