From 3c68014cded797add3daa4030917ab9de299f57d Mon Sep 17 00:00:00 2001 From: Mauro Aranda Date: Tue, 12 Jan 2021 20:41:49 -0300 Subject: [PATCH] Fix list-colors-print handling of callback arg * lisp/facemenu.el (list-colors-print): Keeping backward-compatibility, don't fail when passed a closure object as CALLBACK. (Bug#45831) --- lisp/facemenu.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/facemenu.el b/lisp/facemenu.el index 2609397b0d..dc5f8f46ab 100644 --- a/lisp/facemenu.el +++ b/lisp/facemenu.el @@ -606,9 +606,14 @@ list-colors-display (defun list-colors-print (list &optional callback) (let ((callback-fn - (if callback - `(lambda (button) - (funcall ,callback (button-get button 'color-name)))))) + ;; Expect CALLBACK to be a function, but allow it to be a form that + ;; evaluates to a function, for backward-compatibility. (Bug#45831) + (cond ((functionp callback) + (lambda (button) + (funcall callback (button-get button 'color-name)))) + (callback + `(lambda (button) + (funcall ,callback (button-get button 'color-name))))))) (dolist (color list) (if (consp color) (if (cdr color) -- 2.29.2