GNU bug report logs - #68114
[PATCH] Make 'advice-remove' interactive

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Severity: wishlist; Reported by: Steven Allen <steven@HIDDEN>; Keywords: patch; dated Fri, 29 Dec 2023 19:58:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Severity set to 'wishlist' from 'normal' Request was from Stefan Kangas <stefankangas@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 6 Jan 2024 16:48:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 06 11:48:45 2024
Received: from localhost ([127.0.0.1]:60234 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rM9qm-00087D-TB
	for submit <at> debbugs.gnu.org; Sat, 06 Jan 2024 11:48:45 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:45408)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1rM9qj-00086H-7i
 for 68114 <at> debbugs.gnu.org; Sat, 06 Jan 2024 11:48:43 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1rM9qX-0002Xq-RS; Sat, 06 Jan 2024 11:48:30 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=vKtsCCTCb/ybTJBDaKWH9QCqZ2CQEUdDbfHQZNAlFdU=; b=dGaf3HLEsThQ
 Lb0VftWOEsOqCuHxcw0fhTtKxOSO0Pn3JzNLMs6zkoKr/NQr1Ynf5ExB283GMA484Y0c78pfX4f8t
 44+Sjf1Wquu11u/sYwKJoxr3MOuxevlThMVBe/vYFUn2UbLF4qqsCxAlgsj5L6IkvkFihe+5D0PQV
 LlVpg7HdWzwpBfJFPP5Je0uAyyIF2S1KNpbgDFKrais3QNt09Lg224S9ZccSWQVN0Dr9ZutZaZ2R/
 H5QvpJWPoWqc6hhsUoeX/PwtlINcD/uOAlHrJIvskfbOaEY17j6zrFigAVrTXxKa2ieUGon7vcl0B
 hq00fJhULjIIgY8HG8KnGg==;
Date: Sat, 06 Jan 2024 18:48:20 +0200
Message-Id: <83o7dys90r.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Steven Allen <steven@HIDDEN>
In-Reply-To: <87r0j3hcir.fsf@HIDDEN> (message from Steven Allen on Sat, 
 30 Dec 2023 08:37:48 -0800)
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
References: <87r0j42353.fsf@HIDDEN> <83a5ps6a5e.fsf@HIDDEN>
 <87r0j491mx.fsf@HIDDEN> <837ckw5gug.fsf@HIDDEN>
 <87r0j3hcir.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 68114
Cc: 68114 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Steven Allen <steven@HIDDEN>
> Date: Sat, 30 Dec 2023 08:37:48 -0800
> 
> Ah, I responded to the previous message before seeing this one.

I installed this patch, thanks.

> > Btw, what is "the 'name' of a piece of advice"?  I realize that this
> > text was there to begin with, but I don't think I understand what it
> > wants to tell me, so maybe we could clarify that.  The only reference
> > to a "name" in the preceding text uses "name" to mean a symbol, but
> > then what is "the name of a piece of advice"?  I guess this goes back
> > to define-advice, which says:
> >
> >   @defmac define-advice symbol (where lambda-list &optional name depth) &rest body
> >   This macro defines a piece of advice and adds it to the function named
> >   @var{symbol}.  The advice is an anonymous function if @var{name} is
> >   @code{nil} or a function named @code{symbol@@name}.  See
> >   @code{advice-add} for explanation of other arguments.
> >
> > which is also a bit mysterious.  Does NAME used here serve as "the
> > name of the piece of advice"? if so, should "@code{symbol@@name}" be
> > "@code{symbol@@@var{name}}" instead, i.e. "name" is not a literal
> > string but the reference to NAME?
> 
> So, those two names are actually different. The 'name' in referenced in
> the `advice-remove` documentation is the 'name in the advice's 'props'
> alist. The 'name' specified in `define-advice` is _not_ added to this
> alist and is only used in the advice's function name.
> 
> I'm happy to resolve this in a separate patch, if that's OK with you.
> Something like (`define-advice` documentation):
> 
>     Note if NAME is nil the advice is anonymous; otherwise the advice
>     function is named `SYMBOL@NAME' and the advice is named NAME.
> 
> Then actually add NAME to the properties.

Yes, I think something like this should be installed.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 6 Jan 2024 09:03:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 06 04:03:17 2024
Received: from localhost ([127.0.0.1]:58539 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rM2aK-0007A9-VV
	for submit <at> debbugs.gnu.org; Sat, 06 Jan 2024 04:03:17 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:51838)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1rM2aI-00079r-BP
 for 68114 <at> debbugs.gnu.org; Sat, 06 Jan 2024 04:03:15 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1rM2a8-0005oP-3p; Sat, 06 Jan 2024 04:03:04 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=Rbzy9KwIo7YWS7RWVeAlEoSbLNaM5Y/50j9Wcp+uCr4=; b=Meo5trHUiVIr
 27R8seTU9dMVfBZk1x2OI/WJHJuVdpuamQFZhmnMoh7t5l2gz/Ug6PH5OpstEFZrvnSSxsziX3sGC
 Bo69C4fXEl+CLIezP/rhxCQvKWkVoAUvqOh6Kt0/YUUiGv5UWNKIwC2SaHsq3/DjqXRP/yVHJQWOB
 T6VbXNrrlKMubSlicHiZgquDKc05LyUF6Oj5eVty2YJDSua85iYBFws9LcdVV85jUkV42K3UNzrcN
 GhrVzBH+MORhvQqi8AvXI5BAXITCbXvo6G0esyHfjBvrvrcu9oEP5hEUtQd0G+CbRgDiBctK5mTt6
 V5WP1XrhVbtcagv9MSdPvg==;
Date: Sat, 06 Jan 2024 11:02:53 +0200
Message-Id: <83le92u94y.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Steven Allen <steven@HIDDEN>
In-Reply-To: <87r0j3hcir.fsf@HIDDEN> (message from Steven Allen on Sat, 
 30 Dec 2023 08:37:48 -0800)
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
References: <87r0j42353.fsf@HIDDEN> <83a5ps6a5e.fsf@HIDDEN>
 <87r0j491mx.fsf@HIDDEN> <837ckw5gug.fsf@HIDDEN>
 <87r0j3hcir.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 68114
Cc: Stefan Monnier <monnier@HIDDEN>, 68114 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Steven Allen <steven@HIDDEN>
> Date: Sat, 30 Dec 2023 08:37:48 -0800
> 
> Ah, I responded to the previous message before seeing this one.
> 
> > Please mention the bug number, since it is now known, in the log
> > message.
> 
> Done.
> 
> > Two spaces between sentences, please.
> 
> Fixed in the first revision (d4a07757).
> 
> > Btw, what is "the 'name' of a piece of advice"?  I realize that this
> > text was there to begin with, but I don't think I understand what it
> > wants to tell me, so maybe we could clarify that.  The only reference
> > to a "name" in the preceding text uses "name" to mean a symbol, but
> > then what is "the name of a piece of advice"?  I guess this goes back
> > to define-advice, which says:
> >
> >   @defmac define-advice symbol (where lambda-list &optional name depth) &rest body
> >   This macro defines a piece of advice and adds it to the function named
> >   @var{symbol}.  The advice is an anonymous function if @var{name} is
> >   @code{nil} or a function named @code{symbol@@name}.  See
> >   @code{advice-add} for explanation of other arguments.
> >
> > which is also a bit mysterious.  Does NAME used here serve as "the
> > name of the piece of advice"? if so, should "@code{symbol@@name}" be
> > "@code{symbol@@@var{name}}" instead, i.e. "name" is not a literal
> > string but the reference to NAME?
> 
> So, those two names are actually different. The 'name' in referenced in
> the `advice-remove` documentation is the 'name in the advice's 'props'
> alist. The 'name' specified in `define-advice` is _not_ added to this
> alist and is only used in the advice's function name.
> 
> I'm happy to resolve this in a separate patch, if that's OK with you.
> Something like (`define-advice` documentation):
> 
>     Note if NAME is nil the advice is anonymous; otherwise the advice
>     function is named `SYMBOL@NAME' and the advice is named NAME.
> 
> Then actually add NAME to the properties.
> 
> > I wonder whether "Remove advice from function: " would be a better
> > prompt.
> 
> Good point, done!
> 
> > And here I wonder whether "Advice to remove: " would be a better
> > prompt.
> 
> Also done.

Stefan, any comments to the patch below?

