capture body pasted by evhan on Sun Sep 14 06:55:40 2014
(define-syntax cmd
(syntax-rules ()
((_ tag . body)
(irc:add-message-handler!
con
(lambda (msg)
(let* ((from (irc:message-sender msg))
(receiver (irc:message-receiver msg))
(reply (if (string=? receiver (irc:connection-nick con)) from receiver))
(all (last (irc:message-parameters msg)))
(rest (string-substitute (tag->regex tag) "" all)))
. body))
command: "PRIVMSG" body: (check-body (tag->regex tag)) tag: tag))))
hygienic from et al. added by evhan on Sun Sep 14 07:09:44 2014
(define-syntax cmd (syntax-rules () ((_ tag from receiver reply all rest . body) (irc:add-message-handler! con (lambda (msg) (let* ((from (irc:message-sender msg)) (receiver (irc:message-receiver msg)) (reply (if (string=? receiver (irc:connection-nick con)) from receiver)) (all (last (irc:message-parameters msg))) (rest (string-substitute (tag->regex tag) "" all))) . body)) command: "PRIVMSG" body: (check-body (tag->regex tag)) tag: tag)))) (cmd this-is-the-tag-variable-name this-is-the-from-variable-name this-is-the-receiver the-reply all rest (do-some-stuff-with the-reply all rest))