From b0c9809a2ebdb4ee7ea1f0ef59a73f49a5346daa Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sat, 30 Mar 2019 19:31:42 +0100 Subject: [PATCH] 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. --- src/text.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/text.c b/src/text.c index 4b67352a..48d74f9b 100644 --- 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);