]> gitweb.factorcode.org Git - factor.git/commitdiff
irc.ui: Fixed a few bugs
authorWilliam Schlieper <schlieper@unc.edu>
Tue, 29 Jul 2008 01:02:05 +0000 (21:02 -0400)
committerWilliam Schlieper <schlieper@unc.edu>
Tue, 29 Jul 2008 01:02:05 +0000 (21:02 -0400)
extra/irc/ui/ui.factor

index 1520970f46329f7dc730fb210f228d0f9af45313..c91d797f252791f67401cbdf76d46b5e8970a938 100755 (executable)
@@ -6,9 +6,11 @@ USING: accessors kernel threads combinators concurrency.mailboxes
        ui ui.gadgets ui.gadgets.panes ui.gadgets.editors\r
        ui.gadgets.scrollers ui.commands ui.gadgets.frames ui.gestures\r
        ui.gadgets.tabs ui.gadgets.grids ui.gadgets.lists ui.gadgets.labels\r
-       io io.styles namespaces calendar calendar.format models\r
+       io io.styles namespaces calendar calendar.format models continuations\r
        irc.client irc.client.private irc.messages irc.messages.private\r
-       irc.ui.commandparser irc.ui.load ;\r
+       irc.ui.commandparser irc.ui.load qualified ;\r
+\r
+RENAME: join sequences => sjoin\r
 \r
 IN: irc.ui\r
 \r
@@ -71,14 +73,21 @@ M: quit write-irc
     " has left IRC" red write-color\r
     trailing>> dot-or-parens red write-color ;\r
 \r
+: full-mode ( message -- mode )\r
+    parameters>> rest " " sjoin ;\r
+\r
 M: mode write-irc\r
     "* " blue write-color\r
-    [ name>> write ] keep\r
+    [ prefix>> parse-name write ] keep\r
     " has applied mode " blue write-color\r
-    [ mode>> write ] keep\r
+    [ full-mode write ] keep\r
     " to " blue write-color\r
     channel>> write ;\r
 \r
+M: unhandled write-irc\r
+    "UNHANDLED: " write\r
+    line>> blue write-color ;\r
+\r
 M: irc-end write-irc\r
     drop "* You have left IRC" red write-color ;\r
 \r
@@ -88,11 +97,17 @@ M: irc-disconnected write-irc
 M: irc-connected write-irc\r
     drop "* Connected" green write-color ;\r
 \r
+M: irc-listener-end write-irc\r
+    drop ;\r
+\r
 M: irc-message write-irc\r
     drop ; ! catch all unimplemented writes, THIS WILL CHANGE    \r
 \r
+: time-happened ( irc-message -- timestamp )\r
+    [ timestamp>> ] [ 2drop now ] recover ;\r
+\r
 : print-irc ( irc-message -- )\r
-    [ timestamp>> timestamp>hms write " " write ]\r
+    [ time-happened timestamp>hms write " " write ]\r
     [ write-irc nl ] bi ;\r
 \r
 : send-message ( message -- )\r