]> code.delx.au - gnu-emacs/commitdiff
Fix false negatives in tex--prettify-symbols-compose-p.
authorTassilo Horn <tsdh@gnu.org>
Fri, 25 Sep 2015 21:02:28 +0000 (23:02 +0200)
committerTassilo Horn <tsdh@gnu.org>
Fri, 25 Sep 2015 21:04:39 +0000 (23:04 +0200)
* lisp/textmodes/tex-mode.el (tex--prettify-symbols-compose-p): Fix some
false negatives.

lisp/textmodes/tex-mode.el

index 25ffb5ed5781947d1bbd0e99b83f82cb19553ff8..16162e14ef28e3db25aa5b751613f83df0fa9123 100644 (file)
@@ -3409,16 +3409,20 @@ There might be text before point."
 
 (defun tex--prettify-symbols-compose-p (start end _match)
   (let* ((after-char (char-after end))
-         (after-syntax  (char-syntax after-char)))
+         (after-syntax (char-syntax after-char)))
     (not (or
           ;; Don't compose \alpha@foo.
-          (eq after-syntax ?_)
-          ;; Don't compose inside verbatim blocks!
-          (nth 8 (syntax-ppss))
-          ;; The \alpha in \alpha2 may be composed but of course \alphax may not.
+          (eq after-char ?@)
+          ;; The \alpha in \alpha2 or \alpha-\beta may be composed but
+          ;; of course \alphax may not.
           (and (eq after-syntax ?w)
-               (or (< after-char ?0)
-                   (> after-char ?9)))))))
+               (not (memq after-char
+                          '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?+ ?- ?' ?\"))))
+          ;; Don't compose inside verbatim blocks.
+          (let* ((face (get-text-property end 'face))
+                 (faces (if (consp face) face (list face))))
+            (or (memq 'tex-verbatim faces)
+                (memq 'font-latex-verbatim-face faces)))))))
 
 (run-hooks 'tex-mode-load-hook)