Merge branch 'master' of git://factorforge.org/git/william42

db4
Slava Pestov 2008-12-07 19:49:20 -06:00
commit e6ec0ff930
2 changed files with 26 additions and 25 deletions

View File

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

View File

@ -9,7 +9,7 @@ USING: accessors kernel threads combinators concurrency.mailboxes
ui.gadgets.tabs ui.gadgets.grids ui.gadgets.packs ui.gadgets.labels ui.gadgets.tabs ui.gadgets.grids ui.gadgets.packs ui.gadgets.labels
io io.styles namespaces calendar calendar.format models continuations io io.styles namespaces calendar calendar.format models continuations
irc.client irc.client.private irc.messages irc.client irc.client.private irc.messages
irc.ui.commandparser irc.ui.load vocabs.loader ; irc.ui.commandparser irc.ui.load vocabs.loader classes prettyprint ;
RENAME: join sequences => sjoin RENAME: join sequences => sjoin
@ -30,6 +30,7 @@ TUPLE: irc-tab < frame chat client window ;
foreground associate format ; foreground associate format ;
: dark-red T{ rgba f 0.5 0.0 0.0 1 } ; : dark-red T{ rgba f 0.5 0.0 0.0 1 } ;
: dark-green T{ rgba f 0.0 0.5 0.0 1 } ; : dark-green T{ rgba f 0.0 0.5 0.0 1 } ;
: dark-blue T{ rgba f 0.0 0.0 0.5 1 } ;
: dot-or-parens ( string -- string ) : dot-or-parens ( string -- string )
[ "." ] [ "." ]
@ -41,14 +42,14 @@ M: ping write-irc
drop "* Ping" blue write-color ; drop "* Ping" blue write-color ;
M: privmsg write-irc M: privmsg write-irc
"<" blue write-color "<" dark-blue write-color
[ irc-message-sender write ] keep [ irc-message-sender write ] keep
"> " blue write-color "> " dark-blue write-color
trailing>> write ; trailing>> write ;
M: notice write-irc M: notice write-irc
[ type>> blue write-color ] keep [ type>> dark-blue write-color ] keep
": " blue write-color ": " dark-blue write-color
trailing>> write ; trailing>> write ;
TUPLE: own-message message nick timestamp ; TUPLE: own-message message nick timestamp ;
@ -57,9 +58,9 @@ TUPLE: own-message message nick timestamp ;
now own-message boa ; now own-message boa ;
M: own-message write-irc M: own-message write-irc
"<" blue write-color "<" dark-blue write-color
[ nick>> bold font-style associate format ] keep [ nick>> bold font-style associate format ] keep
"> " blue write-color "> " dark-blue write-color
message>> write ; message>> write ;
M: join write-irc M: join write-irc
@ -87,26 +88,23 @@ M: kick write-irc
" from the channel" dark-red write-color " from the channel" dark-red write-color
trailing>> dot-or-parens dark-red write-color ; trailing>> dot-or-parens dark-red write-color ;
: full-mode ( message -- mode )
parameters>> rest " " sjoin ;
M: mode write-irc M: mode write-irc
"* " blue write-color "* " dark-blue write-color
[ irc-message-sender write ] keep [ name>> write ] keep
" has applied mode " blue write-color " has applied mode " dark-blue write-color
[ full-mode write ] keep [ mode>> write ] keep
" to " blue write-color " to " dark-blue write-color
channel>> write ; parameter>> write ;
M: nick write-irc M: nick write-irc
"* " blue write-color "* " dark-blue write-color
[ irc-message-sender write ] keep [ irc-message-sender write ] keep
" is now known as " blue write-color " is now known as " blue write-color
trailing>> write ; trailing>> write ;
M: unhandled write-irc M: unhandled write-irc
"UNHANDLED: " write "UNHANDLED: " write
line>> blue write-color ; line>> dark-blue write-color ;
M: irc-end write-irc M: irc-end write-irc
drop "* You have left IRC" dark-red write-color ; drop "* You have left IRC" dark-red write-color ;
@ -121,7 +119,10 @@ M: irc-chat-end write-irc
drop ; drop ;
M: irc-message write-irc M: irc-message write-irc
drop ; ! catch all unimplemented writes, THIS WILL CHANGE "UNIMPLEMENTED" write
[ class pprint ] keep
": " write
line>> dark-blue write-color ;
GENERIC: time-happened ( message -- timestamp ) GENERIC: time-happened ( message -- timestamp )