[beirc-cvs] CVS update: beirc/presentations.lisp

Update of /project/beirc/cvsroot/beirc In directory common-lisp.net:/tmp/cvs-serv9128 Modified Files: presentations.lisp Log Message: add a few more checks for channel-name-ness, inspired by rfcs 2811 and 2813 Date: Sat Oct 1 20:18:50 2005 Author: afuchs Index: beirc/presentations.lisp diff -u beirc/presentations.lisp:1.6 beirc/presentations.lisp:1.7 --- beirc/presentations.lisp:1.6 Fri Sep 30 15:30:36 2005 +++ beirc/presentations.lisp Sat Oct 1 20:18:50 2005 @@ -116,7 +116,18 @@ (defun channelp (channel) (and (stringp channel) (> (length channel) 2) - (not (null (member (char channel 0) '(#\# #\+ #\! #\&)))))) + (< (length channel) 50) + (member (char channel 0) '(#\# #\+ #\! #\&)) + (not (find-if (lambda (c) + (member c `(#\Space + #\, ,(code-char 7) + ;; XXX: #\: is used to separate the + ;; channel name from the channel + ;; mask, and so isn't a part of the + ;; channel name. see rfc2811 for + ;; details. + #\:))) + channel)))) (define-presentation-method accept ((type channel) *standard-input* (view textual-view) &key) (let ((channel (accept 'string :view view :prompt nil)))
participants (1)
-
afuchs@common-lisp.net