mirror of
git://git.sv.gnu.org/nano.git
synced 2024-11-23 05:11:35 +03:00
formatter: instead of leaving curses, use full_refresh() to wipe messages
This makes invoking the formatter cleaner, by giving feedback and *not*
leaving curses mode. Leaving curses mode had the small advantage that
any messages from the formatter would be on the terminal after closing
nano. But it had the disadvantage that invoking the formatter flashed
the screen.
This basically reverts commit 2b9f0619
from three years ago and then
solves the issue of intruding formatter messages in a different way.
This fulfills https://savannah.gnu.org/bugs/?62789.
Requested-by: Gert Cuykens <gert.cuykens@gmail.com>
This commit is contained in:
parent
05eaa0f0d7
commit
bb18524cce
17
src/text.c
17
src/text.c
@ -2120,8 +2120,11 @@ void treat(char *tempfile_name, char *theprogram, bool spelling)
|
||||
timestamp_nsec = (long)fileinfo.st_mtim.tv_nsec;
|
||||
}
|
||||
|
||||
/* Exit from curses mode to give the program control of the terminal. */
|
||||
endwin();
|
||||
/* The spell checker needs the screen, so exit from curses mode. */
|
||||
if (spelling)
|
||||
endwin();
|
||||
else
|
||||
statusbar(_("Invoking formatter..."));
|
||||
|
||||
construct_argument_list(&arguments, theprogram, tempfile_name);
|
||||
|
||||
@ -2141,9 +2144,13 @@ void treat(char *tempfile_name, char *theprogram, bool spelling)
|
||||
|
||||
errornumber = errno;
|
||||
|
||||
/* Restore the terminal state and reenter curses mode. */
|
||||
terminal_init();
|
||||
doupdate();
|
||||
/* After spell checking, restore terminal state and reenter curses mode;
|
||||
* after formatting, make sure that any formatter output is wiped. */
|
||||
if (spelling) {
|
||||
terminal_init();
|
||||
doupdate();
|
||||
} else
|
||||
full_refresh();
|
||||
|
||||
if (thepid < 0) {
|
||||
statusline(ALERT, _("Could not fork: %s"), strerror(errornumber));
|
||||
|
Loading…
Reference in New Issue
Block a user