]> granicus.if.org Git - mutt/commitdiff
fix a problem that appears with signatures without newline.
authorTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Mon, 3 Oct 2005 07:52:00 +0000 (07:52 +0000)
committerTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Mon, 3 Oct 2005 07:52:00 +0000 (07:52 +0000)
curs_lib.c
send.c

index 6939e0f904175cd35a2ddcd873c6029831557095..0622dba947543ec564f2000c20c6ddaf697f5696 100644 (file)
@@ -156,19 +156,6 @@ void mutt_clear_error (void)
     CLEARLINE (LINES-1);
 }
 
-static void fix_end_of_file (const char *data)
-{
-  FILE *fp;
-  int c;
-  
-  if ((fp = safe_fopen (data, "a+")) == NULL)
-    return;
-  fseek (fp,-1,SEEK_END);
-  if ((c = fgetc(fp)) != '\n')
-    fputc ('\n', fp);
-  safe_fclose (&fp);
-}
-
 void mutt_edit_file (const char *editor, const char *data)
 {
   char cmd[LONG_STRING];
@@ -177,7 +164,6 @@ void mutt_edit_file (const char *editor, const char *data)
   mutt_expand_file_fmt (cmd, sizeof (cmd), editor, data);
   if (mutt_system (cmd) == -1)
     mutt_error (_("Error running \"%s\"!"), cmd);
-  fix_end_of_file (data);
   keypad (stdscr, TRUE);
   clearok (stdscr, TRUE);
 }
diff --git a/send.c b/send.c
index 84e395e814ac745bc4409dbb027ba7905c339253..c74dc7608614be27bd811df39a56cf9e1910c346 100644 (file)
--- a/send.c
+++ b/send.c
@@ -1033,6 +1033,19 @@ static void decode_descriptions (BODY *b)
   }
 }
 
+static void fix_end_of_file (const char *data)
+{
+  FILE *fp;
+  int c;
+  
+  if ((fp = safe_fopen (data, "a+")) == NULL)
+    return;
+  fseek (fp,-1,SEEK_END);
+  if ((c = fgetc(fp)) != '\n')
+    fputc ('\n', fp);
+  safe_fclose (&fp);
+}
+
 int mutt_resend_message (FILE *fp, CONTEXT *ctx, HEADER *cur)
 {
   HEADER *msg = mutt_new_header ();
@@ -1393,7 +1406,16 @@ ci_send_message (int flags,              /* send mode */
        mutt_env_to_idna (msg->env, NULL, NULL);
       }
       else
+      {
        mutt_edit_file (Editor, msg->content->filename);
+       if (stat (msg->content->filename, &st) == 0)
+       {
+         if (mtime != st.st_mtime)
+           fix_end_of_file (msg->content->filename);
+       }
+       else
+         mutt_perror (msg->content->filename);
+      }
       
       mutt_message_hook (NULL, msg, M_SEND2HOOK);
     }