Commit 4401862e authored by David Lawrence Ramsey's avatar David Lawrence Ramsey
Browse files

fix resizing while the alternate spell checker is running

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2935 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 16 additions and 0 deletions
+16 -0
......@@ -173,6 +173,10 @@ CVS code -
no longer needed, and make the error message more similar to
what the internal spell checker returns under the same
circumstances. (DLR)
- Set the SIGWINCH handler back to the default just before
running the alternate spell checker, so that the alternate
spell checker can handle them, and set it back afterwards.
(DLR)
do_spell()
- When displaying an error message from do_(int|alt)_speller(),
don't display the error message corresponding to errno if
......
......@@ -1846,6 +1846,8 @@ const char *do_alt_speller(char *tempfile_name)
size_t totsize_save = openfile->totsize;
/* Our saved value of totsize, used when we spell-check a marked
* selection. */
struct sigaction newaction, oldaction;
/* Original and temporary handlers for SIGWINCH. */
if (old_mark_set) {
/* If the mark is on, save the number of the line it starts on,
......@@ -1872,6 +1874,13 @@ const char *do_alt_speller(char *tempfile_name)
}
spellargs[arglen - 2] = tempfile_name;
/* Save the original SIGWINCH handler, and set the SIGWINCH handler
* back to the default, so that the alternate spell checker can
* handle a SIGWINCH its own way. */
sigaction(SIGWINCH, NULL, &newaction);
newaction.sa_handler = SIG_DFL;
sigaction(SIGWINCH, &newaction, &oldaction);
/* Start a new process for the alternate speller. */
if ((pid_spell = fork()) == 0) {
/* Start alternate spell program; we are using PATH. */
......@@ -1888,6 +1897,9 @@ const char *do_alt_speller(char *tempfile_name)
/* Wait for alternate speller to complete. */
wait(&alt_spell_status);
/* Set the SIGWINCH handler back to the original. */
sigaction(SIGWINCH, &oldaction, NULL);
refresh();
/* Restore the terminal to its previous state. */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment