X-Git-Url: https://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-handle.el;h=0e35d5cf2fc537519819316750e9557e08f9a1eb;hp=2ca23eb692156e5a361df10ef806e56a01199d3e;hb=0c4cac0995b71622df3bf2616b9cfed407c42b2a;hpb=005a2a7642c9f43d699922799801124a77d56f5d diff --git a/lisp/riece-handle.el b/lisp/riece-handle.el index 2ca23eb..0e35d5c 100644 --- a/lisp/riece-handle.el +++ b/lisp/riece-handle.el @@ -42,19 +42,12 @@ (riece-make-identity channel riece-server-name)) channels)))) (riece-naming-assert-rename old new) - (let ((pointer (riece-identity-member old-identity - riece-current-channels))) - (when pointer - (setcar pointer new-identity) - (with-current-buffer (riece-channel-buffer-name new-identity) - (rename-buffer (riece-channel-buffer-name new-identity))) - (if (riece-identity-equal new-identity riece-current-channel) - (riece-switch-to-channel new-identity)) - (setq channels (cons new-identity channels)))) + (if (riece-identity-member old-identity riece-current-channels) + (setq channels (cons new channels))) (riece-insert-change (mapcar (lambda (channel) - (riece-channel-buffer-name - (riece-make-identity channel riece-server-name))) + (riece-channel-buffer (riece-make-identity + channel riece-server-name))) channels) (format "%s -> %s\n" (riece-format-identity old-identity t) @@ -114,10 +107,12 @@ (user-identity (riece-make-identity user riece-server-name))) (while channels (riece-naming-assert-join user (car channels)) + (if (and riece-gather-channel-modes + (riece-identity-equal-no-server user riece-real-nickname)) + (riece-send-string (format "MODE %s\r\n" (car channels)))) (let* ((channel-identity (riece-make-identity (car channels) riece-server-name)) - (buffer (get-buffer (riece-channel-buffer-name - channel-identity)))) + (buffer (riece-channel-buffer channel-identity))) (riece-insert-change buffer (format "%s (%s) has joined %s\n" @@ -151,8 +146,7 @@ (riece-naming-assert-part user (car channels)) (let* ((channel-identity (riece-make-identity (car channels) riece-server-name)) - (buffer (get-buffer (riece-channel-buffer-name - channel-identity)))) + (buffer (riece-channel-buffer channel-identity))) (riece-insert-change buffer (concat @@ -188,7 +182,7 @@ (channel-identity (riece-make-identity channel riece-server-name)) (user-identity (riece-make-identity user riece-server-name))) (riece-naming-assert-part user channel) - (let ((buffer (get-buffer (riece-channel-buffer-name channel-identity)))) + (let ((buffer (riece-channel-buffer channel-identity))) (riece-insert-change buffer (concat @@ -232,9 +226,8 @@ (let ((buffers (mapcar (lambda (channel) - (get-buffer - (riece-channel-buffer-name - (riece-make-identity channel riece-server-name)))) + (riece-channel-buffer (riece-make-identity channel + riece-server-name))) channels))) (riece-insert-change buffers @@ -277,9 +270,8 @@ (let ((buffers (mapcar (lambda (channel) - (get-buffer - (riece-channel-buffer-name - (riece-make-identity channel riece-server-name)))) + (riece-channel-buffer (riece-make-identity channel + riece-server-name))) channels))) (riece-insert-change buffers @@ -308,16 +300,21 @@ (defun riece-handle-invite-message (prefix string) (let* ((user (riece-prefix-nickname prefix)) (parameters (riece-split-parameters string)) - (channel (car parameters))) + (invited (car parameters)) + (channel (nth 1 parameters)) + (channel-identity (riece-make-identity channel riece-server-name))) + (if (riece-identity-equal-no-server invited riece-real-nickname) + (setq riece-join-channel-candidate channel-identity)) (riece-insert-info (list riece-dialogue-buffer riece-others-buffer) (concat (riece-concat-server-name - (format "%s invites you to %s" + (format "%s invites %s to %s" (riece-format-identity (riece-make-identity user riece-server-name)) (riece-format-identity (riece-make-identity - channel riece-server-name)))) + invited riece-server-name)) + (riece-format-identity channel-identity))) "\n")))) (defun riece-handle-topic-message (prefix string) @@ -328,7 +325,7 @@ (user-identity (riece-make-identity user riece-server-name)) (channel-identity (riece-make-identity channel riece-server-name))) (riece-channel-set-topic (riece-get-channel channel) topic) - (let ((buffer (get-buffer (riece-channel-buffer-name channel-identity)))) + (let ((buffer (riece-channel-buffer channel-identity))) (riece-insert-change buffer (format "Topic by %s: %s\n" @@ -387,8 +384,7 @@ string (substring string (match-end 0))) (riece-parse-channel-modes string channel) (let* ((channel-identity (riece-make-identity channel riece-server-name)) - (buffer (get-buffer (riece-channel-buffer-name - channel-identity)))) + (buffer (riece-channel-buffer channel-identity))) (riece-insert-change buffer (format "Mode by %s: %s\n"