]> gitweb.factorcode.org Git - factor.git/commitdiff
irc.client: Fix, remove-listener now parts from channels correctly
authorBruno Deferrari <utizoc@gmail.com>
Sat, 12 Jul 2008 03:04:39 +0000 (00:04 -0300)
committerBruno Deferrari <utizoc@gmail.com>
Wed, 16 Jul 2008 03:32:05 +0000 (00:32 -0300)
extra/irc/client/client.factor

index fb010dbc868a9c52e6942185825361878ef39e8d..2dbbe8b8f5945b60094219237c26414d17af92e5 100644 (file)
@@ -206,7 +206,7 @@ GENERIC: handle-outgoing-irc ( obj -- )
 M: privmsg handle-outgoing-irc ( privmsg -- )
     [ name>> ] [ trailing>> ] bi /PRIVMSG ;
 
-M: part handle-outgoing-irc ( privmsg -- )
+M: part handle-outgoing-irc ( part -- )
     [ channel>> ] [ trailing>> "" or ] bi /PART ;
 
 ! ======================================
@@ -263,6 +263,7 @@ DEFER: (connect-irc)
     {
         { [ dup string? ] [ strings>privmsg ] }
         { [ dup privmsg instance? ] [ swap >>name ] }
+        [ nip ]
     } cond ;
 
 : listener-loop ( name listener -- )
@@ -310,8 +311,8 @@ M: irc-nick-listener (remove-listener) ( irc-nick-listener -- )
     name>> unregister-listener ;
 
 M: irc-channel-listener (remove-listener) ( irc-channel-listener -- )
-    [ [ out-messages>> ] [ name>> ] bi
-      [ \ part new ] dip >>channel mailbox-put ] keep
+    [ [ name>> ] [ out-messages>> ] bi
+      [ [ part new ] dip >>channel ] dip mailbox-put ] keep
     name>> unregister-listener ;
 
 M: irc-server-listener (remove-listener) ( irc-server-listener -- )