Update of /project/cl-irc/cvsroot/cl-irc
In directory common-lisp:/tmp/cvs-serv24527
Modified Files:
command.lisp event.lisp protocol.lisp utility.lisp
Log Message:
Remove the 'trailing argument' notion from send-irc-message:
the last argument will now always be 'trailing'.
--- /project/cl-irc/cvsroot/cl-irc/command.lisp 2006/02/14 21:51:21 1.15
+++ /project/cl-irc/cvsroot/cl-irc/command.lisp 2006/02/15 20:14:21 1.16
@@ -1,4 +1,4 @@
-;;;; $Id: command.lisp,v 1.15 2006/02/14 21:51:21 ehuelsmann Exp $
+;;;; $Id: command.lisp,v 1.16 2006/02/15 20:14:21 ehuelsmann Exp $
;;;; $Source: /project/cl-irc/cvsroot/cl-irc/command.lisp,v $
;;;; See LICENSE for licensing information.
@@ -77,62 +77,62 @@
is now registered and known the to the entire IRC network. The reply
message MUST contain the full client identifier upon which it was
registered."
- (send-irc-message connection :pass nil password))
+ (send-irc-message connection :pass password))
(defmethod nick ((connection connection) (new-nickname string))
- (send-irc-message connection :nick nil new-nickname))
+ (send-irc-message connection :nick new-nickname))
(defmethod user- ((connection connection) (username string)
(mode integer) &optional (realname ""))
- (send-irc-message connection :user realname username mode "*"))
+ (send-irc-message connection :user username mode "*" realname))
(defmethod oper ((connection connection) (name string) (password string))
- (send-irc-message connection :oper nil name password))
+ (send-irc-message connection :oper name password))
(defmethod mode ((connection connection) (nickname string) (mode string))
- (send-irc-message connection :mode nil nickname mode))
+ (send-irc-message connection :mode nickname mode))
;; utility functions not part of the RFCs
(defmethod op ((connection connection) (channel string) (nickname string))
- (send-irc-message connection :mode nil channel "+o" nickname))
+ (send-irc-message connection :mode channel "+o" nickname))
(defmethod op ((connection connection) (channel channel) (user user))
(op connection (name channel) (nickname user)))
(defmethod deop ((connection connection) (channel string) (nickname string))
- (send-irc-message connection :mode nil channel "-o" nickname))
+ (send-irc-message connection :mode channel "-o" nickname))
(defmethod deop ((connection connection) (channel channel) (user user))
(deop connection (name channel) (nickname user)))
(defmethod voice ((connection connection) (channel string) (nickname string))
- (send-irc-message connection :mode nil channel "+v" nickname))
+ (send-irc-message connection :mode channel "+v" nickname))
(defmethod voice ((connection connection) (channel channel) (user user))
(voice connection (name channel) (nickname user)))
(defmethod devoice ((connection connection) (channel string) (nickname string))
- (send-irc-message connection :mode nil channel "-v" nickname))
+ (send-irc-message connection :mode channel "-v" nickname))
(defmethod devoice ((connection connection) (channel channel) (user user))
(devoice connection (name channel) (nickname user)))
(defmethod ban ((connection connection) (channel string) (mask string))
- (send-irc-message connection :mode nil channel "+b" mask))
+ (send-irc-message connection :mode channel "+b" mask))
(defmethod ban ((connection connection) (channel channel) (mask string))
(ban connection (name channel) mask))
;; unban or deban?
(defmethod unban ((connection connection) (channel string) (mask string))
- (send-irc-message connection :mode nil channel "-b" mask))
+ (send-irc-message connection :mode channel "-b" mask))
(defmethod unban ((connection connection) (channel channel) (mask string))
(unban connection (name channel) mask))
(defmethod service ((connection connection) (nickname string)
(distribution string) (info string))
- (send-irc-message connection :service info nickname "*" distribution 0 0 info))
+ (send-irc-message connection :service nickname "*" distribution 0 0 info))
(defmethod quit ((connection connection) &optional (message *default-quit-message*))
(remove-all-channels connection)
@@ -145,10 +145,11 @@
(close (network-stream connection))))
(defmethod squit ((connection connection) (server string) (comment string))
- (send-irc-message connection :squit comment server))
+ (send-irc-message connection :squit server comment))
(defmethod join ((connection connection) (channel string) &key password)
- (apply #'send-irc-message connection :join nil channel (when password (list password))))
+ (apply #'send-irc-message
+ connection :join channel (when password (list password))))
(defmethod join ((connection connection) (channel channel) &key password)
(join connection (name channel) :password password))
@@ -159,7 +160,7 @@
(join connection channel)))
(defmethod part ((connection connection) (channel string))
- (send-irc-message connection :part nil channel))
+ (send-irc-message connection :part channel))
(defmethod part ((connection connection) (channel channel))
(part connection (name channel)))
@@ -170,14 +171,14 @@
(part connection (name channel))))
(defmethod topic- ((connection connection) (channel string) (topic string))
- (send-irc-message connection :topic topic channel))
+ (send-irc-message connection :topic channel topic))
(defmethod topic- ((connection connection) (channel channel) (topic string))
(topic- connection (name channel) topic))
(defmethod names ((connection connection) (channel string)
&optional (target ""))
- (send-irc-message connection :names nil channel target))
+ (send-irc-message connection :names channel target))
(defmethod names ((connection connection) (channel channel)
&optional (target ""))
@@ -185,24 +186,24 @@
(defmethod list- ((connection connection) &optional
(channel "") (target ""))
- (send-irc-message connection :list nil channel target))
+ (send-irc-message connection :list channel target))
(defmethod invite ((connection connection) (nickname string) (channel string))
- (send-irc-message connection :invite nil nickname channel))
+ (send-irc-message connection :invite nickname channel))
(defmethod invite ((connection connection) (user user) (channel channel))
(invite connection (nickname user) (name channel)))
(defmethod kick ((connection connection) (channel string)
(user string) &optional (comment ""))
- (send-irc-message connection :kick comment channel user))
+ (send-irc-message connection :kick channel user comment))
(defmethod kick ((connection connection) (channel channel)
(user user) &optional (comment ""))
(kick connection (name channel) (nickname user) comment))
(defmethod privmsg ((connection connection) (target string) (message string))
- (send-irc-message connection :privmsg message target))
+ (send-irc-message connection :privmsg target message))
(defmethod privmsg ((connection connection) (user user) (message string))
(privmsg connection (nickname user) message))
@@ -211,7 +212,7 @@
(privmsg connection (name channel) message))
(defmethod notice ((connection connection) (target string) (message string))
- (send-irc-message connection :notice message target))
+ (send-irc-message connection :notice target message))
(defmethod notice ((connection connection) (user user) (message string))
(notice connection (nickname user) message))
@@ -220,23 +221,23 @@
(notice connection (name channel) message))
(defmethod motd- ((connection connection) &optional (target ""))
- (send-irc-message connection :motd nil target))
+ (send-irc-message connection :motd target))
(defmethod lusers ((connection connection) &optional (mask "") (target ""))
- (send-irc-message connection :lusers nil mask target))
+ (send-irc-message connection :lusers mask target))
(defmethod version ((connection connection) &optional (target ""))
- (send-irc-message connection :version nil target))
+ (send-irc-message connection :version target))
(defmethod stats ((connection connection) &optional (query "") (target ""))
- (send-irc-message connection :stats nil query target))
+ (send-irc-message connection :stats query target))
(defmethod links ((connection connection) &optional (remote-server "")
(server-mask ""))
- (send-irc-message connection :links nil remote-server server-mask))
+ (send-irc-message connection :links remote-server server-mask))
(defmethod time- ((connection connection) &optional (target ""))
- (send-irc-message connection :time nil target))
+ (send-irc-message connection :time target))
(defun connect (&key (nickname *default-nickname*)
(username nil)
@@ -266,29 +267,29 @@
connection))
(defmethod trace- ((connection connection) &optional (target ""))
- (send-irc-message connection :trace nil target))
+ (send-irc-message connection :trace target))
(defmethod admin ((connection connection) &optional (target ""))
- (send-irc-message connection :admin nil target))
+ (send-irc-message connection :admin target))
(defmethod info ((connection connection) &optional (target ""))
- (send-irc-message connection :info nil target))
+ (send-irc-message connection :info target))
(defmethod servlist ((connection connection) &optional (mask "") (type ""))
- (send-irc-message connection :servlist nil mask type))
+ (send-irc-message connection :servlist mask type))
(defmethod squery ((connection connection) (service-name string) (text string))
(send-irc-message connection :squery text service-name))
(defmethod who ((connection connection) &optional (mask "") (o ""))
- (send-irc-message connection :who nil mask o))
+ (send-irc-message connection :who mask o))
(defmethod whois ((connection connection) (mask string) &optional (target ""))
- (send-irc-message connection :whois nil target mask))
+ (send-irc-message connection :whois target mask))
(defmethod whowas ((connection connection) (nickname string)
&optional (count "") (target ""))
- (send-irc-message connection :whowas nil nickname count target))
+ (send-irc-message connection :whowas nickname count target))
(defmethod kill ((connection connection) (nickname string) &optional (comment ""))
(send-irc-message connection :kill comment nickname))
@@ -297,10 +298,10 @@
(kill connection (nickname user) comment))
(defmethod ping ((connection connection) (server string))
- (send-irc-message connection :ping nil server))
+ (send-irc-message connection :ping server))
(defmethod pong ((connection connection) (server string) &optional (server2 ""))
- (send-irc-message connection :pong nil server server2))
+ (send-irc-message connection :pong server server2))
(defmethod error- ((connection connection) (message string))
(send-irc-message connection :error message))
@@ -319,29 +320,29 @@
(defmethod summon ((connection connection) (nickname string)
&optional (target "") (channel ""))
- (send-irc-message connection :summon nil nickname target channel))
+ (send-irc-message connection :summon nickname target channel))
(defmethod users- ((connection connection) &optional (target ""))
- (send-irc-message connection :users nil target))
+ (send-irc-message connection :users target))
(defmethod wallops ((connection connection) (message string))
(send-irc-message connection :wallops message))
(defmethod userhost ((connection connection) (nickname string))
- (send-irc-message connection :userhost nil nickname))
+ (send-irc-message connection :userhost nickname))
(defmethod userhost ((connection connection) (user user))
(userhost connection (nickname user)))
(defmethod ison ((connection connection) (nickname string))
- (send-irc-message connection :ison nil nickname))
+ (send-irc-message connection :ison nickname))
(defmethod ison ((connection connection) (user user))
(ison connection (nickname user)))
;; utility functions not part of the RFC
(defmethod ctcp ((connection connection) target message)
- (send-irc-message connection :privmsg (make-ctcp-message message) target))
+ (send-irc-message connection :privmsg target (make-ctcp-message message)))
#|
There's too much wrong with this method to fix it now.
--- /project/cl-irc/cvsroot/cl-irc/event.lisp 2006/02/15 19:03:53 1.14
+++ /project/cl-irc/cvsroot/cl-irc/event.lisp 2006/02/15 20:14:21 1.15
@@ -1,4 +1,4 @@
-;;;; $Id: event.lisp,v 1.14 2006/02/15 19:03:53 ehuelsmann Exp $
+;;;; $Id: event.lisp,v 1.15 2006/02/15 20:14:21 ehuelsmann Exp $
;;;; $Source: /project/cl-irc/cvsroot/cl-irc/event.lisp,v $
;;;; See LICENSE for licensing information.
@@ -251,20 +251,21 @@
(multiple-value-bind (second minute hour date month year day) (get-decoded-time)
(send-irc-message
(connection message)
- :notice (make-ctcp-message
- (format nil "TIME ~A"
- (make-time-message second minute hour date month year day)))
- (source message))))
+ :notice (source message)
+ (make-ctcp-message
+ (format nil "TIME ~A"
+ (make-time-message second minute hour date month year day))))))
(defmethod default-hook ((message ctcp-source-message))
(send-irc-message
(connection message)
- :notice (make-ctcp-message
- (format nil "SOURCE ~A:~A:~A"
- *download-host*
- *download-directory*
- *download-file*))
- (source message)))
+ :notice
+ (source message)
+ (make-ctcp-message
+ (format nil "SOURCE ~A:~A:~A"
+ *download-host*
+ *download-directory*
+ *download-file*))))
(defmethod default-hook ((message ctcp-finger-message))
(let* ((user (user (connection message)))
@@ -273,23 +274,23 @@
(nickname user))))
(send-irc-message
(connection message)
- :notice (make-ctcp-message
- (format nil "FINGER ~A" finger-info))
- (source message))))
+ :notice (source message)
+ (make-ctcp-message
+ (format nil "FINGER ~A" finger-info)))))
(defmethod default-hook ((message ctcp-version-message))
(send-irc-message
(connection message)
- :notice (make-ctcp-message
- (format nil "VERSION ~A" *ctcp-version*))
- (source message)))
+ :notice (source message)
+ (make-ctcp-message
+ (format nil "VERSION ~A" *ctcp-version*))))
(defmethod default-hook ((message ctcp-ping-message))
(send-irc-message
(connection message)
- :notice (make-ctcp-message
- (format nil "PING ~A" (trailing-argument message)))
- (source message)))
+ :notice (source message)
+ (make-ctcp-message
+ (format nil "PING ~A" (trailing-argument message)))))
(defmethod irc-message-event (connection (message ctcp-dcc-chat-request-message))
(declare (ignore connection))
--- /project/cl-irc/cvsroot/cl-irc/protocol.lisp 2006/02/15 19:14:33 1.35
+++ /project/cl-irc/cvsroot/cl-irc/protocol.lisp 2006/02/15 20:14:21 1.36
@@ -1,4 +1,4 @@
-;;;; $Id: protocol.lisp,v 1.35 2006/02/15 19:14:33 ehuelsmann Exp $
+;;;; $Id: protocol.lisp,v 1.36 2006/02/15 20:14:21 ehuelsmann Exp $
;;;; $Source: /project/cl-irc/cvsroot/cl-irc/protocol.lisp,v $
;;;; See LICENSE for licensing information.
@@ -172,8 +172,7 @@
(defgeneric read-message (connection))
(defgeneric start-process (function name))
(defgeneric read-irc-message (connection))
-(defgeneric send-irc-message (connection command
- &optional trailing-argument &rest arguments))
+(defgeneric send-irc-message (connection command &rest arguments))
(defgeneric get-hooks (connection class))
(defgeneric add-hook (connection class hook))
(defgeneric remove-hook (connection class hook))
@@ -304,12 +303,10 @@
;; satisfy read-message-loop assumption of nil when no more messages
(defmethod send-irc-message ((connection connection) command
- &optional trailing-argument &rest arguments)
+ &rest arguments)
"Turn the arguments into a valid IRC message and send it to the
server, via the `connection'."
- (let ((raw-message (make-irc-message command
- :arguments arguments
- :trailing-argument trailing-argument)))
+ (let ((raw-message (apply #'make-irc-message command arguments)))
(write-sequence raw-message (network-stream connection))
(force-output (network-stream connection))
raw-message))
--- /project/cl-irc/cvsroot/cl-irc/utility.lisp 2006/01/24 22:10:58 1.9
+++ /project/cl-irc/cvsroot/cl-irc/utility.lisp 2006/02/15 20:14:21 1.10
@@ -1,4 +1,4 @@
-;;;; $Id: utility.lisp,v 1.9 2006/01/24 22:10:58 ehuelsmann Exp $
+;;;; $Id: utility.lisp,v 1.10 2006/02/15 20:14:21 ehuelsmann Exp $
;;;; $Source: /project/cl-irc/cvsroot/cl-irc/utility.lisp,v $
;;;; See the LICENSE file for licensing information.
@@ -49,18 +49,14 @@
second
year))
-(defun make-irc-message (command &key (arguments nil)
- (trailing-argument nil))
+(defun make-irc-message (command &rest arguments)
"Return a valid IRC message, as a string, composed of the input
parameters."
(let ((*print-circle* nil))
- (format nil "~A~{ ~A~}~A~A~A~A" command arguments
- (if trailing-argument
- " :"
- "")
- (or trailing-argument "")
- #\Return
- #\Linefeed)))
+ (format nil
+ "~A~{ ~A~}~@[ :~A~]~A~A"
+ command (butlast arguments) (car (last arguments))
+ #\Return #\Linefeed)))
(defun make-ctcp-message (string)
"Return a valid IRC CTCP message, as a string, composed by