]> git.wh0rd.org Git - nano.git/commitdiff
and don't let a SIGWINCH throw out the changes made by the alternate
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Tue, 26 Jul 2005 01:17:16 +0000 (01:17 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Tue, 26 Jul 2005 01:17:16 +0000 (01:17 +0000)
spell checker, either

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2938 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/text.c

index e239c0e8de6225eb7c4a6ecfa051959b0201a7f4..3134d69b1575972ef44016836ae9037b8730ac44 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -174,7 +174,9 @@ CVS code -
          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
index c74de28b62ae65ac90ab33c0ad1b4d5ffccdf6c4..603a1404d01fa7fa3446fd2bdf660189c50ace5c 100644 (file)
@@ -1887,18 +1887,13 @@ const char *do_alt_speller(char *tempfile_name)
 
 #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. */
@@ -1907,6 +1902,10 @@ const char *do_alt_speller(char *tempfile_name)
     /* 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;
@@ -2005,6 +2004,11 @@ const char *do_alt_speller(char *tempfile_name)
     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;
 }