From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.bugs Subject: bug#12844: 24.2.50; feature request: advice.el: implement `ad-do-interactive'? Date: Fri, 09 Nov 2012 18:40:08 +0100 Message-ID: <87k3tuvfnr.fsf@web.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1352483700 20094 80.91.229.3 (9 Nov 2012 17:55:00 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 9 Nov 2012 17:55:00 +0000 (UTC) To: 12844@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Nov 09 18:55:08 2012 Return-path: Envelope-to: geb-bug-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 1TWsnM-0002UQ-0d for geb-bug-gnu-emacs@m.gmane.org; Fri, 09 Nov 2012 18:55:08 +0100 Original-Received: from localhost ([::1]:47860 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWsnC-0001RZ-Sh for geb-bug-gnu-emacs@m.gmane.org; Fri, 09 Nov 2012 12:54:58 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:48862) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWsn9-0001QE-Vh for bug-gnu-emacs@gnu.org; Fri, 09 Nov 2012 12:54:57 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TWsn8-0003nW-Mf for bug-gnu-emacs@gnu.org; Fri, 09 Nov 2012 12:54:55 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:48020) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWsn8-0003nR-Je for bug-gnu-emacs@gnu.org; Fri, 09 Nov 2012 12:54:54 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TWsnG-0008PW-Ms for bug-gnu-emacs@gnu.org; Fri, 09 Nov 2012 12:55:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Michael Heerdegen Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 09 Nov 2012 17:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 12844 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.135248366432270 (code B ref -1); Fri, 09 Nov 2012 17:55:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 9 Nov 2012 17:54:24 +0000 Original-Received: from localhost ([127.0.0.1]:58270 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TWsme-0008OR-1k for submit@debbugs.gnu.org; Fri, 09 Nov 2012 12:54:24 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:51305) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TWsmb-0008OI-MP for submit@debbugs.gnu.org; Fri, 09 Nov 2012 12:54:22 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TWsmR-0003J5-Tx for submit@debbugs.gnu.org; Fri, 09 Nov 2012 12:54:13 -0500 Original-Received: from lists.gnu.org ([208.118.235.17]:55058) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWsmR-0003In-Py for submit@debbugs.gnu.org; Fri, 09 Nov 2012 12:54:11 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:36953) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWsmQ-0007YU-33 for bug-gnu-emacs@gnu.org; Fri, 09 Nov 2012 12:54:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TWsYU-0007Ab-3u for bug-gnu-emacs@gnu.org; Fri, 09 Nov 2012 12:39:46 -0500 Original-Received: from mout.web.de ([212.227.17.11]:63833) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWsYT-0007AU-QI for bug-gnu-emacs@gnu.org; Fri, 09 Nov 2012 12:39:46 -0500 Original-Received: from drachen.dragon ([89.204.130.15]) by smtp.web.de (mrweb003) with ESMTPSA (Nemesis) id 0MgfH5-1TjISm15kd-00NyMv; Fri, 09 Nov 2012 18:39:43 +0100 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux) X-Provags-ID: V02:K0:GevC3bNdI69gJs6wNMHSdQooXygBXcpoESxFehfj97K 7DO44nGxwnxl93Xq54knM8V7184VqjtaDHy3FB9bAzhL9ZMYgB 2ojQEjPUFuLuNM/qgsJIk2f4gyMhDyOCLE2h14xtk7C0OqspjX J7ChbYZgiMdsevWEbzRQ8BqcrQEuArSbAF9Uf42V8BCDUkbMfb 3r5mk8TztsVGnNR47aYvNXVxt8vy/soyc5GJnuUMws= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:66698 Archived-At: Hello, I faced this situation too often - that's why I decided to file a bug report now. `defadvice' provides a pseudo variable `ad-do-it' which we all know, it is very practical. It makes it often unnecessary to copy and paste code from the original function if we only want to bind some vars to certain values etc. Now I ask if we could do the same for the `interactive' specification. `defadvice' allows to redefine the interactive spec of the original function - but if it is a (maybe very complicated) list expression, there's currently no way to refer to it in `defadvice'. I want to give an example why this would be useful: The package `eldoc-eval' by Thierry Volpiatto implements a macro `with-eldoc-in-minibuffer' that enables displaying eldoc information in the mode-line while an expression is read from the minibuffer. I wanted to use this for `debugger-record-expression'. So I tried: (defadvice debugger-record-expression (around use-eldoc-eval activate) "Use eldoc-eval when reading the expression." (with-eldoc-in-minibuffer ad-do-it)) But that doesn't work, because the expression is read in by the interactive spec of `debugger-record-expression'. I now have this solution: (require 'debug) (defvar debugger-record-expression-orig-interactive-form (cdr (interactive-form 'debugger-record-expression))) (eval `(defadvice debugger-record-expression (around use-eldoc-eval activate) "Use eldoc-eval when reading the expression." (interactive (with-eldoc-in-minibuffer (list ,@debugger-record-expression-orig-interactive-form))) ad-do-it)) Looks not very nice, but works, and it screams for automation. Dunno if it's really that easy in general, but it would be a good feature. I often missed something like `ad-do-interactive'. The goal is to use it like that: (defadvice debugger-record-expression (around use-eldoc-eval activate) (interactive (with-eldoc-in-minibuffer ad-do-interactive)) ad-do-it) Regards, Michael. In GNU Emacs 24.2.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.2) of 2012-11-01 on dex, modified by Debian (emacs-snapshot package, version 2:20121101-1) Windowing system distributor `The X.Org Foundation', version 11.0.10707000 System Description: Debian GNU/Linux testing (wheezy) Configured using: `configure '--build' 'x86_64-linux-gnu' '--host' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.2.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.2.50/site-lisp:/usr/share/emacs/site-lisp' '--without-compress-info' '--with-crt-dir=/usr/lib/x86_64-linux-gnu/' '--with-x=yes' '--with-x-toolkit=gtk3' '--with-imagemagick=yes' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed -znocombreloc' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'' Important settings: value of $LC_ALL: de_DE.utf8 value of $LC_TIME: C value of $LANG: de_DE.utf8 locale-coding-system: utf-8-unix default enable-multibyte-characters: t