]> git.wh0rd.org Git - nano.git/commitdiff
Not leaving curses mode in the formatter, as that would hide
authorBenno Schulenberg <bensberg@justemail.net>
Thu, 11 Feb 2016 16:57:52 +0000 (16:57 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Thu, 11 Feb 2016 16:57:52 +0000 (16:57 +0000)
error messages upon reentry.  And, if there are any messages,
allowing the user a little time to read them.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5632 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/text.c

index 7ff6b107998ab39a0e4680a240b405393f36dc06..5b6543ad58e404faae8ac7d1f047e9840a385146 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
 2016-02-11  Benno Schulenberg  <bensberg@justemail.net>
        * src/text.c (do_linter): Go to the next item in the list before
        freeing the current one.  This fixes Savannah bug #46796.
+       * src/text.c (do_formatter): Don't leave curses mode, as that would
+       hide any error messages upon reentry.  And if there are any messages,
+       allow the user a little time to read them.
 
 2016-02-10  Benno Schulenberg  <bensberg@justemail.net>
        * src/text.c (discard_until): Prevent a chain of editing actions from
index 6cec943021062bde26006d55f328fe5e26b32ae1..70c25d72e57a5efd95d3a5a4a9dd069bbaacda24 100644 (file)
@@ -3254,8 +3254,6 @@ void do_formatter(void)
     blank_bottombars();
     statusbar(_("Invoking formatter, please wait"));
 
-    endwin();
-
     /* Set up an argument list to pass to execvp(). */
     if (formatargs == NULL) {
        formatargs = (char **)nmalloc(arglen * sizeof(char *));
@@ -3296,12 +3294,6 @@ void do_formatter(void)
     /* Wait for the formatter to finish. */
     wait(&format_status);
 
-    /* Reenter curses mode. */
-    doupdate();
-
-    /* Restore the terminal to its previous state. */
-    terminal_init();
-
     if (!WIFEXITED(format_status) || WEXITSTATUS(format_status) != 0)
        finalstatus = invocation_error(openfile->syntax->formatter);
     else {
@@ -3327,11 +3319,15 @@ void do_formatter(void)
     allow_sigwinch(TRUE);
 #endif
 
+    statusbar(finalstatus);
+
+    /* If there were error messages, allow the user some time to read them. */
+    if (WIFEXITED(format_status) && WEXITSTATUS(format_status) == 2)
+       sleep(4);
+
     /* If the formatter printed any error messages onscreen, make
      * sure that they're cleared off. */
     total_refresh();
-
-    statusbar(finalstatus);
 }
 #endif /* !DISABLE_SPELLER */
 #endif /* !DISABLE_COLOR */