-(import sam
- matchable
+(import matchable
srfi-13
(chicken process-context))
"Type '/help' for a list of commands.\n")
(send-message system 'read self))
(('show-msg from text)
- (send-message system 'print "Message from " from ": " text))
+ (send-message system 'print from "> " text))
(((? string? str))
(if (string-prefix? "/" str)
(let* ((maybe-idx (string-index str #\space))
(send-message system 'print "Current recipients:")
(let loop ((recipients-left recipients))
(unless (null? recipients-left)
- (send-message system 'print (car recipients-left))
+ (send-message system 'print (address->string (car recipients-left)))
(loop (cdr recipients-left)))))))
((or "q" "quit")
(send-message system 'shutdown))
(define (main-beh self system)
(send-message (make-actor (make-client-beh system)) 'start)
'done)
-
-(define (print-usage)
- (print "Actor-driven chat client.\n")
- (print "Usage: chat_client -h")
- (print " chat_client [-p port_num] [-n host_name]"))
-
-(let loop ((args (cdr (argv)))
- (host "localhost")
- (port 8000))
- (match args
- (((or "-h" "--help"))
- (print-usage))
- (((or "-p" "--port") pstr rest ...)
- (loop rest host (string->number pstr)))
- (((or "-n" "--hostname") hstr rest ...)
- (loop rest hstr port))
- (()
- (boot-sam host port main-beh))
- (else
- (print "Unrecognised argument '" (car args) "'.\n")
- (print-usage))))
-