unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Calling a function interactively with a universal argument
@ 2007-06-13 12:04 spamfilteraccount
  2007-06-14 13:21 ` Tim X
  2007-06-15  2:14 ` Kevin Rodgers
  0 siblings, 2 replies; 3+ messages in thread
From: spamfilteraccount @ 2007-06-13 12:04 UTC (permalink / raw)
  To: help-gnu-emacs

Is it possible to call a function from a program with a certain
universal argument?

I'd like to a redefine a standard command, but *without* bothering to
use its actual lisp interface, so I want to call the function from a
program as a user would, supplying only a universal argument or not.


I'd like to override find-tag behavior, so that it does something
after reading the interactive arguments, but before invoking the
original command:


(defun my-find-tag ()
   ; the result of (interactive-form 'find-tag) should be substituted
here somehow as an interactive specifier, because I want the same
interactive behavior (I can copy it of course manually, but it would
be nicer to copy here the interactive specification of find-tag
programatically)

  (if my-find-tags was called with C-u then do something
       otherwise do something else)

  (call original find-tag with the interactive arugments received))



I've seen call-interactively, but it doesn't allow me to specify the
actual interactive arguments to call the command with.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Calling a function interactively with a universal argument
  2007-06-13 12:04 Calling a function interactively with a universal argument spamfilteraccount
@ 2007-06-14 13:21 ` Tim X
  2007-06-15  2:14 ` Kevin Rodgers
  1 sibling, 0 replies; 3+ messages in thread
From: Tim X @ 2007-06-14 13:21 UTC (permalink / raw)
  To: help-gnu-emacs

"spamfilteraccount@gmail.com" <spamfilteraccount@gmail.com> writes:

> Is it possible to call a function from a program with a certain
> universal argument?
>
> I'd like to a redefine a standard command, but *without* bothering to
> use its actual lisp interface, so I want to call the function from a
> program as a user would, supplying only a universal argument or not.
>
>
> I'd like to override find-tag behavior, so that it does something
> after reading the interactive arguments, but before invoking the
> original command:
>
>
> (defun my-find-tag ()
>    ; the result of (interactive-form 'find-tag) should be substituted
> here somehow as an interactive specifier, because I want the same
> interactive behavior (I can copy it of course manually, but it would
> be nicer to copy here the interactive specification of find-tag
> programatically)
>
>   (if my-find-tags was called with C-u then do something
>        otherwise do something else)
>
>   (call original find-tag with the interactive arugments received))
>
>
>
> I've seen call-interactively, but it doesn't allow me to specify the
> actual interactive arguments to call the command with.
>

have a look at defadvice in the elisp manual. It should allow you to do what
you want.

tim
-- 
tcross (at) rapttech dot com dot au

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Calling a function interactively with a universal argument
  2007-06-13 12:04 Calling a function interactively with a universal argument spamfilteraccount
  2007-06-14 13:21 ` Tim X
@ 2007-06-15  2:14 ` Kevin Rodgers
  1 sibling, 0 replies; 3+ messages in thread
From: Kevin Rodgers @ 2007-06-15  2:14 UTC (permalink / raw)
  To: help-gnu-emacs

spamfilteraccount@gmail.com wrote:
> Is it possible to call a function from a program with a certain
> universal argument?
> 
> I'd like to a redefine a standard command, but *without* bothering to
> use its actual lisp interface, so I want to call the function from a
> program as a user would, supplying only a universal argument or not.
> 
> 
> I'd like to override find-tag behavior, so that it does something
> after reading the interactive arguments, but before invoking the
> original command:
> 
> 
> (defun my-find-tag ()
>    ; the result of (interactive-form 'find-tag) should be substituted
> here somehow as an interactive specifier, because I want the same
> interactive behavior (I can copy it of course manually, but it would
> be nicer to copy here the interactive specification of find-tag
> programatically)
> 
>   (if my-find-tags was called with C-u then do something
>        otherwise do something else)
> 
>   (call original find-tag with the interactive arugments received))

(defadvice find-tag (before universal-argument activate)
   "If called with \\[universal-argument], do SOMETHING, other do 
SOMETHING-ELSE."
   (if (consp current-prefix-arg)
       (something)
     (something-else)))

> I've seen call-interactively, but it doesn't allow me to specify the
> actual interactive arguments to call the command with.

-- 
Kevin Rodgers
Denver, Colorado, USA

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-06-15  2:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-13 12:04 Calling a function interactively with a universal argument spamfilteraccount
2007-06-14 13:21 ` Tim X
2007-06-15  2:14 ` Kevin Rodgers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).