X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Friece-message.el;h=ba156a4aca379ddf26c18ae756abc2624c8dead0;hb=f337e714ccbd1dbb25e05ea1dac8a99012fa642c;hp=c943e50ce5910c359fe93f020115041984a56080;hpb=449e46959f6777a3d976a7bb869defcaf43c9639;p=elisp%2Friece.git diff --git a/lisp/riece-message.el b/lisp/riece-message.el index c943e50..ba156a4 100644 --- a/lisp/riece-message.el +++ b/lisp/riece-message.el @@ -18,8 +18,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Code: @@ -30,7 +30,7 @@ (require 'riece-misc) (defgroup riece-message nil - "Messages" + "Display messages." :tag "Message" :prefix "riece-" :group 'riece) @@ -64,6 +64,11 @@ :type 'function :group 'riece-message) +(defcustom riece-message-format-function-alist nil + "Alist mapping message types to format functions." + :type 'list + :group 'riece-message) + (defun riece-message-make-open-bracket (message) "Make `open-bracket' string for MESSAGE." (if (eq (riece-message-type message) 'notice) @@ -142,7 +147,7 @@ Normally they are *Dialogue* and/or *Others*." (list riece-dialogue-buffer riece-others-buffer) riece-dialogue-buffer))) -(defun riece-format-message (message &optional global) +(defun riece-format-message-1 (message &optional global) (let ((open-bracket (funcall riece-message-make-open-bracket-function message)) (close-bracket @@ -162,6 +167,12 @@ Normally they are *Dialogue* and/or *Others*." " " (riece-message-text message))) "\n")))) +(defun riece-format-message (message &optional global) + (funcall (or (cdr (assq (riece-message-type message) + riece-message-format-function-alist)) + #'riece-format-message-1) + message global)) + (defun riece-display-message-1 (message) (let ((buffer (riece-message-buffer message)) parent-buffers) @@ -192,7 +203,7 @@ Normally they are *Dialogue* and/or *Others*." Arguments are appropriate to the sender, the receiver, and text content, respectively. Optional 4th argument TYPE specifies the type of the message. -Currently possible values are `action' and `notice'. +Currently possible values are `nil' or `notice'. Optional 5th argument is the flag to indicate that this message is not from the network." (vector speaker target text type own-p))