]> code.delx.au - gnu-emacs/commitdiff
(flyspell-large-region): Pass -t if Tex file.
authorRichard M. Stallman <rms@gnu.org>
Fri, 28 Oct 2005 04:22:19 +0000 (04:22 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 28 Oct 2005 04:22:19 +0000 (04:22 +0000)
(flyspell-external-point-words): Error if misspelled word is not found.
Set flyspell-large-region-beg at end of word.

lisp/textmodes/flyspell.el

index a876593e73831d410133e3194cd7e8618760584b..ee94ff01d64df9acdf3758cf39040e0dcb4c5226 100644 (file)
@@ -1333,7 +1333,7 @@ The buffer to mark them in is `flyspell-large-region-buffer'."
     ;; Loop over incorrect words.
     (while (re-search-forward "\\([^\n]+\\)\n" (point-max) t)
       ;; Bind WORD to the next one.
-      (let ((word (match-string 1)))
+      (let ((word (match-string 1)) (wordpos (point)))
        ;; Here there used to be code to see if WORD is the same
        ;; as the previous iteration, and count the number of consecutive
        ;; identical words, and the loop below would search for that many.
@@ -1350,11 +1350,15 @@ The buffer to mark them in is `flyspell-large-region-buffer'."
        (with-current-buffer flyspell-large-region-buffer
          (goto-char flyspell-large-region-beg)
          (let ((keep t))
-           (while (and keep
-                       (search-forward word flyspell-large-region-end t))
-             (goto-char (- (point) 1))
-             (setq keep (flyspell-word)))
-           (setq flyspell-large-region-beg (point))))))
+           (while keep
+             (if (search-forward word
+                                    flyspell-large-region-end t)
+                 (progn
+                   (setq flyspell-large-region-beg (point))
+                   (goto-char (- (point) 1))
+                   (setq keep (flyspell-word)))
+               (error "Bug: misspelled word `%s' (output pos %d) not found in buffer"
+                      word wordpos)))))))
     ;; we are done
     (if flyspell-issue-message-flag (message "Spell Checking completed.")))
   ;; Kill and forget the buffer with the list of incorrect words.
@@ -1389,6 +1393,8 @@ The buffer to mark them in is `flyspell-large-region-buffer'."
                      (if ispell-local-dictionary
                          (setq ispell-dictionary ispell-local-dictionary))
                      (setq args (ispell-get-ispell-args))
+                     (if (eq ispell-parser 'tex)
+                         (setq args (cons "-t" args)))
                      (if ispell-dictionary ; use specified dictionary
                          (setq args
                                (append (list "-d" ispell-dictionary) args)))