all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / 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

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.