]> git.lyx.org Git - features.git/commitdiff
Dekel patch to speed up spellchecker
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 26 Apr 2000 10:52:40 +0000 (10:52 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 26 Apr 2000 10:52:40 +0000 (10:52 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@693 a592a061-630c-0410-9148-cb99ea01b6c8

ChangeLog
src/spellchecker.C

index 7be58c8829ad58abbdfb30d57432e25c1662ec43..ace84969138b89d9a2e2733faf350d84afc253db 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-04-25  Dekel Tsur  <dekel@math.tau.ac.il>
+
+       * src/spellchecker.C (RunSpellChecker): Speedup spellchecking by
+       a factor of 50!
+
 2000-04-26  Juergen Vigna  <jug@sad.it>
 
        * src/insets/figinset.C: fixes to Lars sstream changes!
index aa75ae403f610853fff29541efa81f4eef6679ad..514c014242ef277ae02339e6ae4f177c2692abf1 100644 (file)
@@ -676,28 +676,29 @@ bool RunSpellChecker(BufferView * bv)
                if(newvalue!= oldval) {
                        oldval = newvalue;
                        fl_set_slider_value(fd_form_spell_check->slider, oldval);
+               }
+
+               if (word_count%1000 == 0) {
+                       obj =  fl_check_forms();
+                       if (obj == fd_form_spell_check->stop) {
+                               delete[] word;
+                               ispell_terminate();
+                               return true;
+                       }
+                       if (obj == fd_form_spell_check->done) {
+                               delete[] word;
+                               ispell_terminate(); 
+                               return false;
+                       }
                }
 
                result = ispell_check_word(word);
                if (isp_pid == -1) {
+                       delete result;
                        delete[] word;
                        break;
                }
 
-               obj =  fl_check_forms();
-               if (obj == fd_form_spell_check->stop) {
-                       delete result;
-                       delete[] word;
-                       ispell_terminate();
-                       return true;
-               }
-               if (obj == fd_form_spell_check->done) {
-                       delete result;
-                       delete[] word;
-                       ispell_terminate(); 
-                       return false;
-               }
-    
                switch (result->flag) {
                case ISP_UNKNOWN:
                case ISP_MISSED: