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
.
master
parent
19c82e6a43
commit
b0c9809a2e
|
@ -2545,7 +2545,9 @@ const char *do_int_speller(const char *tempfile_name)
|
||||||
return _("Could not get size of pipe buffer");
|
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;
|
totalread = 0;
|
||||||
buffersize = blocksize + 1;
|
buffersize = blocksize + 1;
|
||||||
misspellings = charalloc(buffersize);
|
misspellings = charalloc(buffersize);
|
||||||
|
@ -2561,6 +2563,8 @@ const char *do_int_speller(const char *tempfile_name)
|
||||||
*pointer = '\0';
|
*pointer = '\0';
|
||||||
close(uniq_fd[0]);
|
close(uniq_fd[0]);
|
||||||
|
|
||||||
|
block_sigwinch(FALSE);
|
||||||
|
|
||||||
/* Do any replacements case sensitive, forward, and without regexes. */
|
/* Do any replacements case sensitive, forward, and without regexes. */
|
||||||
SET(CASE_SENSITIVE);
|
SET(CASE_SENSITIVE);
|
||||||
UNSET(BACKWARDS_SEARCH);
|
UNSET(BACKWARDS_SEARCH);
|
||||||
|
|
Loading…
Reference in New Issue