diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index e1fa992cb12..c1b96431c16 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el @@ -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))))))))) diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 7d0312eb2a4..9bf6f9217c8 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -1633,7 +1633,10 @@ integer value is also printed as a character of that codepoint. If `eval-expression-debug-on-error' is non-nil, which is the default, this command arranges for all errors to enter the debugger." (interactive "P") - (values--store-value + (funcall + ;; Not sure why commit 4428c27c1ae7d stored into `values' only when + ;; `eval-expression-debug-on-error' was nil, but let's preserve that. + (if eval-expression-debug-on-error #'identity #'values--store-value) (handler-bind ((error (if eval-expression-debug-on-error #'eval-expression--debug #'ignore))) (elisp--eval-last-sexp eval-last-sexp-arg-internal))))