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-d3aeb78583b8master
parent
3f12ada4ef
commit
4401862e12
|
@ -173,6 +173,10 @@ CVS code -
|
||||||
no longer needed, and make the error message more similar to
|
no longer needed, and make the error message more similar to
|
||||||
what the internal spell checker returns under the same
|
what the internal spell checker returns under the same
|
||||||
circumstances. (DLR)
|
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()
|
do_spell()
|
||||||
- When displaying an error message from do_(int|alt)_speller(),
|
- When displaying an error message from do_(int|alt)_speller(),
|
||||||
don't display the error message corresponding to errno if
|
don't display the error message corresponding to errno if
|
||||||
|
|
12
src/text.c
12
src/text.c
|
@ -1846,6 +1846,8 @@ const char *do_alt_speller(char *tempfile_name)
|
||||||
size_t totsize_save = openfile->totsize;
|
size_t totsize_save = openfile->totsize;
|
||||||
/* Our saved value of totsize, used when we spell-check a marked
|
/* Our saved value of totsize, used when we spell-check a marked
|
||||||
* selection. */
|
* selection. */
|
||||||
|
struct sigaction newaction, oldaction;
|
||||||
|
/* Original and temporary handlers for SIGWINCH. */
|
||||||
|
|
||||||
if (old_mark_set) {
|
if (old_mark_set) {
|
||||||
/* If the mark is on, save the number of the line it starts on,
|
/* 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;
|
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. */
|
/* Start a new process for the alternate speller. */
|
||||||
if ((pid_spell = fork()) == 0) {
|
if ((pid_spell = fork()) == 0) {
|
||||||
/* Start alternate spell program; we are using PATH. */
|
/* 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 for alternate speller to complete. */
|
||||||
wait(&alt_spell_status);
|
wait(&alt_spell_status);
|
||||||
|
|
||||||
|
/* Set the SIGWINCH handler back to the original. */
|
||||||
|
sigaction(SIGWINCH, &oldaction, NULL);
|
||||||
|
|
||||||
refresh();
|
refresh();
|
||||||
|
|
||||||
/* Restore the terminal to its previous state. */
|
/* Restore the terminal to its previous state. */
|
||||||
|
|
Loading…
Reference in New Issue