]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/hi-lock.el: More fixes for revert-buffer (bug#57534)
authorJuri Linkov <juri@linkov.net>
Thu, 27 Jun 2024 18:08:28 +0000 (21:08 +0300)
committerEshel Yaron <me@eshelyaron.com>
Fri, 28 Jun 2024 06:12:36 +0000 (08:12 +0200)
(hi-lock-set-pattern): Put the text property 'regexp' on the lighter string.
(hi-lock-revert-buffer-rehighlight): Get the real regexp from the
text property 'regexp'.  This fixes the case when the original
regexp gets lost after e.g. 'M-s . M-s h r'.

(cherry picked from commit 6d94090cadcff1b251457c2d82b287f4beb5a93d)

lisp/hi-lock.el

index e1fa992cb12d076f6793a911070d5b1366e7c7b0..c1b96431c16e15d93ccda0bb3c1a3ac0b4b84333 100644 (file)
@@ -780,7 +780,10 @@ SPACES-REGEXP is a regexp to substitute spaces in font-lock search."
             (assoc (or lighter regexp) hi-lock-interactive-lighters))
         (add-to-list 'hi-lock--unused-faces (face-name face))
       (push pattern hi-lock-interactive-patterns)
-      (push (cons (or lighter regexp) pattern) hi-lock-interactive-lighters)
+      (push (cons (or (and lighter (propertize lighter 'regexp regexp))
+                      regexp)
+                  pattern)
+            hi-lock-interactive-lighters)
       (if (and font-lock-mode (font-lock-specified-p major-mode)
                (not hi-lock-use-overlays))
          (progn
@@ -888,7 +891,9 @@ Apply the previous patterns after reverting the buffer."
           (setq hi-lock--unused-faces hi-lock-face-defaults)
           (dolist (pattern (reverse patterns))
             (let ((face (hi-lock-keyword->face (cdr pattern))))
-              (highlight-regexp (car pattern) face)
+              (highlight-regexp (or (get-text-property 0 'regexp (car pattern))
+                                    (car pattern))
+                                face)
               (setq hi-lock--unused-faces
                     (remove (face-name face) hi-lock--unused-faces)))))))))