]> git.eshelyaron.com Git - emacs.git/commitdiff
Refrain from splicing anonymous faces in text properties
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 29 Apr 2019 21:29:47 +0000 (17:29 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 29 Apr 2019 21:29:47 +0000 (17:29 -0400)
* lisp/font-lock.el (font-lock-prepend-text-property): Distinguish
list of faces from property lists.
(font-lock-ensure-function): Remove redundant code.

lisp/font-lock.el

index 1475911195a16645ee2c6d3a5c15c6c7c2428a7c..d0f7096ab8b1bce407222645880765931478ddb0 100644 (file)
@@ -1096,7 +1096,7 @@ accessible portion of the current buffer."
   (lambda (beg end)
     (unless font-lock-fontified
       (save-excursion
-        (font-lock-fontify-region (or beg (point-min)) (or end (point-max))))))
+        (font-lock-fontify-region beg end))))
   "Function to make sure a region has been fontified.
 Called with two arguments BEG and END.")
 
@@ -1392,7 +1392,12 @@ delimit the region to fontify."
 Arguments PROP and VALUE specify the property and value to prepend to the value
 already in place.  The resulting property values are always lists.
 Optional argument OBJECT is the string or buffer containing the text."
-  (let ((val (if (listp value) value (list value))) next prev)
+  (let ((val (if (and (listp value) (not (keywordp (car value))))
+                 ;; Already a list of faces.
+                 value
+               ;; A single face (e.g. a plist of face properties).
+               (list value)))
+        next prev)
     (while (/= start end)
       (setq next (next-single-property-change start prop object end)
            prev (get-text-property start prop object))