From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: Help setting nadvice for indent-region Date: Fri, 12 Feb 2016 15:09:53 +0100 Message-ID: <871t8idnpq.fsf@web.de> References: <87a8ne2k6v.fsf@web.de> <87bn7n15ki.fsf@web.de> <87vb5vys7n.fsf@web.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1455286234 12547 80.91.229.3 (12 Feb 2016 14:10:34 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 12 Feb 2016 14:10:34 +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 Feb 12 15:10:27 2016 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 1aUEQU-0002ul-4P for geh-help-gnu-emacs@m.gmane.org; Fri, 12 Feb 2016 15:10:26 +0100 Original-Received: from localhost ([::1]:32910 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUEQT-0005sF-7s for geh-help-gnu-emacs@m.gmane.org; Fri, 12 Feb 2016 09:10:25 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55188) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUEQB-0005n5-2h for help-gnu-emacs@gnu.org; Fri, 12 Feb 2016 09:10:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUEQ6-0002ge-4U for help-gnu-emacs@gnu.org; Fri, 12 Feb 2016 09:10:07 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:40779) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUEQ5-0002g2-TJ for help-gnu-emacs@gnu.org; Fri, 12 Feb 2016 09:10:02 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aUEQ2-0002Yo-PS for help-gnu-emacs@gnu.org; Fri, 12 Feb 2016 15:09:58 +0100 Original-Received: from dslb-092-074-178-250.092.074.pools.vodafone-ip.de ([92.74.178.250]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Feb 2016 15:09:58 +0100 Original-Received: from michael_heerdegen by dslb-092-074-178-250.092.074.pools.vodafone-ip.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Feb 2016 15:09:58 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 49 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: dslb-092-074-178-250.092.074.pools.vodafone-ip.de User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.90 (gnu/linux) Cancel-Lock: sha1:OtnvA4Yifpumt/l/nM6I6/mmuFw= 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:109134 Archived-At: Kaushal Modi writes: > OK, so this is what I have now. > > (defun modi/advice-region-or-whole (&rest args) > "Advice function that sets the region boundaries to that of the whole > buffer > if no region is selected." > (interactive (if (use-region-p) > (list (region-beginning) (region-end)) > (list (point-min) (point-max)))) > ;; (message "Args: %S R: %S I: %S" > ;; args (use-region-p) (called-interactively-p 'interactive)) > (when (and (eq (first args) (point-min)) > (eq (second args) (point-max))) > (message "Executing %s on the whole buffer." > (propertize (symbol-name this-command) > 'face 'font-lock-function-name-face))) > nil) Two more comments: 1. If you want to show the name of the adviced function instead of the current command: you know it when you install the advice (in your dolist) - use it when defining the advice. Then you can't use the same constantpiece of advice for all functions, of course. But if it's only for debugging, you don't need this anymore, I think. If you need to debug, I recommend to use trace.el instead: M-x trace-function your-adviced-function-here this will show you which arguments the function received (from the interactive call, or when it had been called from Lisp, the arguments it received from there). 2. The nil return value is insignificant. Stefan used it only to avoid an empty function body in his advice. Actually, as you see from the semantics: ‘:before’ (lambda (&rest r) (apply FUNCTION r) (apply OLDFUN r)) the return value of calling the advice FUNCTION is not used. Regards, Michael.