From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: Temporary changing the behavior of a function Date: Fri, 06 Nov 2015 08:03:47 -0500 Message-ID: References: <87lhaba0kh.fsf@mbork.pl> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1446815085 19333 80.91.229.3 (6 Nov 2015 13:04:45 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 6 Nov 2015 13:04:45 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Nov 06 14:04:39 2015 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Zugh2-0003OB-Oh for geh-help-gnu-emacs@m.gmane.org; Fri, 06 Nov 2015 14:04:36 +0100 Original-Received: from localhost ([::1]:38544 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zuggx-00063K-2q for geh-help-gnu-emacs@m.gmane.org; Fri, 06 Nov 2015 08:04:31 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34848) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zuggf-0005zM-Hs for help-gnu-emacs@gnu.org; Fri, 06 Nov 2015 08:04:19 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zuggb-0005z5-HD for help-gnu-emacs@gnu.org; Fri, 06 Nov 2015 08:04:13 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:43592) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zuggb-0005yy-B0 for help-gnu-emacs@gnu.org; Fri, 06 Nov 2015 08:04:09 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZuggP-0002zF-VC for help-gnu-emacs@gnu.org; Fri, 06 Nov 2015 14:03:58 +0100 Original-Received: from 104-222-125-230.cpe.teksavvy.com ([104.222.125.230]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 06 Nov 2015 14:03:57 +0100 Original-Received: from monnier by 104-222-125-230.cpe.teksavvy.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 06 Nov 2015 14:03:57 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 18 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 104-222-125-230.cpe.teksavvy.com User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) Cancel-Lock: sha1:HNgYWp06kxbLoezMabhGE22kZKo= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:107970 Archived-At: > Now I want to call `foo' in the Mafia-mode;-), i.e., it should ask no > further questions. What do I do? AFAIU, `cl-flet' won't help, since it > is lexical. The best I can think of is to temporarily advice `bar' with > :override - but then, instead of a `let'-like, local construct, I have > to explicitly add and then remove the advice, right? (defvar my-bar-is-silent nil) (defun my-bar-silencer (orig &rest args) (if my-bar-is-silent (apply orig args))) (advice-add 'bar :around #'my-bar-silencer) and then ... (let ((my-bar-is-silent t)) (foo ...)) -- Stefan