summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/textmodes/tex-mode.el16
1 files changed, 12 insertions, 4 deletions
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index d410035cf84..6990c80f2d6 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -652,11 +652,17 @@ for the invalidity you want to see."
(save-excursion
(goto-char (point-max))
(while (and (not (input-pending-p)) (not (bobp)))
- (let ((end (point)))
+ (let ((end (point))
+ prev-end)
;; Scan the previous paragraph for invalidities.
- (search-backward "\n\n" nil 'move)
+ (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 (save-excursion (forward-line 1) (point)))
+ (let* ((oend end)
+ (end (save-excursion (forward-line 1) (point)))
start tem)
(beginning-of-line)
(setq start (point))
@@ -679,7 +685,8 @@ for the invalidity you want to see."
(setq occur-pos-list (cons tem occur-pos-list))
(insert-buffer-substring buffer start end)
(forward-char (- start end))
- (insert (format "%3d: " linenum))))))))
+ (insert (format "%3d: " linenum)))))
+ (goto-char prev-end))))
(save-excursion
(set-buffer standard-output)
(if (null occur-pos-list)
@@ -701,6 +708,7 @@ area if a mismatch is found."
(while (< 0 (setq max-possible-sexps (1- max-possible-sexps)))
(forward-sexp 1)))
(error
+ (skip-syntax-forward " .>")
(setq failure-point (point)))))
(if failure-point
(progn