> >From c9dbd06fd6484227e46361e39c29798750d2470e Mon Sep 17 00:00:00 2001
> From: Steven Allen <steven@HIDDEN>
> Date: Fri, 29 Dec 2023 09:53:05 -0800
> Subject: [PATCH] Make 'advice-remove' interactive
> 
> `ad-advice-remove' is already interactive, but it doesn't work with
> new-style advice.
> 
> * lisp/emacs-lisp/nadvice.el (advice-remove): Make it
> interactive (Bug#67926).
> 
> * doc/lispref/functions.texi (Advising Named Functions): Document that
> 'advice-remove' is now an interactive command.
> ---
>  doc/lispref/functions.texi |  8 +++++---
>  etc/NEWS                   |  4 ++++
>  lisp/emacs-lisp/nadvice.el | 26 ++++++++++++++++++++++++++
>  3 files changed, 35 insertions(+), 3 deletions(-)
> 
> diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
> index d0c8f3e90e8..6f5c1a997e2 100644
> --- a/doc/lispref/functions.texi
> +++ b/doc/lispref/functions.texi
> @@ -2077,10 +2077,12 @@ Advising Named Functions
>  (@pxref{Core Advising Primitives}).
>  @end defun
>  
> -@defun advice-remove symbol function
> +@deffn Command advice-remove symbol function
>  Remove the advice @var{function} from the named function @var{symbol}.
> -@var{function} can also be the @code{name} of a piece of advice.
> -@end defun
> +@var{function} can also be the @code{name} of a piece of advice.  When
> +called interactively, prompt for both an advised @var{function} and
> +the advice to remove.
> +@end deffn
>  
>  @defun advice-member-p function symbol
>  Return non-@code{nil} if the advice @var{function} is already in the named
> diff --git a/etc/NEWS b/etc/NEWS
> index c002ec33d45..553365fc7a4 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -83,6 +83,10 @@ see the variable 'url-request-extra-headers'.
>  
>  * Changes in Emacs 30.1
>  
> +** 'advice-remove' is now an interactive command.
> +When called interactively, 'advice-remove' now prompts for an advised
> +function to the advice to remove.
> +
>  ** Emacs now supports Unicode Standard version 15.1.
>  
>  ** Network Security Manager
> diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
> index 9f2b42f5765..b1d314c0796 100644
> --- a/lisp/emacs-lisp/nadvice.el
> +++ b/lisp/emacs-lisp/nadvice.el
> @@ -539,6 +539,32 @@ advice-remove
>  or an autoload and it preserves `fboundp'.
>  Instead of the actual function to remove, FUNCTION can also be the `name'
>  of the piece of advice."
> +  (interactive
> +   (let* ((pred (lambda (sym) (advice--p (advice--symbol-function sym))))
> +          (default (when-let* ((f (function-called-at-point))
> +                               ((funcall pred f)))
> +                     (symbol-name f)))
> +          (prompt (format-prompt "Remove advice from function" default))
> +          (symbol (intern (completing-read prompt obarray pred t nil nil default)))
> +          advices)
> +     (advice-mapc (lambda (f p)
> +                    (let ((k (or (alist-get 'name p) f)))
> +                      (push (cons
> +                             ;; "name" (string) and 'name (symbol) are
> +                             ;; considered different names so we use
> +                             ;; `prin1-to-string' even if the name is
> +                             ;; a string to distinguish between these
> +                             ;; two cases.
> +                             (prin1-to-string k)
> +                             ;; We use `k' here instead of `f' because
> +                             ;; the same advice can have multiple
> +                             ;; names.
> +                             k)
> +                            advices)))
> +                  symbol)
> +     (list symbol (cdr (assoc-string
> +                        (completing-read "Advice to remove: " advices nil t)
> +                        advices)))))
>    (let ((f (symbol-function symbol)))
>      (remove-function (cond ;This is `advice--symbol-function' but as a "place".
>                        ((get symbol 'advice--pending)
> -- 
> 2.43.0
> 




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 5 Jan 2024 21:44:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 05 16:44:00 2024
Received: from localhost ([127.0.0.1]:58080 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rLryy-0004ck-53
	for submit <at> debbugs.gnu.org; Fri, 05 Jan 2024 16:44:00 -0500
Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:48787)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <steven@HIDDEN>) id 1rLryt-0004cU-SJ
 for 68114 <at> debbugs.gnu.org; Fri, 05 Jan 2024 16:43:59 -0500
Received: from compute7.internal (compute7.nyi.internal [10.202.2.48])
 by mailout.west.internal (Postfix) with ESMTP id BBC3F3200AD7
 for <68114 <at> debbugs.gnu.org>; Fri,  5 Jan 2024 16:43:44 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163])
 by compute7.internal (MEProxy); Fri, 05 Jan 2024 16:43:44 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com;
 h=cc:content-type:content-type:date:date:from:from:in-reply-to
 :in-reply-to:message-id:mime-version:references:reply-to
 :resent-date:resent-from:resent-message-id:resent-to:subject
 :subject:to:to; s=fm1; t=1704491024; x=1704577424; bh=au0JhpIJiq
 8DNIgDnjH75Ha1dLjKlk/tCEXA5F94Zzw=; b=e7TcGHT8XxRbzNX8i1LsHQWqaa
 lCvgMM5aGjwjyQNWC4mb/59ujvHLsGiQsYof/KeQvVyAlmNtZ0u7sPzthe8tduI1
 lh41R0qIYVBUblTmRuhJ+Mu6iukAVR7ln2Vmx4kiD9JlLvfTS6vIin+l6Mkj/0zv
 zdwNATi7j/GAbY+X1ua1KSK5BrIgEvS0OjTYvBMnHWi+xaCIRFd6fOyHKf1b78N0
 O1CgXVe6GinI9yx4IAgA0iGY4800oouwwNhOmcuU8w6MdVlvoNHFkA6M2PYaVaUb
 4wknyhNuScHwawHtwKdGugPPLVsac+SgXDFnLPf5vqgewccfhHZ3AJuwzQ4w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:resent-date
 :resent-from:resent-message-id:resent-to:subject:subject:to:to
 :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm2; t=1704491024; x=1704577424; bh=au0JhpIJiq8DNIgDnjH75Ha1dLjK
 lk/tCEXA5F94Zzw=; b=BQiO8gnqijDRw6rh1R3PDsJRmRk2H/LAki2QPzwAjwwR
 19iHjTIS/rmaKU9eO4gqbd1CpkHTRYxflcWjjwCAp0RKEX6DymicwJgQqdmG4jML
 uI65yukaZ8EKzhpnVh11gvXxe0NVUS4f/fQXgrs5PR0W9U095WZHw7FSSgRsc38Q
 fMXOH/rCajd7pWG7V2WrnTR6KSdT1kB9QkvjuSJreLFkCRT/Sp4WJ2HkUGKWVMn0
 TmkGlJjpIo2l8c3tMDMYUVsORZMoPaKKvfLKCO/R9hR8UqvwA6nTo+oxw0rVhgBD
 dJ1yuR3l6qOnAIXuB/fhwaF8yY5EM3kc90Lwses6xA==
X-ME-Sender: <xms:D3iYZRolX3YGBHsqSVCfXOyfRl6WJ5QWrs6lCGDGHgMToFR_ryasHw>
 <xme:D3iYZTpExul-R7rbXl7NLiR1i-9QL1WpytM5Sg0hvEH9dlHHjXeusdABwOO7Fm1kK
 BZuXNwNBKwrLcvIdzw>
X-ME-Received: <xmr:D3iYZeOAj9PEUCjZmkdF3KyapME229qhpa6Cr0-GeXGNiPNTeFgyY52H-1p9ifef4dW8tcaa2kUf8jS7wOYPCbYvO6QROA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdegledgudeglecutefuodetggdotefrod
 ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
 necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
 enucfjughrpefhvffujghffffkgggtsehmtderredttddtnecuhfhrohhmpefuthgvvhgv
 nhcutehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomheqnecuggftrf
 grthhtvghrnhepudffgffhfeehgedtffeuudejkeduleekieeufeegvefhueffhfehhfef
 vedvjefgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh
 epshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhm
X-ME-Proxy: <xmx:D3iYZc4-DfJCsJ3-oUPLBF6Z3AHNi-DnNMAs0kinXSc6jTJTMpeptw>
 <xmx:D3iYZQ6WPLyRFGjfGMEAwHGBV6X5iLD0v2lfx42EzGKbW6ic_uyhWA>
 <xmx:D3iYZUgUa44jhN94p1sfkQiSOfR81nRWmmySsygXC7vmNqZ71MB0Og>
 <xmx:EHiYZVUEFZn0cdwIj_oOEQfrFssUy3pGkHY3s-fwvyYeiXFQXLG2Mg>
Feedback-ID: ie8a146a7:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <68114 <at> debbugs.gnu.org>; Fri, 5 Jan 2024 16:43:43 -0500 (EST)
Resent-To: 68114 <at> debbugs.gnu.org
Resent-From: Steven Allen <steven@HIDDEN>
Resent-Date: Fri, 05 Jan 2024 13:43:42 -0800
Resent-Message-ID: <87wmsn8nht.fsf@HIDDEN>
From: Steven Allen <steven@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
In-Reply-To: <837ckw5gug.fsf@HIDDEN>
References: <87r0j42353.fsf@HIDDEN> <83a5ps6a5e.fsf@HIDDEN>
 <87r0j491mx.fsf@HIDDEN> <837ckw5gug.fsf@HIDDEN>
Date: Sat, 30 Dec 2023 08:37:48 -0800
Message-ID: <87r0j3hcir.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 68114
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain


Ah, I responded to the previous message before seeing this one.

> Please mention the bug number, since it is now known, in the log
> message.

Done.

> Two spaces between sentences, please.

Fixed in the first revision (d4a07757).

> Btw, what is "the 'name' of a piece of advice"?  I realize that this
> text was there to begin with, but I don't think I understand what it
> wants to tell me, so maybe we could clarify that.  The only reference
> to a "name" in the preceding text uses "name" to mean a symbol, but
> then what is "the name of a piece of advice"?  I guess this goes back
> to define-advice, which says:
>
>   @defmac define-advice symbol (where lambda-list &optional name depth) &rest body
>   This macro defines a piece of advice and adds it to the function named
>   @var{symbol}.  The advice is an anonymous function if @var{name} is
>   @code{nil} or a function named @code{symbol@@name}.  See
>   @code{advice-add} for explanation of other arguments.
>
> which is also a bit mysterious.  Does NAME used here serve as "the
> name of the piece of advice"? if so, should "@code{symbol@@name}" be
> "@code{symbol@@@var{name}}" instead, i.e. "name" is not a literal
> string but the reference to NAME?

So, those two names are actually different. The 'name' in referenced in
the `advice-remove` documentation is the 'name in the advice's 'props'
alist. The 'name' specified in `define-advice` is _not_ added to this
alist and is only used in the advice's function name.

I'm happy to resolve this in a separate patch, if that's OK with you.
Something like (`define-advice` documentation):

    Note if NAME is nil the advice is anonymous; otherwise the advice
    function is named `SYMBOL@NAME' and the advice is named NAME.

Then actually add NAME to the properties.

> I wonder whether "Remove advice from function: " would be a better
> prompt.

Good point, done!

> And here I wonder whether "Advice to remove: " would be a better
> prompt.

Also done.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment

From c9dbd06fd6484227e46361e39c29798750d2470e Mon Sep 17 00:00:00 2001
From: Steven Allen <steven@HIDDEN>
Date: Fri, 29 Dec 2023 09:53:05 -0800
Subject: [PATCH] Make 'advice-remove' interactive

`ad-advice-remove' is already interactive, but it doesn't work with
new-style advice.

* lisp/emacs-lisp/nadvice.el (advice-remove): Make it
interactive (Bug#67926).

* doc/lispref/functions.texi (Advising Named Functions): Document that
'advice-remove' is now an interactive command.
---
 doc/lispref/functions.texi |  8 +++++---
 etc/NEWS                   |  4 ++++
 lisp/emacs-lisp/nadvice.el | 26 ++++++++++++++++++++++++++
 3 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index d0c8f3e90e8..6f5c1a997e2 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -2077,10 +2077,12 @@ Advising Named Functions
 (@pxref{Core Advising Primitives}).
 @end defun
 
-@defun advice-remove symbol function
+@deffn Command advice-remove symbol function
 Remove the advice @var{function} from the named function @var{symbol}.
-@var{function} can also be the @code{name} of a piece of advice.
-@end defun
+@var{function} can also be the @code{name} of a piece of advice.  When
+called interactively, prompt for both an advised @var{function} and
+the advice to remove.
+@end deffn
 
 @defun advice-member-p function symbol
 Return non-@code{nil} if the advice @var{function} is already in the named
diff --git a/etc/NEWS b/etc/NEWS
index c002ec33d45..553365fc7a4 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -83,6 +83,10 @@ see the variable 'url-request-extra-headers'.
 
 * Changes in Emacs 30.1
 
+** 'advice-remove' is now an interactive command.
+When called interactively, 'advice-remove' now prompts for an advised
+function to the advice to remove.
+
 ** Emacs now supports Unicode Standard version 15.1.
 
 ** Network Security Manager
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
index 9f2b42f5765..b1d314c0796 100644
--- a/lisp/emacs-lisp/nadvice.el
+++ b/lisp/emacs-lisp/nadvice.el
@@ -539,6 +539,32 @@ advice-remove
 or an autoload and it preserves `fboundp'.
 Instead of the actual function to remove, FUNCTION can also be the `name'
 of the piece of advice."
+  (interactive
+   (let* ((pred (lambda (sym) (advice--p (advice--symbol-function sym))))
+          (default (when-let* ((f (function-called-at-point))
+                               ((funcall pred f)))
+                     (symbol-name f)))
+          (prompt (format-prompt "Remove advice from function" default))
+          (symbol (intern (completing-read prompt obarray pred t nil nil default)))
+          advices)
+     (advice-mapc (lambda (f p)
+                    (let ((k (or (alist-get 'name p) f)))
+                      (push (cons
+                             ;; "name" (string) and 'name (symbol) are
+                             ;; considered different names so we use
+                             ;; `prin1-to-string' even if the name is
+                             ;; a string to distinguish between these
+                             ;; two cases.
+                             (prin1-to-string k)
+                             ;; We use `k' here instead of `f' because
+                             ;; the same advice can have multiple
+                             ;; names.
+                             k)
+                            advices)))
+                  symbol)
+     (list symbol (cdr (assoc-string
+                        (completing-read "Advice to remove: " advices nil t)
+                        advices)))))
   (let ((f (symbol-function symbol)))
     (remove-function (cond ;This is `advice--symbol-function' but as a "place".
                       ((get symbol 'advice--pending)
-- 
2.43.0


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 30 Dec 2023 16:22:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 30 11:22:18 2023
Received: from localhost ([127.0.0.1]:44918 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rJc6L-0007dp-OC
	for submit <at> debbugs.gnu.org; Sat, 30 Dec 2023 11:22:18 -0500
Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:53815)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <steven@HIDDEN>) id 1rJc6I-0007db-R8
 for 68114 <at> debbugs.gnu.org; Sat, 30 Dec 2023 11:22:16 -0500
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44])
 by mailout.west.internal (Postfix) with ESMTP id 00CF232004AE;
 Sat, 30 Dec 2023 11:22:07 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute4.internal (MEProxy); Sat, 30 Dec 2023 11:22:08 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com;
 h=cc:cc:content-type:content-type:date:date:from:from
 :in-reply-to:in-reply-to:message-id:mime-version:references
 :reply-to:subject:subject:to:to; s=fm1; t=1703953327; x=
 1704039727; bh=2PI0HRtaRk5R5+ywNO46h1/LuuajwBAvyBFraOdYUMs=; b=I
 octfKF5UJZmCzFVUiSxPmBvLuoEo96x5M0o5wt6AD38ktcd9c3fbGrhsTDyz7NVN
 WDCC53b8myHEFYRW7RW+i12KyFWUfnIcMEwzEG3H2JB0CRwNr/r/mmtGVBlGvgb1
 WbbzXDGRy25/BFWOlscrWSI5ecNoR17nhAB52Xm2T+Pcu9lvrAGtmFTn7ZwUdMOA
 9iXsxEDXUjzcuEy41M73HKfDTtJnLgfHTqPgp9u1uswTL+Zo8nvSAqh0umUbc9M8
 RvEnf9wD9cj4v81HNevjWXCFoq2yng6HLnBjcoSkddSVIUcCpkgttiIC/xfhEjeL
 V5VuJCvTfFQndtM2sTlhQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm2; t=1703953327; x=1704039727; bh=2PI0HRtaRk5R5+ywNO46h1/Luuaj
 wBAvyBFraOdYUMs=; b=3UhIlQ47oHZxReVgH5gBcE09cCkpHEWfSxuusvXovHYI
 KPZjlpMCTvecRBJcqaVvKa/mo+uIKgqKLway/ystMuY4HVbf29JtpmbJAcPi9a/9
 ltXd1MfDlHaD7+rXpuv6iBLZZA2B5BFKIX8l3tn0OW0s4oZZ5KvBWUZ5YzclpKy4
 ji8chILC2XIC/h7Ns+/Zh+WXthtILn5pnR64uiheC4K05mBVEMGThngt51XkfGbo
 vVJXs8z42mynSL1igK3KrO6zfb4xCLzscDUbVhZuHFycg25Lds85Ek9hOM9E33J/
 j6+GhdP0US5n1KBSl027pzAH/U/0hC+ZhaHbeWwPqQ==
X-ME-Sender: <xms:r0OQZbQdH8AnacOhcYnRGCixdrASymMlSeCXUjNlSG_yQdR49MdM0w>
 <xme:r0OQZcx51YOJPsmjnqSw87Cc8-HufsQc41UQ7YR_G2a2eJbkq6MYipPDcbBKz3_Kc
 T0yF0FH_tysv56EGK4>
X-ME-Received: <xmr:r0OQZQ18whTGQjcQDHkDdGkVryEaAHM-LWt75ZWekmov7VFCVhPd5Mv6Fgnk8fUDvJjzT-HhDBMxk42IlMuY-ByaXctoUQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdefhedgkeejucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhephffvvefujghffffkgggtsehmtderredttddtnecuhfhrohhmpefuthgvvhgv
 nhcutehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomheqnecuggftrf
 grthhtvghrnhepjedufedvieejueektddtgedugeffveejheehieeulefgfffhleffheef
 vefhvdegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh
 epshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhm
X-ME-Proxy: <xmx:r0OQZbDrIXm9Y52RtmeYNzxWcvVrGABv8RMdBF9LhkaZ4JCzIKrAkA>
 <xmx:r0OQZUg-tS8NCVqYbAN_EoZA7yQiZh0xNhNnR19CpNpLAfT57nLd4g>
 <xmx:r0OQZfrQZoF0Eu87DS2dfbVHN28g9IqYsJ4dQf5F8lBLU1NnO04DNg>
 <xmx:r0OQZQa9iCqgU8y_rjkzTohXWUosIFriUUqOUEQTysyZ9DPO8T7-Eg>
Feedback-ID: ie8a146a7:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 30 Dec 2023 11:22:06 -0500 (EST)
From: Steven Allen <steven@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
In-Reply-To: <jwv7ckwcmnv.fsf-monnier+emacs@HIDDEN>
References: <87r0j42353.fsf@HIDDEN> <83a5ps6a5e.fsf@HIDDEN>
 <87r0j491mx.fsf@HIDDEN> <jwv7ckwcmnv.fsf-monnier+emacs@HIDDEN>
Date: Sat, 30 Dec 2023 08:22:04 -0800
Message-ID: <87ttnzhd8z.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 68114
Cc: Eli Zaretskii <eliz@HIDDEN>, 68114 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain


> You should include the default in the prompt using `format-prompt`.
>
>> +     (advice-mapc (lambda (f _) (push (cons (prin1-to-string f) f) advice)) symbol)

Fixed. I also:

- Broke the large `completing-read` call into multiple let bindings.
- Made sure that the default value was actually advised before
  suggesting it.

> The var name `advice` suggests it holds a single piece of advice.
> I'd call it `advices` instead.

Fixed

> Also, some advice's functions are lambda expressions (i.e. closures)
> which can be rather ugly/unwieldy when printed.  When code expects to
> remove them, we usually provide a `name` property for them, so I suggest
> that you use something like

Fixed, although I noticed a few oddities (commented in the code to avoid
confusing future readers).

Basically

1. 'name' can be either a string or a symbol, but they're not considered
the same name.
2. The same advice can be applied multiple times with different names,
so I changed the code to select the advice's 'name' instead of the
advice itself, if named.

> I suspect you want to `require-match` in the `completing-read` call.

Fixed.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment

From 130adbe7542304b2fa5dd23c23d66c275cd5bcb1 Mon Sep 17 00:00:00 2001
From: Steven Allen <steven@HIDDEN>
Date: Fri, 29 Dec 2023 09:53:05 -0800
Subject: [PATCH] Make 'advice-remove' interactive

`ad-advice-remove' is already interactive, but it doesn't work with
new-style advice.

* lisp/emacs-lisp/nadvice.el (advice-remove): Make it interactive.
* doc/lispref/functions.texi (Advising Named Functions): Document that
'advice-remove' is now an interactive command.
---
 doc/lispref/functions.texi |  8 +++++---
 etc/NEWS                   |  4 ++++
 lisp/emacs-lisp/nadvice.el | 24 ++++++++++++++++++++++++
 3 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index d0c8f3e90e8..6f5c1a997e2 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -2077,10 +2077,12 @@ Advising Named Functions
 (@pxref{Core Advising Primitives}).
 @end defun
 
-@defun advice-remove symbol function
+@deffn Command advice-remove symbol function
 Remove the advice @var{function} from the named function @var{symbol}.
-@var{function} can also be the @code{name} of a piece of advice.
-@end defun
+@var{function} can also be the @code{name} of a piece of advice.  When
+called interactively, prompt for both an advised @var{function} and
+the advice to remove.
+@end deffn
 
 @defun advice-member-p function symbol
 Return non-@code{nil} if the advice @var{function} is already in the named
diff --git a/etc/NEWS b/etc/NEWS
index c002ec33d45..553365fc7a4 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -83,6 +83,10 @@ see the variable 'url-request-extra-headers'.
 
 * Changes in Emacs 30.1
 
+** 'advice-remove' is now an interactive command.
+When called interactively, 'advice-remove' now prompts for an advised
+function to the advice to remove.
+
 ** Emacs now supports Unicode Standard version 15.1.
 
 ** Network Security Manager
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
index 9f2b42f5765..f2fa5f34ef8 100644
--- a/lisp/emacs-lisp/nadvice.el
+++ b/lisp/emacs-lisp/nadvice.el
@@ -539,6 +539,30 @@ advice-remove
 or an autoload and it preserves `fboundp'.
 Instead of the actual function to remove, FUNCTION can also be the `name'
 of the piece of advice."
+  (interactive
+   (let* ((pred (lambda (sym) (advice--p (advice--symbol-function sym))))
+          (default (when-let* ((f (function-called-at-point))
+                               ((funcall pred f)))
+                     (symbol-name f)))
+          (prompt (format-prompt "Advised Function" default))
+          (symbol (intern (completing-read prompt obarray pred t nil nil default)))
+          advices)
+     (advice-mapc (lambda (f p)
+                    (let ((k (or (alist-get 'name p) f)))
+                      (push (cons
+                             ;; "name" (string) and 'name (symbol) are
+                             ;; considered different names so we use
+                             ;; `prin1-to-string' even if the name is
+                             ;; a string to distinguish between these
+                             ;; two cases.
+                             (prin1-to-string k)
+                             ;; We use `k' here instead of `f' because
+                             ;; the same advice can have multiple
+                             ;; names.
+                             k)
+                            advices)))
+                  symbol)
+     (list symbol (cdr (assoc-string (completing-read "Advice: " advices nil t) advices)))))
   (let ((f (symbol-function symbol)))
     (remove-function (cond ;This is `advice--symbol-function' but as a "place".
                       ((get symbol 'advice--pending)
-- 
2.43.0


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 30 Dec 2023 06:45:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 30 01:45:30 2023
Received: from localhost ([127.0.0.1]:42892 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rJT6A-0000zB-9d
	for submit <at> debbugs.gnu.org; Sat, 30 Dec 2023 01:45:30 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:60354)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1rJT68-0000lG-1w
 for 68114 <at> debbugs.gnu.org; Sat, 30 Dec 2023 01:45:28 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1rJT62-0008Sm-9m; Sat, 30 Dec 2023 01:45:22 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=eXnLyI0rA+UinV+/nR6NvIad36u41Oaa5guAQt6nAik=; b=cWbBxjh/FFne
 sVfd20A41A4ZHvfVz4zCKubf6OXQO791xIRGzZNkGCMIRhFEuiwoCYj1S6L6RDWonrg4OMmeTKo28
 C4nQSrQ0RIuAAiTXa9H5LWsTT+IWkafOaHP21DNZYnHLfIQ8BCMN7ITp5ah/h4ZjsHfa56Trm0NYU
 UeYtX5xTBHNYDKnNAI/VPbgtf8aoapFCf4lZdWi9tVf0RfrUNDTw+aqblIZjrH46tWb4cpp8XJOs8
 t2bqDqEm6mQj+5Q/WDrt9rX+Ajhm/VZzVDo4ZnrBaZGyzswS7T0HD7s9uedy07AiJ88YNqyfDR2RR
 MaMh6SJ8tYfUmGw7/PWPtw==;
Date: Sat, 30 Dec 2023 08:45:11 +0200
Message-Id: <837ckw5gug.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Steven Allen <steven@HIDDEN>
In-Reply-To: <87r0j491mx.fsf@HIDDEN> (message from Steven Allen on Fri, 
 29 Dec 2023 12:47:50 -0800)
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
References: <87r0j42353.fsf@HIDDEN> <83a5ps6a5e.fsf@HIDDEN>
 <87r0j491mx.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 68114
Cc: monnier@HIDDEN, 68114 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Steven Allen <steven@HIDDEN>
> Cc: 68114 <at> debbugs.gnu.org
> Date: Fri, 29 Dec 2023 12:47:50 -0800
> 
> Thanks for the quick feedback. I've attached an updated patch with a
> NEWS and update and some documentation. Let me know if there's a better
> place to document this of if I made a mistake somewhere.

Thanks, a few minor comments while we wait for Stefan to chime in.

> `ad-advice-remove' is already interactive, but it doesn't work with
> new-style advice.
> 
> * lisp/emacs-lisp/nadvice.el (advice-remove): Make it interactive.
> * doc/lispref/functions.texi (Advising Named Functions): Document that
> 'advice-remove' is now an interactive command.

Please mention the bug number, since it is now known, in the log
message.

> -@defun advice-remove symbol function
> +@deffn Command advice-remove symbol function
>  Remove the advice @var{function} from the named function @var{symbol}.
> -@var{function} can also be the @code{name} of a piece of advice.
> -@end defun
> +@var{function} can also be the @code{name} of a piece of advice. When
                                                                  ^^
Two spaces between sentences, please.

Btw, what is "the 'name' of a piece of advice"?  I realize that this
text was there to begin with, but I don't think I understand what it
wants to tell me, so maybe we could clarify that.  The only reference
to a "name" in the preceding text uses "name" to mean a symbol, but
then what is "the name of a piece of advice"?  I guess this goes back
to define-advice, which says:

  @defmac define-advice symbol (where lambda-list &optional name depth) &rest body
  This macro defines a piece of advice and adds it to the function named
  @var{symbol}.  The advice is an anonymous function if @var{name} is
  @code{nil} or a function named @code{symbol@@name}.  See
  @code{advice-add} for explanation of other arguments.

which is also a bit mysterious.  Does NAME used here serve as "the
name of the piece of advice"? if so, should "@code{symbol@@name}" be
"@code{symbol@@@var{name}}" instead, i.e. "name" is not a literal
string but the reference to NAME?

> --- a/lisp/emacs-lisp/nadvice.el
> +++ b/lisp/emacs-lisp/nadvice.el
> @@ -539,6 +539,16 @@ advice-remove
>  or an autoload and it preserves `fboundp'.
>  Instead of the actual function to remove, FUNCTION can also be the `name'
>  of the piece of advice."
> +  (interactive
> +   (let ((symbol (intern (completing-read
> +                           "Advised Function: "

I wonder whether "Remove advice from function: " would be a better
prompt.

> +                           obarray
> +                           (lambda (sym) (advice--p (advice--symbol-function sym)))
> +                           t nil nil
> +                           (when-let (def (function-called-at-point)) (symbol-name def)))))
> +          advice)
> +     (advice-mapc (lambda (f _) (push (cons (prin1-to-string f) f) advice)) symbol)
> +     (list symbol (cdr (assoc-string (completing-read "Advice: " advice) advice)))))

And here I wonder whether "Advice to remove: " would be a better
prompt.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 30 Dec 2023 05:06:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 30 00:06:42 2023
Received: from localhost ([127.0.0.1]:42808 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rJRYY-0006h5-9e
	for submit <at> debbugs.gnu.org; Sat, 30 Dec 2023 00:06:42 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:32542)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1rJRYV-0006gr-SY
 for 68114 <at> debbugs.gnu.org; Sat, 30 Dec 2023 00:06:40 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id BEA854402A5;
 Sat, 30 Dec 2023 00:06:33 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1703912792;
 bh=AJH4+Bi+rjrzDu/GWwkoa3Z6D4mO/OyZ8abUhdpftrc=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=ZOY/ET/x4vB7d31+FGRBNqq6rX+0IEO7o/C7cKCTBtyhP/DnmK2DOFxL6vibUj1Nn
 1bKvMXkCNEnwSTnenp//wSwZWmgjFFqWhflJWfihaK3nVfQV33pVqskyxfQKw/M3ZN
 vUZpc7TyRo7m4v99HRLHhQJoVX9JW4hOUnY1oCOZyA19anTwxrzgF0pBBVYKnBM8Od
 29ulRlkb2vF3N/WC9tUhTQHJo3TQXZM07CvK128ZCkASkkZcKTvkvOtIzte0Khr2eE
 8I4qWRGlnj4Nhn4TFV5AZH1Dd03Spy1CvEAGevvnplCzquPGRUhXRvK59fUUMF9blF
 nyYOGylZMZp6w==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 5D30144014C;
 Sat, 30 Dec 2023 00:06:32 -0500 (EST)
Received: from pastel (65-110-221-238.cpe.pppoe.ca [65.110.221.238])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 344611211D5;
 Sat, 30 Dec 2023 00:06:32 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Steven Allen <steven@HIDDEN>
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
In-Reply-To: <87r0j491mx.fsf@HIDDEN> (Steven Allen's message of "Fri,
 29 Dec 2023 12:47:50 -0800")
Message-ID: <jwv7ckwcmnv.fsf-monnier+emacs@HIDDEN>
References: <87r0j42353.fsf@HIDDEN> <83a5ps6a5e.fsf@HIDDEN>
 <87r0j491mx.fsf@HIDDEN>
Date: Sat, 30 Dec 2023 00:06:31 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.213 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain T_SCC_BODY_TEXT_LINE    -0.01 -
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 68114
Cc: Eli Zaretskii <eliz@HIDDEN>, 68114 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> --- a/lisp/emacs-lisp/nadvice.el
> +++ b/lisp/emacs-lisp/nadvice.el
> @@ -539,6 +539,16 @@ advice-remove
>  or an autoload and it preserves `fboundp'.
>  Instead of the actual function to remove, FUNCTION can also be the `name'
>  of the piece of advice."
> +  (interactive
> +   (let ((symbol (intern (completing-read
> +                           "Advised Function: "
> +                           obarray
> +                           (lambda (sym) (advice--p (advice--symbol-function sym)))
> +                           t nil nil
> +                           (when-let (def (function-called-at-point)) (symbol-name def)))))
> +          advice)

You should include the default in the prompt using `format-prompt`.

> +     (advice-mapc (lambda (f _) (push (cons (prin1-to-string f) f) advice)) symbol)

The var name `advice` suggests it holds a single piece of advice.
I'd call it `advices` instead.

Also, some advice's functions are lambda expressions (i.e. closures)
which can be rather ugly/unwieldy when printed.  When code expects to
remove them, we usually provide a `name` property for them, so I suggest
that you use something like

    (lambda (f p)
       (let ((k (or (alist-get 'name p) f)))
         (push (cons (prin1-to-string k) k) advices)))

> +     (list symbol (cdr (assoc-string (completing-read "Advice: " advice) advice)))))

I suspect you want to `require-match` in the `completing-read` call.


        Stefan





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 29 Dec 2023 22:44:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 29 17:44:08 2023
Received: from localhost ([127.0.0.1]:42456 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rJLaK-0004lK-E0
	for submit <at> debbugs.gnu.org; Fri, 29 Dec 2023 17:44:08 -0500
Received: from out4-smtp.messagingengine.com ([66.111.4.28]:33055)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <steven@HIDDEN>) id 1rJLaJ-0004l7-Fq
 for 68114 <at> debbugs.gnu.org; Fri, 29 Dec 2023 17:44:08 -0500
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailout.nyi.internal (Postfix) with ESMTP id 326F15C00B5;
 Fri, 29 Dec 2023 17:44:02 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163])
 by compute5.internal (MEProxy); Fri, 29 Dec 2023 17:44:02 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com;
 h=cc:cc:content-type:content-type:date:date:from:from
 :in-reply-to:in-reply-to:message-id:mime-version:references
 :reply-to:subject:subject:to:to; s=fm1; t=1703889842; x=
 1703976242; bh=OL+b1kQac335pXt8TlfsvUhlI+HlLer2ltH2e/eLUVU=; b=g
 yhE3O5gRpEoJUReybA/LTYVZ9h7kOAsEJHge6mYeKT/ZtwAQzVF8ez2HntN0ek6T
 xbtcWt0iQyDJevqEr9pWgWV+ALSNobvEm/30VT3aqIjkpdEJLuAJx343AxC//z0E
 QvBQRhJAJcrhacMfKsX/kU87tghjxM/HaW8BV1R443vsopK622o9WKh7/TMumFsg
 t8vyFfUHTnmTgtukvC+k6t2lFzTNZxattKZ45wN7YQZjyEDIx4idGYOB13OJyb8U
 nH/KcuofhSOYEN3PEsRQf8IEuO3YL/02uPBdZd7X/OtbOvv8/S/2N3NsQu42eosZ
 Sbm0rbMnu8kzO3MBVHP6A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm2; t=1703889842; x=1703976242; bh=OL+b1kQac335pXt8TlfsvUhlI+Hl
 Ler2ltH2e/eLUVU=; b=zS8EQVS1AQQFmct4/iVIckCqWxnoLTGzk9jczbnc7RTW
 R+TNyrf168xHH9DR6Z4Vkc79thfzKd9zs/pUislbrPs+Tn54X+W5kJz9yotG7q/o
 zh+bPDPplCiEgIjsxgriscDMFFd7shm3o4VjKssViZIouXtoj6RrOmURJtlTZ3RL
 JObUfWe1mec8+nLXSw3jlMRt2KeRnLk9PLbULmFqwpQ8JNq6RP/WivHTW/xe6Eln
 AQkSObdbOsfMBNVZ+gr3QM/RaiOF78wyGhlthFp1pypkMMZZxn+dyGt4LWIl0/5g
 XRIMQLTSainMWK56Vflm24Lw6+YhEFfm9X1vjkeLZA==
X-ME-Sender: <xms:sUuPZePp587x43nz_kNMc9stQb5X7tvpbi3ezEaqyKH5TANKNnFSQQ>
 <xme:sUuPZc-jGjQdHQ9wZvt27xhj7ffgTrNdAF_9ftFtm-F2NMbiOSk3SBSfm5jwbKchV
 lbK2GVPiVrBfFwYA5c>
X-ME-Received: <xmr:sUuPZVQRuJotAF6UHZq2Fb0VOR8MpN8pNw9MZrantW_jp1VYuVoUeItyeayfiFrqCCoRUTyLdamYQ2_KNAoVVyIHje436A>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdefgedgtdefucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhephffvvefujghffffkgggtsehmtderredttddtnecuhfhrohhmpefuthgvvhgv
 nhcutehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomheqnecuggftrf
 grthhtvghrnhepjedufedvieejueektddtgedugeffveejheehieeulefgfffhleffheef
 vefhvdegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh
 epshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhm
X-ME-Proxy: <xmx:sUuPZetERFbYKwhF3LEtYGLl_O03WqJ8BeAvA3e6PnceEu8cDRiNYg>
 <xmx:sUuPZWc-5J_VLGcE0GVfPYLc-mbagpgzmyBnY2FPaqQ3_U3mnnZTKg>
 <xmx:sUuPZS24GX4XQcZXBBAQEFQHBb1EOSvNMkiqbb5KkhwM23oQHdJNLg>
 <xmx:skuPZXoR3BkTD5x8V73VT-wb2ClJ_LvABwgh82QnqS-uLplZc6SySA>
Feedback-ID: ie8a146a7:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 29 Dec 2023 17:44:01 -0500 (EST)
From: Steven Allen <steven@HIDDEN>
To: Stefan Kangas <stefankangas@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
In-Reply-To: <CADwFkm=pz-m-OCuqSw8g=ZM2+55CiWJC_rG98ocQ5Chs8NrfUg@HIDDEN>
References: <87r0j42353.fsf@HIDDEN> <83a5ps6a5e.fsf@HIDDEN>
 <87r0j491mx.fsf@HIDDEN>
 <CADwFkm=pz-m-OCuqSw8g=ZM2+55CiWJC_rG98ocQ5Chs8NrfUg@HIDDEN>
Date: Fri, 29 Dec 2023 14:43:59 -0800
Message-ID: <87wmswoci8.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 68114
Cc: 68114 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain


Fair points, fixed.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment

From d4a07757aea1b5618c7ee629c89ae060a285a523 Mon Sep 17 00:00:00 2001
From: Steven Allen <steven@HIDDEN>
Date: Fri, 29 Dec 2023 09:53:05 -0800
Subject: [PATCH] Make 'advice-remove' interactive

`ad-advice-remove' is already interactive, but it doesn't work with
new-style advice.

* lisp/emacs-lisp/nadvice.el (advice-remove): Make it interactive.
* doc/lispref/functions.texi (Advising Named Functions): Document that
'advice-remove' is now an interactive command.
---
 doc/lispref/functions.texi |  8 +++++---
 etc/NEWS                   |  4 ++++
 lisp/emacs-lisp/nadvice.el | 10 ++++++++++
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index d0c8f3e90e8..6f5c1a997e2 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -2077,10 +2077,12 @@ Advising Named Functions
 (@pxref{Core Advising Primitives}).
 @end defun
 
-@defun advice-remove symbol function
+@deffn Command advice-remove symbol function
 Remove the advice @var{function} from the named function @var{symbol}.
-@var{function} can also be the @code{name} of a piece of advice.
-@end defun
+@var{function} can also be the @code{name} of a piece of advice.  When
+called interactively, prompt for both an advised @var{function} and
+the advice to remove.
+@end deffn
 
 @defun advice-member-p function symbol
 Return non-@code{nil} if the advice @var{function} is already in the named
diff --git a/etc/NEWS b/etc/NEWS
index c002ec33d45..553365fc7a4 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -83,6 +83,10 @@ see the variable 'url-request-extra-headers'.
 
 * Changes in Emacs 30.1
 
+** 'advice-remove' is now an interactive command.
+When called interactively, 'advice-remove' now prompts for an advised
+function to the advice to remove.
+
 ** Emacs now supports Unicode Standard version 15.1.
 
 ** Network Security Manager
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
index 9f2b42f5765..32e54b3dd02 100644
--- a/lisp/emacs-lisp/nadvice.el
+++ b/lisp/emacs-lisp/nadvice.el
@@ -539,6 +539,16 @@ advice-remove
 or an autoload and it preserves `fboundp'.
 Instead of the actual function to remove, FUNCTION can also be the `name'
 of the piece of advice."
+  (interactive
+   (let ((symbol (intern (completing-read
+                           "Advised Function: "
+                           obarray
+                           (lambda (sym) (advice--p (advice--symbol-function sym)))
+                           t nil nil
+                           (when-let (def (function-called-at-point)) (symbol-name def)))))
+          advice)
+     (advice-mapc (lambda (f _) (push (cons (prin1-to-string f) f) advice)) symbol)
+     (list symbol (cdr (assoc-string (completing-read "Advice: " advice) advice)))))
   (let ((f (symbol-function symbol)))
     (remove-function (cond ;This is `advice--symbol-function' but as a "place".
                       ((get symbol 'advice--pending)
-- 
2.43.0


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 29 Dec 2023 21:20:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 29 16:20:53 2023
Received: from localhost ([127.0.0.1]:42376 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rJKHk-0006Ue-VD
	for submit <at> debbugs.gnu.org; Fri, 29 Dec 2023 16:20:53 -0500
Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]:56664)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1rJKHi-0006UR-3g
 for 68114 <at> debbugs.gnu.org; Fri, 29 Dec 2023 16:20:51 -0500
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5555b8de81fso2756727a12.1
 for <68114 <at> debbugs.gnu.org>; Fri, 29 Dec 2023 13:20:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1703884844; x=1704489644; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=kA+5Dyo/c/kkLh5Ol19MX6CUmP59zDizVliTC2m0+oM=;
 b=OMMOhwx5EZ6Tho9Q6YWzq6i9uWb3L13HVpl8bbPcOXpE8uV77MtuaNhg4VI40gILWa
 yjjslYt/Vp28W0aG93k8Cs6Blw/cYeUyw4668r5DqlcfF8r1JQdKv77Bc3tbk+9rt0Io
 jzl/GpSX1X+9aUx+344ot9V+FZrzsKwrptRlWwYk/tpiNPnEqxX7h1P12dJNIqU5smlC
 b2w3LlPNNuu0xS5vJtnPQJNZ95G5/T+NtCTj/zA5+LmycV+9h9zkH4d+sOjcBlQ2LVul
 +Y0pBaKb2Stay4Zm374qrzgkKYkdAu+sqSxYG6tpJYGyGXCeKSF4TJTreMjdeSJQ+JUJ
 pztQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1703884844; x=1704489644;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=kA+5Dyo/c/kkLh5Ol19MX6CUmP59zDizVliTC2m0+oM=;
 b=ra5WBSPFa8dK7jS+5iQWqcZwBomoTiPLLnL47IokwMuMIiTHZyYRP4ECkrHSclwqAc
 9sRcPqw1kG6lfFOk2jHTq1odLyV8hXwzwbN/uchDOHaKkv5Hax08cSmZUzXIFUvsGAOq
 u2NXn0jeMlzxj4v+vTpoG2q4nJYlTDI6NqL6/EqUFkO8r7+MQ6COz/3glc3gyeMl2gn3
 9Ndgk5jxYWGc34p92cIbIHf5Mtrau18Ysw3u/H427hF//6ihFVOp4nlc0kVd2qexrmUI
 j8Yl35qo4VOIurI+FG9XcDqr0IfCJU7WeP1Rq6fZKFuzJHWvWW5BskQWVhe2qW+V8Zaj
 TQSQ==
X-Gm-Message-State: AOJu0YzN6h6NrCSw0+5zM+Gdxum1g1an6PXUhMQ7/5YwtZpT9Xd8jYnT
 2NUP+TNBdr9tAhEFbCVU0Ow8H6tI++1WZDFz12U=
X-Google-Smtp-Source: AGHT+IEYYLah5wmx9ElO6ZSe88MBt3tCgqdpQOqZ/nHsMh0gPvKKYoZoR8VAuGnQlUfxZSG6iQKVrXJxCL1pM5kRoYo=
X-Received: by 2002:a50:9b53:0:b0:553:b950:f9d4 with SMTP id
 a19-20020a509b53000000b00553b950f9d4mr6215020edj.80.1703884843987; Fri, 29
 Dec 2023 13:20:43 -0800 (PST)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Fri, 29 Dec 2023 13:20:43 -0800
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <87r0j491mx.fsf@HIDDEN>
References: <87r0j42353.fsf@HIDDEN> <83a5ps6a5e.fsf@HIDDEN>
 <87r0j491mx.fsf@HIDDEN>
MIME-Version: 1.0
Date: Fri, 29 Dec 2023 13:20:43 -0800
Message-ID: <CADwFkm=pz-m-OCuqSw8g=ZM2+55CiWJC_rG98ocQ5Chs8NrfUg@HIDDEN>
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
To: Steven Allen <steven@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 
 Stefan Monnier <monnier@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 68114
Cc: 68114 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Steven Allen <steven@HIDDEN> writes:

> --- a/doc/lispref/functions.texi
> +++ b/doc/lispref/functions.texi
> @@ -2077,10 +2077,12 @@ Advising Named Functions
>  (@pxref{Core Advising Primitives}).
>  @end defun
>
> -@defun advice-remove symbol function
> +@deffn Command advice-remove symbol function
>  Remove the advice @var{function} from the named function @var{symbol}.
> -@var{function} can also be the @code{name} of a piece of advice.
> -@end defun
> +@var{function} can also be the @code{name} of a piece of advice. When
                                                                  ^^

Our coding standards mandates two spaces between sentences.

> +called interactively, prompt for both an advised @var{function} and
> +the advice to remove.
> +@end deffn


> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -1362,6 +1362,10 @@ values.
>  * Lisp Changes in Emacs 30.1
>
>  +++
> +** 'advice-remove' is now an interactive command.
> +When called interactively, 'advice-remove' now prompts for an advised
> +function to the advice to remove.

Doesn't this change belong under "Changes" rather than "Lisp Changes"?

It shouldn't change anything from the point of view of Lisp libraries.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 29 Dec 2023 20:48:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 29 15:48:01 2023
Received: from localhost ([127.0.0.1]:42345 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rJJlw-0000UW-P4
	for submit <at> debbugs.gnu.org; Fri, 29 Dec 2023 15:48:01 -0500
Received: from out4-smtp.messagingengine.com ([66.111.4.28]:52239)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <steven@HIDDEN>) id 1rJJlu-0000Tk-KH
 for 68114 <at> debbugs.gnu.org; Fri, 29 Dec 2023 15:47:59 -0500
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47])
 by mailout.nyi.internal (Postfix) with ESMTP id 380085C02D4;
 Fri, 29 Dec 2023 15:47:53 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute6.internal (MEProxy); Fri, 29 Dec 2023 15:47:53 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com;
 h=cc:cc:content-type:content-type:date:date:from:from
 :in-reply-to:in-reply-to:message-id:mime-version:references
 :reply-to:subject:subject:to:to; s=fm1; t=1703882873; x=
 1703969273; bh=rq/wHt9sHHVchA5kDjp1cpHEg+X2ZOdmV/pzvqSCJPk=; b=N
 xNGmmgwq1YZeKtkcCxbE1bMXnTwE8bfzBs4ONnXS1RleuyBF7zzWtKkf+ahJ4ZfS
 V2cy7tbcKTxNHTLgzSg4kNYuITpCA3jZ55BXMwBtdgVpiP17UFfvJ/Mui+fT8xNA
 NBpP1iwPtW0p4WXVASLGg08OxNwTbRTfxEqKwzoSRiPykA6EsmYj8O+3sP1wzaUS
 +ICAKpACDEbAE1agH1OOSOP1yxh66XnmnglpjHhkB3EHG9ujMMwYDk3Lm2qAlliT
 5fLsSXOKQ+1AccRtGhzxezI1p+ZdlUT92WUvgA1ZI4gEeHjnq7dU8MiJ7q/o7P9U
 kDnUd4YbXB5NATKa6efqg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm2; t=1703882873; x=1703969273; bh=rq/wHt9sHHVchA5kDjp1cpHEg+X2
 ZOdmV/pzvqSCJPk=; b=p/i+IL6ttvUYoKM7J0cvugXH0xaxbqoal9ib0og8o3lR
 wI5ZFoOBw6fYA67omu3xwoATEA7HDsA/LjyqwbfovZmioYy8b0iE7HuIbu1opYwe
 qhxA1kOOwm47ch1uyl9lYR6znRDGC/y97mD4z2M/jmwqgvZCDk/eo91eV+AcAdZJ
 9gKigGvCY1CRzSNBCGTRYxvjB//m35OPuXYOtKW57oUBmcTEpQ2Fr2ykj2P4ZL10
 DDdOOHv/YW4JVUiiZ+8xuNJ0sY1HTsBvrzpvnCLwy5zpNgFchGKYkZoNstuB9ixA
 gJd3kuD/9i1fnJuzmCzW4ORdN6MEJJ1AjR+smbQhZw==
X-ME-Sender: <xms:eDCPZXNh64zT74rLr7CKY6L4yeTrBAIenOOYcAFopEdP5t1w7YQqug>
 <xme:eDCPZR_sv1HEZkcDN_ZNeWwHjqtuVp9VDyoYBSmWP1zQxx15rqM4GuAR8c9TNnAyH
 tmyi_jcvGKIGhVps_c>
X-ME-Received: <xmr:eDCPZWS7z8KAa4pLfTdLqrT4tLoKGZEUE3W4RV-Vs1PRNCIzIp6aR7NdDEZ-WuStLFQnIcNm0hPbJLkn_c1vI2F5iGFqsg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdeffedgudegudcutefuodetggdotefrod
 ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
 necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
 enucfjughrpefhvfevufgjfhffkfggtgesmhdtreertddttdenucfhrhhomhepufhtvghv
 vghnucetlhhlvghnuceoshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhmqeenucggtf
 frrghtthgvrhhnpeejudefvdeijeeukedttdegudegffevjeehheeiueelgfffhfelffeh
 feevhfdvgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh
 hmpehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomh
X-ME-Proxy: <xmx:eDCPZbsN4lHoqO0tA4MR7QMUwjCEnO-aQJDl3xcZn3ExMOPAFIxMSQ>
 <xmx:eDCPZfeePQR-NCDwJ4dtdhA6kPSqC_q1g15ooZzG5qDAYI5fdV7V0Q>
 <xmx:eDCPZX01qWmwL3luc_EL27-wtd_7qkcmp-tXnfse8LYN5RdsW0c-HA>
 <xmx:eTCPZXH1CDGNnqFF3aeSCEB7oqN7Xb-uxq9au8I2mSat-R9S_1cVRw>
Feedback-ID: ie8a146a7:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 29 Dec 2023 15:47:52 -0500 (EST)
From: Steven Allen <steven@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
In-Reply-To: <83a5ps6a5e.fsf@HIDDEN>
References: <87r0j42353.fsf@HIDDEN> <83a5ps6a5e.fsf@HIDDEN>
Date: Fri, 29 Dec 2023 12:47:50 -0800
Message-ID: <87r0j491mx.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 68114
Cc: 68114 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain


Thanks for the quick feedback. I've attached an updated patch with a
NEWS and update and some documentation. Let me know if there's a better
place to document this of if I made a mistake somewhere.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment

From e1c6ccbf22a80f9ec96a7034ef66d2d7b66e793b Mon Sep 17 00:00:00 2001
From: Steven Allen <steven@HIDDEN>
Date: Fri, 29 Dec 2023 09:53:05 -0800
Subject: [PATCH] Make 'advice-remove' interactive

`ad-advice-remove' is already interactive, but it doesn't work with
new-style advice.

* lisp/emacs-lisp/nadvice.el (advice-remove): Make it interactive.
* doc/lispref/functions.texi (Advising Named Functions): Document that
'advice-remove' is now an interactive command.
---
 doc/lispref/functions.texi |  8 +++++---
 etc/NEWS                   |  4 ++++
 lisp/emacs-lisp/nadvice.el | 10 ++++++++++
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index d0c8f3e90e8..30779cb7c72 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -2077,10 +2077,12 @@ Advising Named Functions
 (@pxref{Core Advising Primitives}).
 @end defun
 
-@defun advice-remove symbol function
+@deffn Command advice-remove symbol function
 Remove the advice @var{function} from the named function @var{symbol}.
-@var{function} can also be the @code{name} of a piece of advice.
-@end defun
+@var{function} can also be the @code{name} of a piece of advice. When
+called interactively, prompt for both an advised @var{function} and
+the advice to remove.
+@end deffn
 
 @defun advice-member-p function symbol
 Return non-@code{nil} if the advice @var{function} is already in the named
diff --git a/etc/NEWS b/etc/NEWS
index c002ec33d45..d4c0784e3f2 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1362,6 +1362,10 @@ values.
 * Lisp Changes in Emacs 30.1
 
 +++
+** 'advice-remove' is now an interactive command.
+When called interactively, 'advice-remove' now prompts for an advised
+function to the advice to remove.
+
 ** New 'pop-up-frames' action alist entry for 'display-buffer'.
 This has the same effect as the variable of the same name and takes
 precedence over the variable when present.
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
index 9f2b42f5765..32e54b3dd02 100644
--- a/lisp/emacs-lisp/nadvice.el
+++ b/lisp/emacs-lisp/nadvice.el
@@ -539,6 +539,16 @@ advice-remove
 or an autoload and it preserves `fboundp'.
 Instead of the actual function to remove, FUNCTION can also be the `name'
 of the piece of advice."
+  (interactive
+   (let ((symbol (intern (completing-read
+                           "Advised Function: "
+                           obarray
+                           (lambda (sym) (advice--p (advice--symbol-function sym)))
+                           t nil nil
+                           (when-let (def (function-called-at-point)) (symbol-name def)))))
+          advice)
+     (advice-mapc (lambda (f _) (push (cons (prin1-to-string f) f) advice)) symbol)
+     (list symbol (cdr (assoc-string (completing-read "Advice: " advice) advice)))))
   (let ((f (symbol-function symbol)))
     (remove-function (cond ;This is `advice--symbol-function' but as a "place".
                       ((get symbol 'advice--pending)
-- 
2.43.0


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at 68114 <at> debbugs.gnu.org:


Received: (at 68114) by debbugs.gnu.org; 29 Dec 2023 20:12:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 29 15:12:34 2023
Received: from localhost ([127.0.0.1]:42314 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rJJDd-0000Dl-Us
	for submit <at> debbugs.gnu.org; Fri, 29 Dec 2023 15:12:34 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:40440)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1rJJDb-0000DX-Gy
 for 68114 <at> debbugs.gnu.org; Fri, 29 Dec 2023 15:12:32 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1rJJDV-0004u1-Sh; Fri, 29 Dec 2023 15:12:25 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=xI1YwKIzXUcOVbsfahpQ0HuBE5gILeymA6KIKAmfQlo=; b=DNXFrnKYwl3N
 k0EEvpY20i2xIdewREi/4ZrmP7tm3xdXNmiMpAeXVFCSgn2JYPkQzyOw2NdPxBHc76BJ9N6qfTPnU
 IaDdhs4J+ceaJnSACC9LMMo3o9WUh2u7XixeLr+Sa9C0faH2EQU2/19xSqa3nMDsjBYZLcxcsA2M3
 cwPHzK2LOQ0ShqEkFbnhmovUeSsOERq7YIg4hRPzNlUU+KlvvB3VlwJxebY3xggTg5tiQAVTTuuwH
 1hMyDORT/me/tBQYCLyBKE3sHqlOOUKL0JLJHdDbh5xMtmY86PMQjnu+7msLKPDB0KgIB0GZmAEcm
 1ktT9aug7TKCLJ0BW4fvFg==;
Date: Fri, 29 Dec 2023 22:12:13 +0200
Message-Id: <83a5ps6a5e.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Steven Allen <steven@HIDDEN>,
 Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <87r0j42353.fsf@HIDDEN> (message from Steven Allen on Fri, 
 29 Dec 2023 11:57:12 -0800)
Subject: Re: bug#68114: [PATCH] Make 'advice-remove' interactive
References: <87r0j42353.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 68114
Cc: 68114 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Steven Allen <steven@HIDDEN>
> Date: Fri, 29 Dec 2023 11:57:12 -0800
> 
> This patch makes 'advice-remove' interactive to match
> 'ad-advice-remove'. Unlike 'ad-advice-remove', 'advice-remove' works
> with new-style advice as well.

Stefan, any comments?

In any case, this change needs a corresponding changes for
documentation and NEWS.

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 29 Dec 2023 19:57:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 29 14:57:25 2023
Received: from localhost ([127.0.0.1]:42279 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rJIyz-0005eE-15
	for submit <at> debbugs.gnu.org; Fri, 29 Dec 2023 14:57:25 -0500
Received: from lists.gnu.org ([2001:470:142::17]:49130)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <steven@HIDDEN>) id 1rJIyx-0005e0-9W
 for submit <at> debbugs.gnu.org; Fri, 29 Dec 2023 14:57:23 -0500
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 <steven@HIDDEN>)
 id 1rJIyr-00028g-HE
 for bug-gnu-emacs@HIDDEN; Fri, 29 Dec 2023 14:57:17 -0500
Received: from out4-smtp.messagingengine.com ([66.111.4.28])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <steven@HIDDEN>)
 id 1rJIyp-0006Xi-Pq
 for bug-gnu-emacs@HIDDEN; Fri, 29 Dec 2023 14:57:17 -0500
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
 by mailout.nyi.internal (Postfix) with ESMTP id 66C6E5C02A2
 for <bug-gnu-emacs@HIDDEN>; Fri, 29 Dec 2023 14:57:13 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute1.internal (MEProxy); Fri, 29 Dec 2023 14:57:13 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com;
 h=cc:content-type:content-type:date:date:from:from:in-reply-to
 :message-id:mime-version:reply-to:subject:subject:to:to; s=fm1;
 t=1703879833; x=1703966233; bh=UBaS2HmHX+H70wAN7gePV2kOoekIZrZr
 TQNtT6lTWck=; b=MAjYNMqtIz1omGz6BuzCI36jFfcnkCyZmCAn7GiuAT/ykUdq
 mBP1cdveZOPsUx8ciP/e7kx7AZI1KtIMWUUglOiAtHRIyKvEbCJGO54q+bHHUMPz
 kNPz7g1z4T/I2TuvaAFnSKg4QBl6RI/U9/G0X4qE5uj4ZBiKzvd+TVbdzM9uopGg
 I6zKTaGlxn456SdWuYvWVauP5G8dvzEgRLwbmt0g/RnzUBWIxsCILjnS5G1bgEWh
 qfX+9/lD6KB8ahcEJr0L5W8GmRuCCPigcfvT21aRm1UZR1OlGgdOqzitDJwI1dY3
 ejn7+gmofaTqYWN41+rIl/mc/JY+uUhAMoiLrw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:message-id
 :mime-version:reply-to:subject:subject:to:to:x-me-proxy
 :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=
 1703879833; x=1703966233; bh=UBaS2HmHX+H70wAN7gePV2kOoekIZrZrTQN
 tT6lTWck=; b=Uq1ojKfOyCbuJ7/Wdyp2DDsP2AIRe6PeyTH6YkxsW0ukRYbU6ir
 XCW53797F9BHZ+7RAZkYkFSpioIgxaq+/ukOQCYBIDk/oFPO2P+bsGFiY9JZAJu8
 8k7zqSx9LD778Z4aMmTAiSHTheU3cPQSBavJsqoROayPi9i+7Zwq8mfgPnIJeZQn
 c+guY3dJQ7opAuf0ZB/sOuE89B8y9ckfz26kq7qKrsHCZgo5oA2Ym+Izp0cEUsQ3
 D5k8T0uMrt1LZ7ybfGwwmMgtMRWdzkGnC/jNCj02csr20SzAWEk/rf4Jm0mwcfD6
 e0O2k8wlpcJbhwmjZv8ThSAeTlSf9h6VBDw==
X-ME-Sender: <xms:mSSPZcIH7bW9n3utM-C8cAbBTlqIUHDeEeEvoMYuKpHZT5j_hmbdFA>
 <xme:mSSPZcK1shUjZ0JpYIwFc0uMjE3FBJhiXOAV3owzK-NzecnSWBb6UVjuU9IkB_A81
 CUVcds9q7sUTn_Ak2k>
X-ME-Received: <xmr:mSSPZcsHnI70qHyuZKV7az9l3nRptO4DTYklrxaVVFLJzkq0fzpV1Vbc4KuqoOLQttycgknDcSjKIw5P6xCDilv44yQx6A>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdeffedgudeftdcutefuodetggdotefrod
 ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
 necuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkfggtgesmhdtreertd
 dttdenucfhrhhomhepufhtvghvvghnucetlhhlvghnuceoshhtvghvvghnsehsthgvsggr
 lhhivghnrdgtohhmqeenucggtffrrghtthgvrhhnpeekffffgfevteehtdeiffelffegke
 dvieeigeehfedtteejkeefhfevtddtkeefffenucevlhhushhtvghrufhiiigvpedtnecu
 rfgrrhgrmhepmhgrihhlfhhrohhmpehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomh
X-ME-Proxy: <xmx:mSSPZZYfd2VSu8M2pqZgEND8aRFfDScJur62mUm87H8Uihf7Jj5RGA>
 <xmx:mSSPZTb7pKj_wf4Qcc5oILT0BL6LrhFNVubacmQsoOn_W0GRLh0_2Q>
 <xmx:mSSPZVAWoPL-LTLPNnihAwcUU0EqMmlGQLdr_MHdDdTJjcVvDccCmA>
 <xmx:mSSPZd0eu_0ULModz0inTP-Lz0dFvj3XKK0ZtkzYyRI-S3F3ajwtnw>
Feedback-ID: ie8a146a7:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <bug-gnu-emacs@HIDDEN>; Fri, 29 Dec 2023 14:57:12 -0500 (EST)
From: Steven Allen <steven@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: [PATCH] Make 'advice-remove' interactive
Date: Fri, 29 Dec 2023 11:57:12 -0800
Message-ID: <87r0j42353.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Received-SPF: pass client-ip=66.111.4.28; envelope-from=steven@HIDDEN;
 helo=out4-smtp.messagingengine.com
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 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,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.6 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.4 (/)

--=-=-=
Content-Type: text/plain


This patch makes 'advice-remove' interactive to match
'ad-advice-remove'. Unlike 'ad-advice-remove', 'advice-remove' works
with new-style advice as well.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0001-Make-advice-remove-interactive.patch

From 41de95097d3e79967f4fbb417aba424e8ffce058 Mon Sep 17 00:00:00 2001
From: Steven Allen <steven@HIDDEN>
Date: Fri, 29 Dec 2023 09:53:05 -0800
Subject: [PATCH] Make 'advice-remove' interactive

`ad-advice-remove' is already interactive, but it doesn't work with
new-style advice.

* lisp/emacs-lisp/nadvice.el (advice-remove): Make it interactive.
---
 lisp/emacs-lisp/nadvice.el | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
index 9f2b42f5765..32e54b3dd02 100644
--- a/lisp/emacs-lisp/nadvice.el
+++ b/lisp/emacs-lisp/nadvice.el
@@ -539,6 +539,16 @@ advice-remove
 or an autoload and it preserves `fboundp'.
 Instead of the actual function to remove, FUNCTION can also be the `name'
 of the piece of advice."
+  (interactive
+   (let ((symbol (intern (completing-read
+                           "Advised Function: "
+                           obarray
+                           (lambda (sym) (advice--p (advice--symbol-function sym)))
+                           t nil nil
+                           (when-let (def (function-called-at-point)) (symbol-name def)))))
+          advice)
+     (advice-mapc (lambda (f _) (push (cons (prin1-to-string f) f) advice)) symbol)
+     (list symbol (cdr (assoc-string (completing-read "Advice: " advice) advice)))))
   (let ((f (symbol-function symbol)))
     (remove-function (cond ;This is `advice--symbol-function' but as a "place".
                       ((get symbol 'advice--pending)
-- 
2.43.0


--=-=-=--




Acknowledgement sent to Steven Allen <steven@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#68114; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 20 Jan 2024 12:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.