X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=editmsg.c;h=6d848e321f7c71e49eab4b459e8231df38c1700e;hp=b4e28a3d9a36725ae0d5f6e3c32d0ad83f95a86a;hb=0a19973a356fb85d0b1e2a2f02820a3e5071f402;hpb=c3e57678c8be193fc137854020f3a90887be97c9 diff --git a/editmsg.c b/editmsg.c index b4e28a3..6d848e3 100644 --- a/editmsg.c +++ b/editmsg.c @@ -9,19 +9,12 @@ /* simple, editor-based message editing */ -#if HAVE_CONFIG_H -# include "config.h" -#endif +#include +#include +#include #include "mutt.h" #include "copy.h" -#include "mailbox.h" -#include "mx.h" - -#include -#include - -#include /* * return value: @@ -51,6 +44,7 @@ static int edit_one_message (CONTEXT * ctx, HEADER * cur) struct stat sb; time_t mtime = 0; + ssize_t size = 0; mutt_mktemp (tmp); @@ -79,8 +73,10 @@ static int edit_one_message (CONTEXT * ctx, HEADER * cur) goto bail; } - if (stat (tmp, &sb) == 0) + if (stat (tmp, &sb) == 0) { mtime = sb.st_mtime; + size = sb.st_size; + } /* * 2002-09-05 me@sigpipe.org @@ -90,7 +86,7 @@ static int edit_one_message (CONTEXT * ctx, HEADER * cur) * remove it, the message will grow by one line each time the user edits * the message. */ - if (sb.st_size != 0 && truncate (tmp, sb.st_size - 1) == -1) { + if (size != 0 && truncate (tmp, --size) == -1) { mutt_error (_("could not truncate temporary mail folder: %s"), strerror (errno)); goto bail; @@ -109,7 +105,7 @@ static int edit_one_message (CONTEXT * ctx, HEADER * cur) goto bail; } - if (sb.st_mtime == mtime) { + if (sb.st_mtime == mtime && sb.st_size == size) { mutt_message (_("Message not modified!")); rc = 1; goto bail; @@ -169,8 +165,7 @@ static int edit_one_message (CONTEXT * ctx, HEADER * cur) mx_close_mailbox (&tmpctx, NULL); bail: - if (fp) - fclose (fp); + m_fclose(&fp); if (rc >= 0) unlink (tmp);