X-Git-Url: https://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-signal.el;h=7fd6b53b7ef1d065f6ddf70094812e191deaca4e;hp=21918259aa8d108d9fc5389f78974a16c0e1ccb2;hb=3354b4d91c95d7b050c5e73e691ce7324406ca41;hpb=746d11ce06a249baa220475bf970a53924881d61;ds=sidebyside diff --git a/lisp/riece-signal.el b/lisp/riece-signal.el index 2191825..7fd6b53 100644 --- a/lisp/riece-signal.el +++ b/lisp/riece-signal.el @@ -30,6 +30,7 @@ ;;; Code: (require 'riece-options) +(require 'riece-debug) (defvar riece-signal-slot-obarray (make-vector 31 0)) @@ -103,22 +104,16 @@ This function is for internal use only." (setq signal (riece-make-signal signal-name args) slots (symbol-value symbol)) (while slots - (condition-case error - (if (or (null (riece-slot-filter (car slots))) - (condition-case error - (funcall (riece-slot-filter (car slots)) signal) - (error - (if riece-debug - (message - "Error in signal filter for \"%S\": %S" - signal-name error))) - nil)) - (funcall (riece-slot-function (car slots)) - signal (riece-slot-handback (car slots)))) - (error - (if riece-debug - (message "Error in slot function for \"%S\": %S" - signal-name error)))) + (if (or (null (riece-slot-filter (car slots))) + (riece-funcall-ignore-errors (format "signal filter for \"%S\"" + signal-name) + (riece-slot-filter (car slots)) + signal)) + (riece-funcall-ignore-errors (format "slot function for \"%S\"" + signal-name) + (riece-slot-function (car slots)) + signal + (riece-slot-handback (car slots)))) (setq slots (cdr slots)))))) (provide 'riece-signal)