aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorRobin Templeton <[email protected]>2014-08-11 06:59:48 -0400
committerRobin Templeton <[email protected]>2015-04-20 00:29:03 -0400
commit147728721aefd0521ced92883aa1ae3e14420d68 (patch)
tree5bcc5b306a4181f6921c9fd7e7109ddd54c3bc43 /lisp
parent568b1feb58c0a7d9e0fb163ab216a92abd74acf4 (diff)
ignore-errors ignores scheme exceptions
Diffstat (limited to 'lisp')
-rw-r--r--lisp/subr.el7
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index c6e92bf054..9d9b9270f3 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -234,7 +234,12 @@ Otherwise, return result of last form in BODY.
See also `with-demoted-errors' that does something similar
without silencing all errors."
(declare (debug t) (indent 0))
- `(condition-case nil (progn ,@body) (error nil)))
+ `(condition-case nil
+ (%funcall (@ (guile) catch)
+ t
+ #'(lambda () ,@body)
+ #'(lambda (&rest args) nil))
+ (error nil)))
;;;; Basic Lisp functions.