From 5662cc0bf85455db3fb50768fd918a0abe4946ac Mon Sep 17 00:00:00 2001 From: ueno Date: Thu, 19 Feb 2004 01:32:36 +0000 Subject: [PATCH] * riece-300.el (riece-handle-353-message): Add 'riece-property on user list string. --- lisp/ChangeLog | 5 +++++ lisp/riece-300.el | 41 ++++++++++++++++++++++++----------------- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 995730b..fc1de8d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2004-02-19 Daiki Ueno + + * riece-300.el (riece-handle-353-message): Add 'riece-property on + user list string. + 2004-02-17 Daiki Ueno * riece-lsdb.el: Add autoload setting for diff --git a/lisp/riece-300.el b/lisp/riece-300.el index 3fd9acc..7306843 100644 --- a/lisp/riece-300.el +++ b/lisp/riece-300.el @@ -220,24 +220,31 @@ "RPL_NAMREPLY \" :[[@|+] [[@|+] [...]]]\"." (if (string-match "^[=\*@] *\\([^ ]+\\) +:" string) (let ((channel (match-string 1 string)) - users) + (start 0)) (setq string (substring string (match-end 0))) - (if (string-match " *$" string) - (setq string (substring string 0 (match-beginning 0)))) - (setq users (split-string string)) - (while users - (if (eq (aref (car users) 0) ?@) - (progn - (riece-naming-assert-join (substring (car users) 1) channel) - (riece-channel-toggle-operator - channel (substring (car users) 1) t)) - (if (eq (aref (car users) 0) ?+) - (progn - (riece-naming-assert-join (substring (car users) 1) channel) - (riece-channel-toggle-speaker - channel (substring (car users) 1) t)) - (riece-naming-assert-join (car users) channel))) - (setq users (cdr users))) + (while (string-match + (concat "\\([@+]\\)?\\(" riece-user-regexp "\\) ") + string start) + (put-text-property (match-beginning 2) (match-end 2) + 'riece-identity + (riece-make-identity (match-string 2 string) + riece-server-name) + string) + (setq start (match-end 0)) + (if (match-beginning 1) + (if (eq (aref string (match-beginning 1)) ?@) + (progn + (riece-naming-assert-join + (match-string 2 string) channel) + (riece-channel-toggle-operator + channel (match-string 2 string) t)) + (if (eq (aref string (match-beginning 1)) ?+) + (progn + (riece-naming-assert-join + (match-string 2 string) channel) + (riece-channel-toggle-speaker + channel (match-string 2 string) t)))) + (riece-naming-assert-join (match-string 2 string) channel))) (let* ((channel-identity (riece-make-identity channel riece-server-name)) (buffer (riece-channel-buffer channel-identity))) -- 1.7.10.4