unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* How to exit function from inside its `interactive' call?
@ 2014-08-06 19:38 Thorsten Jolitz
  2014-08-06 19:47 ` Drew Adams
  0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2014-08-06 19:38 UTC (permalink / raw)
  To: help-gnu-emacs


Hi List, 

how can I use catch/throw (or whatever) to exit function foo from inside
its 'interactive call? All combinations I tried so far only exit
'interactive and still execute the function body. 

#+begin_src emacs-lisp
  (defun foo (&optional arg)
    (catch 'exit
      (interactive
       (let ((bar (if current-prefix-arg
                      (prefix-numeric-value)
                    (throw 'exit nil))))
         (list (+ 2 bar)))))
    (message "Arg: %s" arg))
#+end_src

#+results:
: Arg: nil

#+begin_src emacs-lisp
 (foo)
#+end_src

#+results:
: Arg: nil

#+begin_src emacs-lisp
 (foo '(4))
#+end_src

#+results:
: Arg: (4)

Thanks for any hint.



-- 
cheers,
Thorsten




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

end of thread, other threads:[~2014-08-07  8:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-06 19:38 How to exit function from inside its `interactive' call? Thorsten Jolitz
2014-08-06 19:47 ` Drew Adams
2014-08-06 21:12   ` Thorsten Jolitz
2014-08-07  7:14     ` Nicolas Richard
2014-08-07  8:33       ` Thorsten Jolitz

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).