Not logged in

Artifact 55db85255c9a0d4a6c414fafbe5d7079a221b75b

File user/crc/irc.retro part of check-in [c951433926] - irc; cleanup the code and add stack comments by crc on 2010-06-17 14:33:23. [annotate]


( Rx to IRC Bindings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ )
( Copyright [c] 2010, Charles Childers                        )
( License: ISC                                                )
( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ )

&net open

( Data ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ )
create crlf 10 , 13 , 0 ,
variable socket

( Code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ )
: send    ( $- ) @socket net.send drop ;
: sendn   ( $- ) send crlf send ;
: read    ( -c ) @socket net.recv ;
: pong    ( -  ) s" PONG :kornbluth.freenode.net" sendn ;

{{
  : r     (  - )
    repeat read dup 10 = over 13 = or if; emit again ;
---reveal---
  : line  (  - ) r r pong reset cr ;
  : lines ( n- ) for line next ;
  : skim  ( "- ) repeat key 27 = if; line again ;
}}

: say     ( "- )
  s" PRIVMSG #retro :" send 27 accept tib send crlf send ;

: /server ( "- )
  32 accept tib 6667 net.socket dup !socket net.connect drop ;
: /nick   ( "- )
  s" NICK " send 32 accept tib sendn ;
: /user   ( "- )
  s" USER " send 32 accept tib send
  s"  8 *  : Charles Childers" sendn ;
: /join   ( "- )
  s" JOIN " send 32 accept tib sendn ;

( Make Connection ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ )
/server kornbluth.freenode.net
/nick rx-irc
/user crc
/join #retro