cl-irc assigns the final argument of an IRC message to the TRAILING-ARGUMENT slot if it begins with a colon. However, the colon is purely a syntactic marker that indicates all following text to the end of the line is part of the final argument. Colons always precede final arguments containing spaces, but they might also precede arguments that will never contain spaces (such as channel names) and might be omitted from a final argument that happens not to have any spaces.
For example, the following messages are equivalent:
:Joe!bob@example.com JOIN #lisp :Joe!bob@example.com JOIN :#lisp
And so are these:
:Joe!bob@example.com PRIVMSG #lisp Hello! :Joe!bob@example.com PRIVMSG #lisp :Hello!
And these:
:Joe!bob@example.com QUIT Leaving :Joe!bob@example.com QUIT :Leaving
Unfortunately, cl-irc parses each one of them differently.
Would it be possible to change how IRC-MESSAGE objects are created to put the final argument into the ARGUMENTS slot?
Zach