All pastes #799513 Raw Edit

jabber-chat-normal-body

public text v1 · immutable
#799513 ·published 2007-11-27 18:20 UTC
rendered paste body
(defun jabber-chat-normal-body (xml-data who mode)
  "Print body for received message in XML-DATA."
  (let ((body (car
               (jabber-xml-node-children
                (car
                 (jabber-xml-get-children xml-data 'body))))))
    (when body

      (when (eql mode :insert)
        (if (and (> (length body) 4)
                 (string= (substring body 0 4) "/me "))
            (let ((action (substring body 4))
                  (nick (cond
                         ((eq who :local)
                          (plist-get (fsm-get-state-data jabber-buffer-connection) :username))
                         ((jabber-muc-message-p xml-data)
                          (jabber-jid-resource (jabber-xml-get-attribute xml-data 'from)))
                         (t
                          (jabber-jid-displayname (jabber-xml-get-attribute xml-data 'from))))))
              (insert (jabber-propertize
                       (concat nick
                               " "
                               action)
                       'face 'jabber-chat-prompt-system)))
          (insert (jabber-propertize
                   body
                   'face (case who
                           ((:foreign :muc-foreign) 'jabber-chat-text-foreign)
                           ((:local :muc-local) 'jabber-chat-text-local))))))
      t)))