#6: [patch] keep server port and password in connection object
--------------------+-------------------------------------------------------
Reporter: afuchs | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: chat | Version:
Keywords: | Has_patch: 1
--------------------+-------------------------------------------------------
Beirc needs the port and password used to establish a connection in order
to reliably reconnect to the same server (ssh port forwards for example
can cause localhost to have many irc ports open). So, the attached patch
adds them as slots to the connection object.
The patch requires the "external format guessing" patch in order to apply
correctly, but the code will run independently. If needed, I'll create
another patch that applies to vanilla cl-irc.
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/6>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#2: external format guessing for incoming messages
-------------------------+--------------------------------------------------
Reporter: afuchs | Owner: somebody
Type: enhancement | Status: new
Priority: major | Milestone:
Component: chat | Version:
Keywords: | Has_patch: 1
-------------------------+--------------------------------------------------
(reposted from mail to cl-irc-devel)
Hi,
the following patch is a proof-of-concept implementation of external
format guessing for incoming messages (and customizable external
formats for outgoing messages, defaulting conservatively to latin-1).
With that patch, cl-irc now opens a binary stream to the server, and
opens flexi-streams on top of that. The outgoing part is pretty
straightforward; the incoming part not so much (:
Reading works like this:
* We read a line of latin-1 chars
* We try to decode their code-chars (latin1 is a 1:1 translation to
code-chars, and where it isn't, I hope flexistreams takes care of
that (-:) using the list of external-formats in
*default-incoming-external-formats*.
* When we find a decoding that doesn't throw a error, we build a
message from that.
Positive side effect: cl-irc should now work on windows because the
external format allows specification of eol convention. Negative side
effect: I didn't get parsing to work without #\Return, so this patch
appends a #\Return character to the raw message.
Which brings me to the todo list:
* DCC connections probably don't work. I don't care about dcc, so I
won't fix them (:
* The parser should work without #\Return.
* reading latin1 and decoding from the char codes is ... ugly. But
it's probably less ugly than doing our own buffering. Maybe
somebody wants to investigate that. (:
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/2>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#3: Add WHOISCHANNELS to the users channels
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: chat | Version:
Keywords: | Has_patch: 0
-------------------------+--------------------------------------------------
The issue comes from the old TODO file.
One of the problems with the issue is that the library itself is not
actually on these channels, so that there will not be an auto-update when
the user leaves the channels.
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/3>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#5: Split over-long messages into several ones
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: enhancement | Status: new
Priority: minor | Milestone: unscheduled
Component: chat | Version:
Keywords: | Has_patch: 0
-------------------------+--------------------------------------------------
If a message (as in PRIVMSG) is longer than 512 characters
(including carriage return and linefeed) we should probably split
the message into several on behalf of the user.
Introduce a setting which allows send-irc-message to do this?
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/5>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#1: Auto-adjust mode name maps upon server detection
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: enhancement | Status: new
Priority: minor | Milestone: pre-1.0
Component: chat | Version:
Keywords: | Has_patch: 0
-------------------------+--------------------------------------------------
Extend mode tracking and isupport frameworks to detect server type and
version and adjust the character-to-mode-name map accordingly.
I nice to have for 1.0
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/1>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc