X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Friece-signal.el;h=d5fe870bd25157e424fb116c90833d26210a1ae7;hb=c431782a8f156d15c3f6c6eda3faedf0f3d2e9a8;hp=21918259aa8d108d9fc5389f78974a16c0e1ccb2;hpb=808346a610bfd4b9d207d763888a3158532c3ef4;p=elisp%2Friece.git diff --git a/lisp/riece-signal.el b/lisp/riece-signal.el index 2191825..d5fe870 100644 --- a/lisp/riece-signal.el +++ b/lisp/riece-signal.el @@ -19,8 +19,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -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)