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);