what the internal spell checker returns under the same
circumstances. (DLR)
- Block any pending SIGWINCHes while the alternate spell checker
- is running, so that it can handle them. (DLR)
+ is running, so that it can handle them, and unblock them once
+ it's finished and we've loaded the spell-checked file back in.
+ (DLR)
do_spell()
- When displaying an error message from do_(int|alt)_speller(),
don't display the error message corresponding to errno if
#ifndef NANO_SMALL
/* Don't handle a pending SIGWINCH until the alternate spell checker
- * is finished. */
+ * is finished and we've loaded the spell-checked file back in. */
allow_pending_sigwinch(FALSE);
#endif
/* Wait for the alternate spell checker to finish. */
wait(&alt_spell_status);
-#ifndef NANO_SMALL
- /* Handle a pending SIGWINCH again. */
- allow_pending_sigwinch(TRUE);
-#endif
-
refresh();
/* Restore the terminal to its previous state. */
/* Turn the cursor back on for sure. */
curs_set(1);
+ /* The screen might have been resized. If it has, reinitialize all
+ * the windows based on the new screen dimensions. */
+ window_init();
+
if (!WIFEXITED(alt_spell_status) ||
WEXITSTATUS(alt_spell_status) != 0) {
char *altspell_error;
do_gotopos(lineno_save, current_x_save, current_y_save, pww_save);
set_modified();
+#ifndef NANO_SMALL
+ /* Handle a pending SIGWINCH again. */
+ allow_pending_sigwinch(TRUE);
+#endif
+
return NULL;
}