From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: daanturo Newsgroups: gmane.emacs.bugs Subject: bug#59820: [PATCH] * nadvice/nadvice.el: support non-symbol (closure/lambda) advices (old Emacs) Date: Mon, 5 Dec 2022 00:14:49 +0700 Message-ID: <93f01864-6cdf-2d04-d08c-d0b52dc7773f@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------a9wGvp0ysz0oFX8IpfmGmKCG" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22067"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 To: 59820@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 04 18:16:21 2022 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 1p1sbE-0005Xu-SY for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 04 Dec 2022 18:16:20 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p1say-0004It-Ch; Sun, 04 Dec 2022 12:16:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p1sax-0004Hn-8H for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2022 12:16:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p1saw-000250-PK for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2022 12:16:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p1saw-0006g8-8L for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2022 12:16:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: daanturo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 04 Dec 2022 17:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 59820 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.167017410417253 (code B ref -1); Sun, 04 Dec 2022 17:16:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 4 Dec 2022 17:15:04 +0000 Original-Received: from localhost ([127.0.0.1]:58762 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1sZz-0004SX-BX for submit@debbugs.gnu.org; Sun, 04 Dec 2022 12:15:04 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:54822) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1sZu-0004Nc-Kt for submit@debbugs.gnu.org; Sun, 04 Dec 2022 12:15:02 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p1sZu-0004CB-Fm for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2022 12:14:58 -0500 Original-Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p1sZr-0001QZ-Cj for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2022 12:14:58 -0500 Original-Received: by mail-pg1-x530.google.com with SMTP id h33so8509136pgm.9 for ; Sun, 04 Dec 2022 09:14:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:content-language:subject:to:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=q7uy+EZBVqUUSBcQP5NIXYnku7ZxmRnRAzo+gbbr4ME=; b=aokCFyMIZHPfXfTPRn7zBv0hVvUNNNjk7e9XZ5lmy/y0z1bjKdA9t6lm0bjL4BUqhx e+z20XVLOcJWCgd+rQ3UqejcnX0q3UzG0ZvpFE8IeHm/r4LXWNxODHRjKD/2T3kTvRds 3LFU5S2oLpsNREIo70tIKqC4/cnkoRO8bYdkB91rLS93mouzgcWQuNglQa9J+3ChoHsW bJvg85y3jR2OzNbt5f89aSJ71aoC3knGfx9q9N6V9nuWScy3UNJHK4UQCn2MRdkevyEg fAZ45Eie8xqy1OqQrp7SB80Lg7v8U3kfp5H3DQf27z8QCiAJc5hwoj4aJiGD9GjVxApA H1Rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=from:content-language:subject:to:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=q7uy+EZBVqUUSBcQP5NIXYnku7ZxmRnRAzo+gbbr4ME=; b=wDFE4/M5fGV2mADnRdXj8WZTOgNc6mlLM/Inw19m3OD1nGexWfztMynqLIJw6hRwO2 z+oELSi3UEKnbuGorv4cHyoKXS7e5g3K/FEIbkhdUoCEQkIiXmVH0XCVMPiDsfeq5iUq psRV4jCJc9HX1qAxQ1h/OxqH21VwSMv//qYPP00X2esHsdZyp1D4SvBZI+6qv3M9rbx6 7cHIxxPCWnVj5KhVJQV85v//JXIQhbVrpIHiqwC1OudpZOO88rDG0Q7d6gS1ChoeJ007 yQtVA5pqb1WE9iJrxItw6wdfoHlr/Gkrnh9z6K4JrA/Ell/Mad0rBqtffrsykjvw5GdX Vlug== X-Gm-Message-State: ANoB5pndptztrDXHLQq3uBym4lWCjbcwqlR8u8jtX40LL+FYhHoFP8q/ Q7nhl6wN/5S6LakxHQc3nq0Q/SAha2w= X-Google-Smtp-Source: AA0mqf6slyvhQlZE8tFbEolvsEdURNe5MuzqLZCwRp4v2N2wRNsCy8imX2Bfy9SQlt1/10+4/gWuAw== X-Received: by 2002:aa7:928f:0:b0:56d:2e71:449 with SMTP id j15-20020aa7928f000000b0056d2e710449mr62197615pfa.46.1670174092997; Sun, 04 Dec 2022 09:14:52 -0800 (PST) Original-Received: from ?IPV6:2001:ee0:4f4c:7ae0:addd:ebe1:9a59:e278? ([2001:ee0:4f4c:7ae0:addd:ebe1:9a59:e278]) by smtp.gmail.com with ESMTPSA id y2-20020a623202000000b00574740c99e9sm8301452pfy.129.2022.12.04.09.14.51 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 04 Dec 2022 09:14:52 -0800 (PST) Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::530; envelope-from=daanturo@gmail.com; helo=mail-pg1-x530.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:249955 Archived-At: This is a multi-part message in MIME format. --------------a9wGvp0ysz0oFX8IpfmGmKCG Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch provides the ELPA version (for Emacs < 24.4) of nadvice.el's advice-add the ability to handle anonymous advices. I have tested with a simple example: ```emacs-lisp (let* ((sym (make-symbol "nadvice λ")))   (defalias sym (lambda (&rest args) '(1)))   (advice-add sym :around (lambda (func &rest args)                             (append (apply func args) '(2))))   (vector    ;; advised returned value    (funcall sym)    (progn      (advice-remove sym (lambda (func &rest args)                           (append (apply func args) '(2))))      ;; unadvised returned value      (funcall sym)))) ;; => [(1 2) (1)] ``` In GNU Emacs 24.3.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.22.30)  of 2020-04-04 on x86-01.bsys.centos.org Windowing system distributor `The X.Org Foundation', version  11.0.12201005   Configured using:  `configure '--build=x86_64-redhat-linux-gnu'  '--host=x86_64-redhat-linux-gnu' '--program-prefix='  '--disable-dependency-tracking' '--prefix=/usr' '--exec-prefix=/usr'  '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc'  '--datadir=/usr/share' '--includedir=/usr/include'  '--libdir=/usr/lib64' '--libexecdir=/usr/libexec'  '--localstatedir=/var' '--sharedstatedir=/var/lib'  '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-dbus'  '--with-gif' '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff'  '--with-xft' '--with-xpm' '--with-x-toolkit=gtk3' '--with-gpm=no'  'build_alias=x86_64-redhat-linux-gnu'  'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g  -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions  -fstack-protector-strong --param=ssp-buffer-size=4  -grecord-gcc-switches -m64 -mtune=generic' 'LDFLAGS=-Wl,-z,relro '' -- Daanturo. --------------a9wGvp0ysz0oFX8IpfmGmKCG Content-Type: text/x-patch; charset=UTF-8; name="0001-nadvice-nadvice.el-support-non-symbol-advices.patch" Content-Disposition: attachment; filename="0001-nadvice-nadvice.el-support-non-symbol-advices.patch" Content-Transfer-Encoding: base64 RnJvbSBiMDdmZDY5N2UwOTdlZDBjYTYwNDA3ODE4MzBhZDQyYmUyYTlhYzg2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYWFudHVybyA8ZGFhbnR1cm9AZ21haWwuY29tPgpE YXRlOiBTdW4sIDQgRGVjIDIwMjIgMjE6MzQ6NTIgKzA3MDAKU3ViamVjdDogW1BBVENIXSAq IG5hZHZpY2UvbmFkdmljZS5lbDogc3VwcG9ydCBub24tc3ltYm9sIGFkdmljZXMKCihhZHZp Y2UtYWRkKTogYnkgYWxpYXNpbmcgdGhlIGZ1bmN0aW9uIHRvIGEgbmV3IHN5bWJvbAotLS0K IG5hZHZpY2UuZWwgfCA1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDIy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25hZHZpY2UuZWwgYi9uYWR2aWNlLmVsCmlu ZGV4IDU4NTIzZjYuLjQ0M2E1ZDAgMTAwNjQ0Ci0tLSBhL25hZHZpY2UuZWwKKysrIGIvbmFk dmljZS5lbApAQCAtNTIsMzAgKzUyLDM4IEBACiAoZGVmdW4gYWR2aWNlLW1lbWJlci1wIChh ZHZpY2Ugc3ltYm9sKQogICAoYWQtZmluZC1hZHZpY2Ugc3ltYm9sICdhcm91bmQgYWR2aWNl KSkKIAorCisoZGVmdW4gYWR2aWNlLS1lbnN1cmUtc3ltYm9sIChmdW5jKQorICAoaWYgKHN5 bWJvbHAgZnVuYykKKyAgICAgIGZ1bmMKKyAgICAobGV0KiAoKHN5bSAoaW50ZXJuIChmb3Jt YXQgIiVTIiBmdW5jKSkpKQorICAgICAgKHVubGVzcyAoZmJvdW5kcCBzeW0pCisgICAgICAg IChkZWZhbGlhcyBzeW0gZnVuYykpCisgICAgICBzeW0pKSkKKwogOzs7IyMjYXV0b2xvYWQK IChkZWZ1biBhZHZpY2UtYWRkIChzeW1ib2wgd2hlcmUgZnVuY3Rpb24gJm9wdGlvbmFsIHBy b3BzKQogICAod2hlbiBwcm9wcwogICAgIChlcnJvciAiVGhpcyB2ZXJzaW9uIG9mIG5hZHZp Y2UuZWwgZG9lcyBub3Qgc3VwcG9ydCBQUk9QUyIpKQotICAodW5sZXNzIChzeW1ib2xwIGZ1 bmN0aW9uKQotICAgIChlcnJvciAiVGhpcyB2ZXJzaW9uIG9mIG5hZHZpY2UuZWwgcmVxdWly ZXMgRlVOQ1RJT04gdG8gYmUgYSBzeW1ib2wiKSkKLSAgKGxldCAoKGJvZHkgKGNvbmQKLSAg ICAgICAgICAgICAgICgoZXEgd2hlcmUgOmJlZm9yZSkKLSAgICAgICAgICAgICAgICBgKHBy b2duIChhcHBseSAjJyxmdW5jdGlvbiAoYWQtZ2V0LWFyZ3MgMCkpIGFkLWRvLWl0KSkKLSAg ICAgICAgICAgICAgICgoZXEgd2hlcmUgOmFmdGVyKQotICAgICAgICAgICAgICAgIGAocHJv Z24gYWQtZG8taXQgKGFwcGx5ICMnLGZ1bmN0aW9uIChhZC1nZXQtYXJncyAwKSkpKQotICAg ICAgICAgICAgICAgKChlcSB3aGVyZSA6b3ZlcnJpZGUpCi0gICAgICAgICAgICAgICAgYChz ZXRxIGFkLXJldHVybi12YWx1ZSAoYXBwbHkgIycsZnVuY3Rpb24gKGFkLWdldC1hcmdzIDAp KSkpCi0gICAgICAgICAgICAgICAoKGVxIHdoZXJlIDphcm91bmQpCi0gICAgICAgICAgICAg ICAgYChzZXRxIGFkLXJldHVybi12YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAoYXBw bHkgIycsZnVuY3Rpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEg KCZyZXN0IG5hZHZpY2UtLXJlc3QtYXJnKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYWQtc2V0LWFyZ3MgMCBuYWR2aWNlLS1yZXN0LWFyZykKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWQtZG8taXQpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYWQtZ2V0LWFyZ3MgMCkpKSkKLSAgICAgICAgICAgICAgICh0IChlcnJvciAiVGhp cyB2ZXJzaW9uIG9mIG5hZHZpY2UuZWwgZG9lcyBub3QgaGFuZGxlICVTIgotICAgICAgICAg ICAgICAgICAgICAgICAgIHdoZXJlKSkpKSkKKyAgKGxldCogKChhZHZpY2UtZm4gKGFkdmlj ZS0tZW5zdXJlLXN5bWJvbCBmdW5jdGlvbikpCisgICAgICAgICAoYm9keSAoY29uZAorICAg ICAgICAgICAgICAgICgoZXEgd2hlcmUgOmJlZm9yZSkKKyAgICAgICAgICAgICAgICAgYChw cm9nbiAoYXBwbHkgIycsYWR2aWNlLWZuIChhZC1nZXQtYXJncyAwKSkgYWQtZG8taXQpKQor ICAgICAgICAgICAgICAgICgoZXEgd2hlcmUgOmFmdGVyKQorICAgICAgICAgICAgICAgICBg KHByb2duIGFkLWRvLWl0IChhcHBseSAjJyxhZHZpY2UtZm4gKGFkLWdldC1hcmdzIDApKSkp CisgICAgICAgICAgICAgICAgKChlcSB3aGVyZSA6b3ZlcnJpZGUpCisgICAgICAgICAgICAg ICAgIGAoc2V0cSBhZC1yZXR1cm4tdmFsdWUgKGFwcGx5ICMnLGFkdmljZS1mbiAoYWQtZ2V0 LWFyZ3MgMCkpKSkKKyAgICAgICAgICAgICAgICAoKGVxIHdoZXJlIDphcm91bmQpCisgICAg ICAgICAgICAgICAgIGAoc2V0cSBhZC1yZXR1cm4tdmFsdWUKKyAgICAgICAgICAgICAgICAg ICAgICAgIChhcHBseSAjJyxhZHZpY2UtZm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGFtYmRhICgmcmVzdCBuYWR2aWNlLS1yZXN0LWFyZykKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChhZC1zZXQtYXJncyAwIG5hZHZpY2UtLXJlc3QtYXJnKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWQtZG8taXQpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGFkLWdldC1hcmdzIDApKSkpCisgICAgICAgICAgICAg ICAgKHQgKGVycm9yICJUaGlzIHZlcnNpb24gb2YgbmFkdmljZS5lbCBkb2VzIG5vdCBoYW5k bGUgJVMiCisgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXJlKSkpKSkKICAgICAoYWQt YWRkLWFkdmljZSBzeW1ib2wKLSAgICAgICAgICAgICAgICAgICBgKCxmdW5jdGlvbiBuaWwg dCAoYWR2aWNlIGxhbWJkYSAoKSAsYm9keSkpCisgICAgICAgICAgICAgICAgICAgYCgsYWR2 aWNlLWZuIG5pbCB0IChhZHZpY2UgbGFtYmRhICgpICxib2R5KSkKICAgICAgICAgICAgICAg ICAgICAnYXJvdW5kCiAgICAgICAgICAgICAgICAgICAgbmlsKQogICAgIChhZC1hY3RpdmF0 ZSBzeW1ib2wpKSkKQEAgLTg0LDkgKzkyLDEwIEBACiAoZGVmdW4gYWR2aWNlLXJlbW92ZSAo c3ltYm9sIGZ1bmN0aW9uKQogICA7OyBKdXN0IHJldHVybiBuaWwgaWYgdGhlcmUgaXMgbm8g YWR2aWNlLCByYXRoZXIgdGhhbiBzaWduYWxpbmcgYW4KICAgOzsgZXJyb3IuCi0gICh3aGVu IChhZHZpY2UtbWVtYmVyLXAgZnVuY3Rpb24gc3ltYm9sKQotICAgIChhZC1yZW1vdmUtYWR2 aWNlIHN5bWJvbCAnYXJvdW5kIGZ1bmN0aW9uKQotICAgIChhZC1hY3RpdmF0ZSBzeW1ib2wp KSkKKyAgKGxldCogKChhZHZpY2UtZm4gKGFkdmljZS0tZW5zdXJlLXN5bWJvbCBmdW5jdGlv bikpKQorICAgICh3aGVuIChhZHZpY2UtbWVtYmVyLXAgYWR2aWNlLWZuIHN5bWJvbCkKKyAg ICAgIChhZC1yZW1vdmUtYWR2aWNlIHN5bWJvbCAnYXJvdW5kIGFkdmljZS1mbikKKyAgICAg IChhZC1hY3RpdmF0ZSBzeW1ib2wpKSkpCiAKICkKIAotLSAKMi4zOC4xCgo= --------------a9wGvp0ysz0oFX8IpfmGmKCG--