irc: Split irc-bot-send-line into main functionality and action handler.
authorChristopher Allan Webber <cwebber@dustycloud.org>
Sat, 24 Dec 2016 19:09:54 +0000 (13:09 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Sat, 24 Dec 2016 19:14:00 +0000 (13:14 -0600)
This allows irc-bot-send-line to be called directly.

* 8sync/systems/irc.scm (irc-bot-send-line): Update this procedure to
not have a message as one of the arguments so it can be called directly.
(irc-bot-send-line-action): Action handler, doing what irc-bot-send-line
previously did.
(<irc-bot>): Update actions mapping to point to irc-bot-send-line-action.

8sync/systems/irc.scm

index 495cbca4f968dfe4b4c4b03c7629c78cc2e12110..aad138d09bb62a9de32c5f6bfc1fa0614236040d 100755 (executable)
@@ -35,6 +35,8 @@
   #:export (<irc-bot>
             irc-bot-username irc-bot-server irc-bot-channels irc-bot-port
 
+            irc-bot-send-line
+
             handle-line handle-misc-input
             handle-user-join handle-user-quit
 
            #:init-value (build-actions
                          (init irc-bot-init)
                          (main-loop irc-bot-main-loop)
-                         (send-line irc-bot-send-line))))
+                         (send-line irc-bot-send-line-action))))
 
 (define (irc-bot-realname irc-bot)
   (or (slot-ref irc-bot 'realname)
    (else
     (<- irc-bot (actor-id irc-bot) 'main-loop))))
 
-(define* (irc-bot-send-line irc-bot message
-                            channel line #:key emote?)
+(define* (irc-bot-send-line-action irc-bot message
+                                   channel line #:key emote?)
+  "Action handler for sending lines.  Real behavior happens in
+irc-bot-send-line."
+  (irc-bot-send-line irc-bot channel line #:emote? emote?))
+
+(define* (irc-bot-send-line irc-bot channel line #:key emote?)
   ;; TODO: emote? handling
   (format (irc-bot-socket irc-bot) "PRIVMSG ~a :~a~a"
           channel line irc-eol))
 
+
 ;;; Likely-to-be-overridden generic methods
 
 (define-method (dispatch-raw-line (irc-bot <irc-bot>) raw-line)