Author: ehuelsmann Date: Sun Jan 13 05:00:44 2013 New Revision: 232
Log: Patch submitted by Julien Danjou.
Modified: trunk/package.lisp trunk/protocol.lisp
Modified: trunk/package.lisp ============================================================================== --- trunk/package.lisp Sun Sep 23 09:44:44 2012 (r231) +++ trunk/package.lisp Sun Jan 13 05:00:44 2013 (r232) @@ -48,6 +48,7 @@ :client-stream :channels :add-hook + :append-hook :remove-hook :remove-hooks :remove-all-hooks
Modified: trunk/protocol.lisp ============================================================================== --- trunk/protocol.lisp Sun Sep 23 09:44:44 2012 (r231) +++ trunk/protocol.lisp Sun Jan 13 05:00:44 2013 (r232) @@ -199,6 +199,7 @@ (defgeneric send-irc-message (connection command &rest arguments)) (defgeneric get-hooks (connection class)) (defgeneric add-hook (connection class hook)) +(defgeneric append-hook (connection class hook)) (defgeneric remove-hook (connection class hook)) (defgeneric remove-hooks (connection class)) (defgeneric remove-all-hooks (connection)) @@ -383,6 +384,11 @@ (setf (gethash class (hooks connection)) (pushnew hook (gethash class (hooks connection)))))
+(defmethod append-hook (connection class hook) + "Append `hook' to `class'." + (setf (gethash class (hooks connection)) + (append (gethash class (hooks connection)) (list hook)))) + (defmethod remove-hook ((connection connection) class hook) "Remove `hook' from `class'." (setf (gethash class (hooks connection))