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: replacing a function with another one Date: Wed, 12 Mar 2014 08:07:59 +0100 Message-ID: <87y50frj1s.fsf@web.de> References: <87vbvofsi6.fsf@yun.yagibdah.de> <87bnxgs4r9.fsf@web.de> <87lhwj1cfz.fsf@yun.yagibdah.de> <87zjkz6vd5.fsf@web.de> <8738ir161u.fsf@yun.yagibdah.de> <87eh2b6nfm.fsf@web.de> <87r46anab5.fsf@yun.yagibdah.de> <87wqg2u77k.fsf@web.de> <87pplugjh6.fsf@yun.yagibdah.de> <8738ipd2kh.fsf@web.de> <87y50gj1uf.fsf@yun.yagibdah.de> <874n34ticd.fsf@web.de> <87bnxcrloa.fsf@web.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1394608117 25797 80.91.229.3 (12 Mar 2014 07:08:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 12 Mar 2014 07:08:37 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Mar 12 08:08:45 2014 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 1WNdHO-0006fD-Ud for geh-help-gnu-emacs@m.gmane.org; Wed, 12 Mar 2014 08:08:43 +0100 Original-Received: from localhost ([::1]:59032 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNdHO-0002Kh-Fr for geh-help-gnu-emacs@m.gmane.org; Wed, 12 Mar 2014 03:08:42 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51998) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNdH6-0002Jg-Fr for help-gnu-emacs@gnu.org; Wed, 12 Mar 2014 03:08:31 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WNdGz-0002fm-6Y for help-gnu-emacs@gnu.org; Wed, 12 Mar 2014 03:08:24 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:44828) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNdGz-0002fg-0U for help-gnu-emacs@gnu.org; Wed, 12 Mar 2014 03:08:17 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WNdGy-0006J0-8m for help-gnu-emacs@gnu.org; Wed, 12 Mar 2014 08:08:16 +0100 Original-Received: from ip-90-187-149-152.web.vodafone.de ([90.187.149.152]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 12 Mar 2014 08:08:16 +0100 Original-Received: from michael_heerdegen by ip-90-187-149-152.web.vodafone.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 12 Mar 2014 08:08:16 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 34 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: ip-90-187-149-152.web.vodafone.de User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) Cancel-Lock: sha1:/SUK3R+YgOPnjiodDUYA+wGT4TQ= 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:96450 Archived-At: Michael Heerdegen writes: > (defun my-fac--print-result-around-advice (orig-fun n) > "Print result in the echo area." > (let ((result (funcall orig-fun n))) > (message "The faculty of %d is %d" n result) > (sit-for 3) > result)) BTW, what you also see is that advices in nadvice are just normal, independently defined functions, and not some obscure expressions. It's your function definition, you can name and use the arguments as you like. In case of an around advice, your advice FUNCTION will be called that way: (apply function oldfun r) which means, with the arguments that the original function is called with, prepended with the old function definition. It must accept these arguments. So, for example, the above defun could also be written as (defun my-fac--print-result-around-advice (orig-fun &rest argument-list-to-pass-over) "Print result in the echo area." (let ((result (apply orig-fun argument-list-to-pass-over))) (message "The faculty of %d is %d" n result) (sit-for 3) result)) Michael.