[net-nittin-irc-cvs] CVS update: net-nittin-irc/event.lisp net-nittin-irc/protocol.lisp

Erik Enge eenge at common-lisp.net
Tue Nov 25 03:56:07 UTC 2003


Update of /project/net-nittin-irc/cvsroot/net-nittin-irc
In directory common-lisp.net:/tmp/cvs-serv32047

Modified Files:
	event.lisp protocol.lisp 
Log Message:
change-user didn't properly change nicknames; fixed.

Date: Mon Nov 24 22:56:06 2003
Author: eenge

Index: net-nittin-irc/event.lisp
diff -u net-nittin-irc/event.lisp:1.12 net-nittin-irc/event.lisp:1.13
--- net-nittin-irc/event.lisp:1.12	Mon Nov 24 22:35:55 2003
+++ net-nittin-irc/event.lisp	Mon Nov 24 22:56:06 2003
@@ -1,4 +1,4 @@
-;;;; $Id: event.lisp,v 1.12 2003/11/25 03:35:55 eenge Exp $
+;;;; $Id: event.lisp,v 1.13 2003/11/25 03:56:06 eenge Exp $
 ;;;; $Source: /project/net-nittin-irc/cvsroot/net-nittin-irc/event.lisp,v $
 
 ;;;; See LICENSE for licensing information.
@@ -84,15 +84,9 @@
     (remove-user-everywhere connection (find-user connection (source message)))))
 
 (defmethod default-hook ((message irc-nick-message))
-  (if (self-message-p message)
-      (change-nickname (connection message) (user (connection message))
-                       (trailing-argument message))
-      (let ((user (find-user (connection message) (source message))))
-        (if user
-            (change-nickname (connection message) user (trailing-argument message))
-            (client-raw-log (connection message)
-                            (format nil "Could not find user with nick ~A~%"
-                                    (source message)))))))
+  (let ((con (connection message)))
+    (change-nickname con (find-user con (source message))
+                     (trailing-argument message))))
 
 (defmethod default-hook ((message irc-kick-message))
   (let* ((connection (connection message))


Index: net-nittin-irc/protocol.lisp
diff -u net-nittin-irc/protocol.lisp:1.20 net-nittin-irc/protocol.lisp:1.21
--- net-nittin-irc/protocol.lisp:1.20	Mon Nov 24 22:35:55 2003
+++ net-nittin-irc/protocol.lisp	Mon Nov 24 22:56:06 2003
@@ -1,4 +1,4 @@
-;;;; $Id: protocol.lisp,v 1.20 2003/11/25 03:35:55 eenge Exp $
+;;;; $Id: protocol.lisp,v 1.21 2003/11/25 03:56:06 eenge Exp $
 ;;;; $Source: /project/net-nittin-irc/cvsroot/net-nittin-irc/protocol.lisp,v $
 
 ;;;; See LICENSE for licensing information.
@@ -416,11 +416,16 @@
   "Remove `channel' from `user'."
   (setf (channels user) (remove channel (channels user))))
 
+(defmethod remove-user ((connection connection) (user user))
+  "Remove `user' from `connection' but leave user in any channels he
+may be already be on."
+  (remhash (normalized-nickname user) (users connection)))
+
 (defmethod remove-user-everywhere ((connection connection) (user user))
   "Remove `user' anywhere present in the `connection'."
   (dolist (channel (channels user))
     (remove-user channel user))
-  (remhash (normalized-nickname user) (users connection)))
+  (remove-user connection user))
 
 (defmethod find-or-make-user ((connection connection) nickname &key (username "")
                               (hostname "") (realname ""))
@@ -431,7 +436,14 @@
                  :realname realname)))
 
 (defmethod change-nickname ((connection connection) (user user) new-nickname)
-  (setf (nickname user) new-nickname))
+  (let ((new-user user)
+        (channels (channels user)))
+    (remove-user connection user)
+    (setf (nickname new-user) new-nickname)
+    (setf (normalized-nickname new-user) (normalize-nickname new-nickname))
+    (dolist (channel channels)
+      (remove-user channel user)
+      (add-user connection channel new-user))))
 
 ;; IRC Message
 ;;





More information about the Net-nittin-irc-cvs mailing list