X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Friece-message.el;h=c943e50ce5910c359fe93f020115041984a56080;hb=2191bfae45338f2ec08ea9855b7ee756cee01690;hp=a8a2576b333a599880841164458f3296098182a9;hpb=6c268adf10c72433d82ef5b31e4c297e087b0db6;p=riece diff --git a/lisp/riece-message.el b/lisp/riece-message.el index a8a2576..c943e50 100644 --- a/lisp/riece-message.el +++ b/lisp/riece-message.el @@ -66,10 +66,10 @@ (defun riece-message-make-open-bracket (message) "Make `open-bracket' string for MESSAGE." - (if (riece-message-own-p message) - ">" - (if (eq (riece-message-type message) 'notice) - "{" + (if (eq (riece-message-type message) 'notice) + "{" + (if (riece-message-own-p message) + ">" (if (riece-message-private-p message) "=" (if (riece-message-external-p message) @@ -78,10 +78,10 @@ (defun riece-message-make-close-bracket (message) "Make `close-bracket' string for MESSAGE." - (if (riece-message-own-p message) - "<" - (if (eq (riece-message-type message) 'notice) - "}" + (if (eq (riece-message-type message) 'notice) + "}" + (if (riece-message-own-p message) + "<" (if (riece-message-private-p message) "=" (if (riece-message-external-p message) @@ -114,7 +114,7 @@ (riece-message-target message)))) (unless (riece-identity-member target riece-current-channels) (riece-join-channel target) - ;; If you are not joined any channel, + ;; If you are not joined to any channel, ;; switch to the target immediately. (unless riece-current-channel (riece-switch-to-channel target))) @@ -152,10 +152,15 @@ Normally they are *Dialogue* and/or *Others*." (funcall riece-message-make-global-name-function message) (funcall riece-message-make-name-function message))) (server-name (riece-identity-server (riece-message-speaker message)))) - (riece-with-server-buffer (riece-current-server-name) - (riece-concat-server-name - (concat open-bracket name close-bracket - " " (riece-message-text message) "\n"))))) + (riece-with-server-buffer server-name + (concat + (if global + (riece-concat-server-name + (concat open-bracket name close-bracket + " " (riece-message-text message))) + (concat open-bracket name close-bracket + " " (riece-message-text message))) + "\n")))) (defun riece-display-message-1 (message) (let ((buffer (riece-message-buffer message)) @@ -169,13 +174,14 @@ Normally they are *Dialogue* and/or *Others*." (setq parent-buffers (riece-message-parent-buffers message buffer)) (riece-insert buffer (riece-format-message message)) (riece-insert parent-buffers (riece-format-message message t)) - (run-hook-with-args 'riece-after-display-message-functions message))) + (with-current-buffer buffer + (run-hook-with-args 'riece-after-display-message-functions message)))) (defun riece-display-message (message) "Display MESSAGE object." (let ((functions riece-message-filter-functions)) (setq message (copy-sequence message)) - (while functions + (while (and functions message) (setq message (funcall (car functions) message) functions (cdr functions))) (if message @@ -212,6 +218,27 @@ Currently possible values are `action' and `notice'." "Return t if MESSAGE is not from the network." (aref message 4)) +(defun riece-message-set-speaker (message speaker) + "Set the sender of MESSAGE." + (aset message 0 speaker)) + +(defun riece-message-set-target (message target) + "Set the receiver of MESSAGE." + (aset message 1 target)) + +(defun riece-message-set-text (message text) + "Set the text part of MESSAGE." + (aset message 2 text)) + +(defun riece-message-set-type (message type) + "Set the type of MESSAGE. +Currently possible values are `action' and `notice'." + (aset message 3 type)) + +(defun riece-message-set-own-p (message own-p) + "Set t if MESSAGE is not from the network." + (aset message 4 own-p)) + (defun riece-message-private-p (message) "Return t if MESSAGE is a private message." (not (or (riece-channel-p (riece-identity-prefix