X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mx%2Fmbox.c;h=d1b2746265250ec8ad2e27f9b26cd9c975c950f0;hp=79658fa16dc1c9c5c23e3cb9a0674c09bb8278d9;hb=3766db5f849cea008b1cd3d532c712aeb17aa062;hpb=8476307969a605bea67f6b702b0c1e7a52038bed diff --git a/lib-mx/mbox.c b/lib-mx/mbox.c index 79658fa..d1b2746 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 @@ -727,9 +720,8 @@ static int mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused)) char savefile[_POSIX_PATH_MAX]; - snprintf (savefile, sizeof (savefile), "%s/mutt.%s-%s-%u", - NONULL (Tempdir), NONULL (Username), NONULL (Hostname), - (unsigned int) getpid ()); + snprintf(savefile, sizeof (savefile), "%s/mutt.%s-%u", + NONULL(Tempdir), NONULL(Username), (unsigned int)getpid()); rename (tempfile, savefile); mutt_unblock_signals (); mx_fastclose_mailbox (ctx); @@ -771,7 +763,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) { @@ -1017,7 +1009,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