changeset 84672:00edb5227c5d

Revert previous change.
author Glenn Morris <rgm@gnu.org>
date Thu, 20 Sep 2007 02:57:57 +0000
parents f061115a812f
children e80aacbe126e
files lisp/textmodes/tex-mode.el
diffstat 1 files changed, 21 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/tex-mode.el	Thu Sep 20 02:53:58 2007 +0000
+++ b/lisp/textmodes/tex-mode.el	Thu Sep 20 02:57:57 2007 +0000
@@ -1184,25 +1184,27 @@
 	(setq occur-revert-arguments (list nil 0 (list buffer))))
       (save-excursion
 	(goto-char (point-max))
-	(while (and (not (bobp)))
-	  (let ((end (point))
-		prev-end)
+	;; Do a little shimmy to place point at the end of the last
+	;; "real" paragraph. Need to avoid validating across an \end,
+	;; because that blows up latex-forward-sexp.
+	(backward-paragraph)
+	(forward-paragraph)
+	(while (not (bobp))
 	    ;; Scan the previous paragraph for invalidities.
-	    ;; FIXME this should be using something like backward-paragraph.
-	    (if (search-backward "\n\n" nil t)
-		(progn
-		  (setq prev-end (point))
-		  (forward-char 2))
-	      (goto-char (setq prev-end (point-min))))
-	    (or (tex-validate-region (point) end)
-		(let* ((end (line-beginning-position 2))
+	  (backward-paragraph)
+	  (save-excursion
+	    (or (tex-validate-region (point) (save-excursion
+					       (forward-paragraph)
+					       (point)))
+		(let ((end (line-beginning-position 2))
 		       start tem)
 		  (beginning-of-line)
 		  (setq start (point))
 		  ;; Keep track of line number as we scan,
 		  ;; in a cumulative fashion.
 		  (if linenum
-		      (setq linenum (- linenum (count-lines prevpos (point))))
+		      (setq linenum (- linenum
+				       (count-lines prevpos (point))))
 		    (setq linenum (1+ (count-lines 1 start))))
 		  (setq prevpos (point))
 		  ;; Mention this mismatch in *Occur*.
@@ -1223,10 +1225,10 @@
 		      (add-text-properties
 		       text-beg (- text-end 1)
 		       '(mouse-face highlight
-			 help-echo "mouse-2: go to this invalidity"))
+				    help-echo
+				    "mouse-2: go to this invalidity"))
 		      (put-text-property text-beg (- text-end 1)
-					 'occur-target tem)))))
-	    (goto-char prev-end))))
+					 'occur-target tem))))))))
       (with-current-buffer standard-output
 	(let ((no-matches (zerop num-matches)))
 	  (if no-matches
@@ -1249,7 +1251,9 @@
 	    (narrow-to-region start end)
 	    ;; First check that the open and close parens balance in numbers.
 	    (goto-char start)
-	    (while (<= 0 (setq max-possible-sexps (1- max-possible-sexps)))
+	    (while (and (not (eobp))
+			(<= 0 (setq max-possible-sexps
+				    (1- max-possible-sexps))))
 	      (forward-sexp 1))
 	    ;; Now check that like matches like.
 	    (goto-char start)
@@ -1388,7 +1392,7 @@
     (search-failed (error "Couldn't find unended \\begin"))))
 
 (defun tex-next-unmatched-end ()
-  "Leave point at the end of the next `\\end' that is unended."
+  "Leave point at the end of the next `\\end' that is unmatched."
   (while (and (tex-search-noncomment
 	       (re-search-forward "\\\\\\(begin\\|end\\)\\s *{[^}]+}"))
 	      (save-excursion (goto-char (match-beginning 0))