Mercurial > emacs
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))