From: Stefan Monnier Date: Tue, 18 Jan 2011 04:07:36 +0000 (-0500) Subject: * lisp/textmodes/tex-mode.el (tex-font-lock-verb): Make sure \verb X-Git-Tag: emacs-pretest-24.0.90~104^2~618^2~1322^2~217 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9cc3a0c79c5a6af2691b2b566f8e3eb3654b806f;p=emacs.git * lisp/textmodes/tex-mode.el (tex-font-lock-verb): Make sure \verb highlighting doesn't spill over subsequent lines. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2d381534228..e83a2cf61a4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,10 +1,11 @@ 2011-01-18 Stefan Monnier + * textmodes/tex-mode.el (tex-font-lock-verb): Make sure \verb + highlighting doesn't spill over subsequent lines. + * emacs-lisp/easy-mmode.el (define-minor-mode): Don't re-evaluate the keymap expression. Improve docstring. -2011-01-18 Stefan Monnier - * electric.el (electric-indent-post-self-insert-function): Don't auto-indent for indent-to-left-margin, it's too often counter-productive. diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 77a4309ca0f..d2737d384d8 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -791,20 +791,23 @@ Not smaller than the value set by `tex-suscript-height-minimum'." (defun tex-font-lock-verb (start delim) "Place syntax table properties on the \verb construct. START is the position of the \\ and DELIM is the delimiter char." - ;; Do nothing if the \verb construct is itself inside a comment or - ;; verbatim env. + ;; Do nothing if the \verb construct is itself inside a comment or + ;; verbatim env. (unless (nth 8 (save-excursion (syntax-ppss start))) - ;; Let's find the end and mark it. - ;; This may span more than a single line, but we don't bother - ;; placing a syntax-multiline property since such multiline verbs aren't - ;; valid anyway. - (skip-chars-forward (string ?^ delim)) - (unless (eobp) - (when (eq (char-syntax (preceding-char)) ?/) - (put-text-property (1- (point)) (point) - 'syntax-table (string-to-syntax "."))) - (put-text-property (point) (1+ (point)) - 'syntax-table (string-to-syntax "\""))))) + ;; Let's find the end and mark it. + (let ((afterdelim (point))) + (skip-chars-forward (string ?^ delim) (line-end-position)) + (if (eolp) + ;; "LaTeX Error: \verb ended by end of line." + ;; Remove the syntax-table property we've just put on the + ;; start-delimiter, so it doesn't spill over subsequent lines. + (put-text-property (1- afterdelim) afterdelim + 'syntax-table nil) + (when (eq (char-syntax (preceding-char)) ?/) + (put-text-property (1- (point)) (point) + 'syntax-table (string-to-syntax "."))) + (put-text-property (point) (1+ (point)) + 'syntax-table (string-to-syntax "\"")))))) ;; Use string syntax but math face for $...$. (defun tex-font-lock-syntactic-face-function (state)