# HG changeset patch # User Stefan Monnier <monnier@iro.umontreal.ca> # Date 1295323656 18000 # Node ID d89c2a0d1b1256e6aea977fc24e14dded2b63962 # Parent e4640e51ea08b811ff94acde89d90a14155a4cb8 * lisp/textmodes/tex-mode.el (tex-font-lock-verb): Make sure \verb highlighting doesn't spill over subsequent lines. diff -r e4640e51ea08 -r d89c2a0d1b12 lisp/ChangeLog --- a/lisp/ChangeLog Mon Jan 17 18:57:04 2011 -0800 +++ b/lisp/ChangeLog Mon Jan 17 23:07:36 2011 -0500 @@ -1,10 +1,11 @@ 2011-01-18 Stefan Monnier <monnier@iro.umontreal.ca> + * 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 <monnier@iro.umontreal.ca> - * electric.el (electric-indent-post-self-insert-function): Don't auto-indent for indent-to-left-margin, it's too often counter-productive. diff -r e4640e51ea08 -r d89c2a0d1b12 lisp/textmodes/tex-mode.el --- a/lisp/textmodes/tex-mode.el Mon Jan 17 18:57:04 2011 -0800 +++ b/lisp/textmodes/tex-mode.el Mon Jan 17 23:07:36 2011 -0500 @@ -791,20 +791,23 @@ (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)