# HG changeset patch # User Richard M. Stallman # Date 1130473339 0 # Node ID 340b9157f2835f2d0560e20cc8e8da6dd915eaf6 # Parent 2c079383436e18fddc1834e21a7d8352cf8d4a93 (flyspell-large-region): Pass -t if Tex file. (flyspell-external-point-words): Error if misspelled word is not found. Set flyspell-large-region-beg at end of word. diff -r 2c079383436e -r 340b9157f283 lisp/textmodes/flyspell.el --- a/lisp/textmodes/flyspell.el Fri Oct 28 03:52:38 2005 +0000 +++ b/lisp/textmodes/flyspell.el Fri Oct 28 04:22:19 2005 +0000 @@ -1333,7 +1333,7 @@ ;; 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 @@ (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 @@ (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)))