nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit b0c9809a2ebdb4ee7ea1f0ef59a73f49a5346daa
parent 19c82e6a431bb508d0c16ea7edf237d04af64972
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Sat, 30 Mar 2019 19:31:42 +0100

speller: block the resizing signal also during an integrated spell check

Because somehow something goes wrong when SIGWINCHes are handled while
reading from a pipe.

This fixes https://savannah.gnu.org/bugs/?56011.

Bug existed since version 2.4.2, commit 75d64e67.

Diffstat:
Msrc/text.c | 6+++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/text.c b/src/text.c @@ -2545,7 +2545,9 @@ const char *do_int_speller(const char *tempfile_name) return _("Could not get size of pipe buffer"); } - /* Read in the returned spelling errors. */ + /* Block SIGWINCHes while reading misspelled words from the pipe. */ + block_sigwinch(TRUE); + totalread = 0; buffersize = blocksize + 1; misspellings = charalloc(buffersize); @@ -2561,6 +2563,8 @@ const char *do_int_speller(const char *tempfile_name) *pointer = '\0'; close(uniq_fd[0]); + block_sigwinch(FALSE); + /* Do any replacements case sensitive, forward, and without regexes. */ SET(CASE_SENSITIVE); UNSET(BACKWARDS_SEARCH);