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: Sat, 16 Jan 2021 08:42:19 -0300 Message-ID: <6002d11e.1c69fb81.33032.dc74@mx.google.com> References: <5ffe3063.1c69fb81.52f23.11a7@mx.google.com> <5ffe37e4.1c69fb81.411a.0f1c@mx.google.com> <87bldphn60.fsf@tcd.ie> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8905"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: 45831@debbugs.gnu.org To: "Basil L. Contovounesios" Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jan 16 12:43:15 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 1l0jz8-0002D0-GT for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 16 Jan 2021 12:43:14 +0100 Original-Received: from localhost ([::1]:56482 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l0jz7-0007FU-3F for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 16 Jan 2021 06:43:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39728) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l0jyw-0007Ey-J5 for bug-gnu-emacs@gnu.org; Sat, 16 Jan 2021 06:43:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:59204) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l0jyw-0003mO-Bo for bug-gnu-emacs@gnu.org; Sat, 16 Jan 2021 06:43:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l0jyw-0000Od-92 for bug-gnu-emacs@gnu.org; Sat, 16 Jan 2021 06:43: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: Sat, 16 Jan 2021 11:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45831 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 45831-submit@debbugs.gnu.org id=B45831.16107973541490 (code B ref 45831); Sat, 16 Jan 2021 11:43:02 +0000 Original-Received: (at 45831) by debbugs.gnu.org; 16 Jan 2021 11:42:34 +0000 Original-Received: from localhost ([127.0.0.1]:42517 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l0jyU-0000Nx-4i for submit@debbugs.gnu.org; Sat, 16 Jan 2021 06:42:34 -0500 Original-Received: from mail-qk1-f171.google.com ([209.85.222.171]:35678) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l0jyP-0000Nf-G6 for 45831@debbugs.gnu.org; Sat, 16 Jan 2021 06:42:32 -0500 Original-Received: by mail-qk1-f171.google.com with SMTP id n142so14402954qkn.2 for <45831@debbugs.gnu.org>; Sat, 16 Jan 2021 03:42:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:from:to:cc:subject:references:date:in-reply-to :user-agent:mime-version; bh=pcFvORevqep/YLSVbv/lTC5y/XBBy7hik0WC1aMyRWs=; b=MuWdZa3WNchaH3fJtyVX6LHhIaYSjLN8vH3YIiP1SWv/PSbYHH/IFFfH7nSPpo9fMr XlRNG0jrEXRhV1wDTglXlclHurRV/21597RAqf3lUJY/jBySLonI25wbP/8LwQeSa25k gr4SCktyhNHqJoaPM+3K5C41JcWq8Q79OIjRQlaxKRyac64Ty8WcK7qAAuLpn6HjPH/l yu7U+w6/t8C8ys/3r4uIsz1PTIwCVrYNnuQgag3v5vZDTs0c7kYJMpi4SY1AUkKOyON1 t/MoIrpCZgFU12WeeObP0kc/oZI0D/N/8VlIan75j4zmmdWHmNjipTaJ6h1F+E6Wur60 ftug== 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:cc:subject:references:date :in-reply-to:user-agent:mime-version; bh=pcFvORevqep/YLSVbv/lTC5y/XBBy7hik0WC1aMyRWs=; b=JkG0ZZZ6ZSgSg1dUKQKmlBNPj2wjj+nzhCsW134bqHp2ETKtF5JZ6Okceagk4UMMIM gIKIfW76dQhL1RTZBQyGymiiBbYZE2HaENR+0yv81HZiIb4wODkQ6tas8BDJ1lLfjpsK IC+IsGWBp0jMaVYjCmuaOcyWpTYQKx8EdPSFm6zyn+c4d2BEjff05jCLhqGo7GEhDOcp VJL8YvptrdsD9i9dg7D+c41cDk57ZG9q4hhnY6QCxqemytE1suyvqALtWFsqMFWqWAy6 V1fawcELAx8+xiIbU7Ba7VHSvtlxFO2bBBXPgkdke57UjKsH2aXxKIYI3WXgy3OwUIol NI8Q== X-Gm-Message-State: AOAM531CvYweBNyUm6zPmDy227lZT6zev/r7toL6xSYcZCx/hn1eHxm0 mAMo6sXWNNi7tkbTkiVDUOGJzfzTQGk= X-Google-Smtp-Source: ABdhPJzeuq7OB/p0FKzmo47TKCbIcY+s2k2GEGeQApFFeAu4upeZAEViuOYpKgbb46m8cYbKyrhoHw== X-Received: by 2002:a05:620a:1101:: with SMTP id o1mr16747750qkk.489.1610797343673; Sat, 16 Jan 2021 03:42:23 -0800 (PST) Original-Received: from tbb-desktop ([201.213.132.172]) by smtp.gmail.com with ESMTPSA id o64sm6953516qka.43.2021.01.16.03.42.21 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 16 Jan 2021 03:42:22 -0800 (PST) X-Google-Original-Message-ID: <87sg71qfac.fsf@maurooaranda@gmail.com> In-Reply-To: <87bldphn60.fsf@tcd.ie> (Basil L. Contovounesios's message of "Fri, 15 Jan 2021 22:04:39 +0000") 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:198020 Archived-At: "Basil L. Contovounesios" writes: > Mauro Aranda writes: > >> (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))))))) > > Why not a single evaluated closure, e.g. like the following? > > (let ((callback-fn > (when callback > ;; Expect CALLBACK to be a function, but allow it to be a form that > ;; evaluates to a function, for backward-compatibility (bug#45831). > (or (functionp callback) > (setq callback (eval callback lexical-binding))) > (lambda (button) > (funcall callback (button-get button 'color-name)))))) > ...) Just because I didn't want to change the original code too much, in case someone thought the backward-compatible change wasn't necessary. But of course, your sample code looks better. > Thanks, Thanks for taking a look.