Author: ehuelsmann
Date: Wed Apr 18 14:57:32 2007
New Revision: 179
Modified:
trunk/event.lisp
trunk/package.lisp
trunk/protocol.lisp
Log:
KICK messages generally don't originate at the user being kicked. Fixed.
Modified: trunk/event.lisp
==============================================================================
--- trunk/event.lisp (original)
+++ trunk/event.lisp Wed Apr 18 14:57:32 2007
@@ -315,7 +315,7 @@
(let* ((channel (find-channel connection channel))
(user (find-user connection nick)))
(when (and user channel)
- (if (self-message-p message)
+ (if (user-eq-me-p connection user)
(remove-channel user channel)
(remove-user channel user)))))))
Modified: trunk/package.lisp
==============================================================================
--- trunk/package.lisp (original)
+++ trunk/package.lisp Wed Apr 18 14:57:32 2007
@@ -85,6 +85,7 @@
:remove-all-users
:remove-user
:self-message-p
+ :user-eq-me-p
:pass
:nick
:user-
Modified: trunk/protocol.lisp
==============================================================================
--- trunk/protocol.lisp (original)
+++ trunk/protocol.lisp Wed Apr 18 14:57:32 2007
@@ -914,6 +914,7 @@
(car (last (arguments message))))
(defgeneric self-message-p (message))
+(defgeneric user-eq-me-p (connection user))
(defgeneric find-irc-message-class (type))
(defgeneric client-log (connection message &optional prefix))
(defgeneric apply-to-hooks (message))
@@ -923,6 +924,13 @@
(string-equal (source message)
(nickname (user (connection message)))))
+(defmethod user-eq-me-p (connection (user user))
+ (eq user (user connection)))
+
+(defmethod user-eq-me-p (connection (user string))
+ (let ((user (find-user connection user)))
+ (user-eq-me-p connection user)))
+
(defclass irc-error-reply (irc-message) ())
(eval-when (:compile-toplevel :load-toplevel :execute)