commit e39938c1fa378405b95efd49b1e53efde0b6f335
parent d4118efea505b0852d267d6d98ac22a641d5aaf0
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Thu, 11 Feb 2016 16:57:52 +0000
Not leaving curses mode in the formatter, as that would hide
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
Diffstat:
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git 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
diff --git a/src/text.c b/src/text.c
@@ -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 */