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