]> gitweb.factorcode.org Git - factor.git/commitdiff
irc.messages: Fix parsing of MODE messages with the mode on the trailing part of...
authorBruno Deferrari <utizoc@gmail.com>
Sun, 7 Dec 2008 01:27:32 +0000 (23:27 -0200)
committerBruno Deferrari <utizoc@gmail.com>
Sun, 7 Dec 2008 01:27:32 +0000 (23:27 -0200)
extra/irc/messages/messages.factor

index bea9bf37b1527d3b9857c4a67e98da8162789734..8054dc8075665a4b72e873d087a13bb6e2f6a6b6 100755 (executable)
@@ -90,11 +90,11 @@ M: end-of-names >>command-parameters ( names-reply params -- names-reply )
     first2 [ >>who ] [ >>channel ] bi* ;
 
 M: mode >>command-parameters ( mode params -- mode )
-    dup length 3 = [
-        first3 [ >>name ] [ >>mode ] [ >>parameter ] tri*
-    ] [
-        first2 [ >>name ] [ >>mode ] bi*
-    ] if ;
+    dup length {
+        { 3 [ first3 [ >>name ] [ >>mode ] [ >>parameter ] tri* ] }
+        { 2 [ first2 [ >>name ] [ >>mode ] bi* ] }
+        [ drop first >>name dup trailing>> >>mode ]
+    } case ;
 
 PRIVATE>
 
@@ -135,12 +135,12 @@ M: irc-message irc-message>server-line ( irc-message -- string )
 
 : copy-message-in ( command irc-message -- command )
     {
-        [ parameters>> [ >>parameters ] [ >>command-parameters ] bi ]
         [ line>>      >>line ]
         [ prefix>>    >>prefix ]
         [ command>>   >>command ]
         [ trailing>>  >>trailing ]
         [ timestamp>> >>timestamp ]
+        [ parameters>> [ >>parameters ] [ >>command-parameters ] bi ]
     } cleave ;
 
 PRIVATE>