]> granicus.if.org Git - neomutt/commitdiff
Add terminal newline when it lacks after editing a message.
authorTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Thu, 27 Jan 2005 19:00:59 +0000 (19:00 +0000)
committerTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Thu, 27 Jan 2005 19:00:59 +0000 (19:00 +0000)
Originally from TAKIZAWA Takashi.

curs_lib.c

index d546182ecd9e2796de25bc6075f2fb04b3a91a7c..15e4543fd2bc2356a187b218a005bbfb9495ef16 100644 (file)
@@ -154,6 +154,19 @@ 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];
@@ -162,6 +175,7 @@ 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);
 }