* riece-display.el (riece-channel-buffer-create): Add new hook.
[riece] / lisp / riece-handle.el
index 91bc3ae..371c407 100644 (file)
@@ -24,8 +24,6 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'riece-inlines))
-
 (require 'riece-misc)
 (require 'riece-message)
 (require 'riece-channel)
   (let* ((old (riece-prefix-nickname prefix))
         (new (car (riece-split-parameters string)))
         (channels (riece-user-get-channels old))
-        (visible (riece-identity-member-no-server
-                  riece-current-channel channels)))
+        (visible (riece-identity-member riece-current-channel channels)))
     (riece-naming-assert-rename old new)
-    (let ((pointer (riece-identity-member-no-server
+    (let ((pointer (riece-identity-member
                    (riece-make-identity old)
                    riece-current-channels)))
       (when pointer
        (setcar pointer (riece-make-identity new))
-       (setcar (riece-identity-assoc-no-server (riece-make-identity old)
-                                               riece-channel-buffer-alist)
+       (setcar (riece-identity-assoc (riece-make-identity old)
+                                     riece-channel-buffer-alist)
                (riece-make-identity new))
-       (setcar (riece-identity-assoc-no-server (riece-make-identity old)
-                                               riece-user-list-buffer-alist)
+       (setcar (riece-identity-assoc (riece-make-identity old)
+                                     riece-user-list-buffer-alist)
                (riece-make-identity new))
-       (if (riece-identity-equal-no-server (riece-make-identity old)
-                                           riece-current-channel)
+       (if (riece-identity-equal (riece-make-identity old)
+                                 riece-current-channel)
            (riece-switch-to-channel (riece-make-identity new)))
-       (push (riece-make-identity new) channels)))
+       (setq channels (cons (riece-make-identity new) channels))))
     (riece-insert-change (mapcar
                          (lambda (channel)
-                           (cdr (riece-identity-assoc-no-server
+                           (cdr (riece-identity-assoc
                                  (riece-make-identity channel)
                                  riece-channel-buffer-alist)))
                          channels)
 (defun riece-handle-privmsg-message (prefix string)
   (let* ((user (riece-prefix-nickname prefix))
         (parameters (riece-split-parameters string))
-        (targets (split-string (pop parameters) ","))
-        (message (pop parameters)))
-    (unless (equal message "")
-      (while targets
-       (riece-display-message
-        (riece-make-message user (riece-make-identity (pop targets))
-                            message))))))
+        (targets (split-string (car parameters) ","))
+        (message (nth 1 parameters)))
+    (unless (equal message "")         ;not ignored by server?
+      (riece-display-message
+       (riece-make-message user (riece-make-identity (car targets))
+                          message)))))
 
 (defun riece-handle-notice-message (prefix string)
   (let* ((user (if prefix
                   (riece-prefix-nickname prefix)))
         (parameters (riece-split-parameters string))
-        (targets (split-string (pop parameters) ","))
-        (message (pop parameters)))
-    (unless (equal message "")
+        (targets (split-string (car parameters) ","))
+        (message (nth 1 parameters)))
+    (unless (equal message "")         ;not ignored by server?
       (if user
-         (while targets
-           (riece-display-message
-            (riece-make-message user (riece-make-identity (pop targets))
-                                message 'notice)))
+         (riece-display-message
+          (riece-make-message user (riece-make-identity (car targets))
+                              message 'notice))
        ;; message from server
        (riece-insert-notice
         (list riece-dialogue-buffer riece-others-buffer)
     (while channels
       (riece-naming-assert-join user (car channels))
       ;;XXX
-      (if (string-equal-ignore-case user riece-real-nickname)
+      (if (riece-identity-equal-no-server user riece-real-nickname)
          (riece-switch-to-channel (riece-make-identity (car channels))))
-      (let ((buffer (cdr (riece-identity-assoc-no-server
+      (let ((buffer (cdr (riece-identity-assoc
                          (riece-make-identity (car channels))
                          riece-channel-buffer-alist))))
        (riece-insert-change
 (defun riece-handle-part-message (prefix string)
   (let* ((user (riece-prefix-nickname prefix))
         (parameters (riece-split-parameters string))
-        (channels (split-string (pop parameters) ","))
-        (message (pop parameters)))
+        (channels (split-string (car parameters) ","))
+        (message (nth 1 parameters)))
     (while channels
       (riece-naming-assert-part user (car channels))
-      (let ((buffer (cdr (riece-identity-assoc-no-server
+      (let ((buffer (cdr (riece-identity-assoc
                          (riece-make-identity (car channels))
                          riece-channel-buffer-alist))))
        (riece-insert-change
 (defun riece-handle-kick-message (prefix string)
   (let* ((kicker (riece-prefix-nickname prefix))
         (parameters (riece-split-parameters string))
-        (channel (pop parameters))
-        (user (pop parameters))
-        (message (pop parameters)))
+        (channel (car parameters))
+        (user (nth 1 parameters))
+        (message (nth 2 parameters)))
     (riece-naming-assert-part user channel)
-    (let ((buffer (cdr (riece-identity-assoc-no-server
+    (let ((buffer (cdr (riece-identity-assoc
                        (riece-make-identity channel)
                        riece-channel-buffer-alist))))
       (riece-insert-change
         (pointer channels)
         (message (car (riece-split-parameters string))))
     ;; If you are quitting, no need to cleanup.
-    (unless (string-equal-ignore-case user riece-real-nickname)
+    (unless (riece-identity-equal-no-server user riece-real-nickname)
       ;; You were talking with the user.
-      (if (riece-identity-member-no-server (riece-make-identity user)
-                                          riece-current-channels)
+      (if (riece-identity-member (riece-make-identity user)
+                                riece-current-channels)
          (riece-part-channel user)) ;XXX
       (setq pointer channels)
       (while pointer
       (let ((buffers
             (mapcar
              (lambda (channel)
-               (cdr (riece-identity-assoc-no-server
+               (cdr (riece-identity-assoc
                      (riece-make-identity channel)
                      riece-channel-buffer-alist)))
              channels)))
 (defun riece-handle-kill-message (prefix string)
   (let* ((killer (riece-prefix-nickname prefix))
         (parameters (riece-split-parameters string))
-        (user (pop parameters))
-        (message (pop parameters))
+        (user (car parameters))
+        (message (nth 1 parameters))
         (channels (copy-sequence (riece-user-get-channels user)))
         pointer)
     ;; You were talking with the user.
-    (if (riece-identity-member-no-server (riece-make-identity user)
-                                        riece-current-channels)
+    (if (riece-identity-member (riece-make-identity user)
+                              riece-current-channels)
        (riece-part-channel user)) ;XXX
     (setq pointer channels)
     (while pointer
     (let ((buffers
           (mapcar
            (lambda (channel)
-             (cdr (riece-identity-assoc-no-server
+             (cdr (riece-identity-assoc
                    (riece-make-identity channel)
                    riece-channel-buffer-alist)))
            channels)))
 (defun riece-handle-invite-message (prefix string)
   (let* ((user (riece-prefix-nickname prefix))
         (parameters (riece-split-parameters string))
-        (channel (pop parameters)))
+        (channel (car parameters)))
     (riece-insert-info
      (list riece-dialogue-buffer riece-others-buffer)
      (concat
 (defun riece-handle-topic-message (prefix string)
   (let* ((user (riece-prefix-nickname prefix))
         (parameters (riece-split-parameters string))
-        (channel (pop parameters))
-        (topic (pop parameters)))
+        (channel (car parameters))
+        (topic (nth 1 parameters)))
     (riece-channel-set-topic (riece-get-channel channel) topic)
-    (let ((buffer (cdr (riece-identity-assoc-no-server
+    (let ((buffer (cdr (riece-identity-assoc
                        (riece-make-identity channel)
                        riece-channel-buffer-alist))))
       (riece-insert-change
       (setq channel (match-string 1 string)
            string (substring string (match-end 0)))
       (riece-parse-channel-modes string channel)
-      (let ((buffer (cdr (riece-identity-assoc-no-server
+      (let ((buffer (cdr (riece-identity-assoc
                          (riece-make-identity channel)
                          riece-channel-buffer-alist))))
        (riece-insert-change