From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mauro Aranda Newsgroups: gmane.emacs.bugs Subject: bug#45831: 28.0.50; list-colors-display callback arg needs to evaluate to a function? Date: Tue, 12 Jan 2021 20:59:29 -0300 Message-ID: <5ffe37e4.1c69fb81.411a.0f1c@mx.google.com> References: <5ffe3063.1c69fb81.52f23.11a7@mx.google.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10445"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: 45831@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Jan 13 01:00:14 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kzTa9-0002be-J6 for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 13 Jan 2021 01:00:13 +0100 Original-Received: from localhost ([::1]:48738 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kzTa8-0002ls-IX for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 12 Jan 2021 19:00:12 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50796) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kzTZy-0002lV-G1 for bug-gnu-emacs@gnu.org; Tue, 12 Jan 2021 19:00:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:50417) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kzTZy-00039q-6o for bug-gnu-emacs@gnu.org; Tue, 12 Jan 2021 19:00:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kzTZy-0003kT-4b for bug-gnu-emacs@gnu.org; Tue, 12 Jan 2021 19:00:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Mauro Aranda Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 13 Jan 2021 00:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45831 X-GNU-PR-Package: emacs Original-Received: via spool by 45831-submit@debbugs.gnu.org id=B45831.161049598114338 (code B ref 45831); Wed, 13 Jan 2021 00:00:02 +0000 Original-Received: (at 45831) by debbugs.gnu.org; 12 Jan 2021 23:59:41 +0000 Original-Received: from localhost ([127.0.0.1]:33726 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzTZd-0003j7-Cq for submit@debbugs.gnu.org; Tue, 12 Jan 2021 18:59:41 -0500 Original-Received: from mail-qk1-f178.google.com ([209.85.222.178]:46087) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzTZa-0003ip-Re; Tue, 12 Jan 2021 18:59:40 -0500 Original-Received: by mail-qk1-f178.google.com with SMTP id d14so97575qkc.13; Tue, 12 Jan 2021 15:59:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:from:to:subject:references:date:in-reply-to:user-agent :mime-version; bh=TwqtrmviIwqo2AkDv49TMzyZRtwXZfSe5k5O6w/It5k=; b=pDQjyqiawLCQSjpYtz67+e/06hbGYtyUaYt9d1w6PXOwoR+Hp/Mh7tFwuOCkseWLfW F0Gn9qaP5YtFP6EFFGMnhHhgtTCjkp+8gCDzAcOAHAwz28rE7QbaU517QKy2KZGfC7py 9RaALD9zcvW5RMP4M9yltKxEU/lJ4xp+T6QwTAsNeV+yELQuhMR5XI6ngjQsaoMJJA5r lR9+95YaCbBLLGiS5xEijLBerOIb0q2WGzW3713jbsfZF5NbyfvepPBRUr3tPDBdD5jx 9DydLNALvdXTveuC7UAF/7O7Z07dgVtt1D/Rdy4jafOAg4OvLnvMAb0qBkpUbgPXlmw+ qrvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:from:to:subject:references:date :in-reply-to:user-agent:mime-version; bh=TwqtrmviIwqo2AkDv49TMzyZRtwXZfSe5k5O6w/It5k=; b=jVSIGFXcRQGChaKGnv2Hmh86TnpBMNplPw3acMrzGpOVs+HZVHcQiIYhyjsBMiR3Fs olJUjiNlEJn1D+unakG4y+KH6Ouse3VVc6g6mlcsmpYNLW25npbdwneARUVQ7sPbISTu rClI0YAM6ojpKBdciNMlovHN2/vFq6KgI7E0iYQVxDiESwU6me0a29cyK15XxVTvHwsp L3p/yxyrsE0EFxLIzfV/7eosirNyBzcTZKK+sZZt8ZU5vEpdm/W6jYrULhmFmZguCsZS l/ZDzen1FhtcCG4P/TDLrTtOJ6f5m+wXJzEBjc28vqTRT90ne+8F5IA1lnvzfpCl2R+M cjTQ== X-Gm-Message-State: AOAM531ASvUBxq/ytMBv84m2XvCSt60FygwfrC5XTcI9ban3J0WuKKON x2yVrsv0vX/D2cXBoZ981WsLVfwLoS4= X-Google-Smtp-Source: ABdhPJyRsYBrqFvuxyZiIWVeFkrY04DNMdyd517JYdV2sC5JvGzDmn9dBF7Moof07z/Qzd4Fc0hzGQ== X-Received: by 2002:a05:620a:805:: with SMTP id s5mr2283016qks.80.1610495972907; Tue, 12 Jan 2021 15:59:32 -0800 (PST) Original-Received: from tbb-desktop ([201.213.132.172]) by smtp.gmail.com with ESMTPSA id z9sm136502qts.66.2021.01.12.15.59.31 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 12 Jan 2021 15:59:32 -0800 (PST) X-Google-Original-Message-ID: <871repwvtq.fsf@maurooaranda@gmail.com> In-Reply-To: <5ffe3063.1c69fb81.52f23.11a7@mx.google.com> (Mauro Aranda's message of "Tue, 12 Jan 2021 20:27:28 -0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:197870 Archived-At: --=-=-= Content-Type: text/plain tags 45831 patch quit Backward-compatible change attached. With this change, all of the following work: (list-colors-display nil nil (let ((cbuf (current-buffer))) (lambda (color) (when (buffer-live-p cbuf) (message "Picked color %s for buffer %s" color (buffer-name cbuf)))))) (list-colors-display nil nil (let ((cbuf (current-buffer))) `(function ,(lambda (color) (when (buffer-live-p cbuf) (message "Picked color %s for buffer %s" color (buffer-name cbuf))))))) (list-colors-display nil nil (let ((cbuf (current-buffer))) `(lambda (color) (when (buffer-live-p ,cbuf) (message "Picked color %s for buffer %s" color (buffer-name ,cbuf)))))) (list-colors-display nil nil (let ((cbuf (current-buffer))) #'(lambda (color) (when (buffer-live-p cbuf) (message "Picked color %s for buffer %s" color (buffer-name cbuf)))))) Feel free to drop the 2nd cond clause if backward-compatibility is not deemed too important here. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Fix-list-colors-print-handling-of-callback-arg.patch Content-Description: Patch >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 --=-=-=--