Next: Stanza chains, Previous: Extending service discovery, Up: Hacking and extending
Chat printers are functions that print a certain aspect of an incoming
message in a chat buffer. Included are functions for printing subjects
(jabber-chat-print-subject), bodies
(jabber-chat-print-body, and jabber:x:oob-style URLs
(jabber-chat-print-url). The functions in
jabber-chat-printers are called in order, with the entire
<message/> stanza as argument. As described in the docstring
of jabber-chat-printers, these functions are run in one of two
modes: printp, in which they are supposed to return true if
they would print anything, and insert, in which they are
supposed to actually print something, if appropriate, using the
function insert.
For MUC, the functions in jabber-muc-printers are prepended to
those in jabber-chat-printers.
Body printers are a subgroup of chat printers. They are exclusive; only
one of them applies to any given message. The idea is that
“higher-quality” parts of the message override pieces included for
backwards compatibility. Included are jabber-muc-print-invite
and jabber-chat-normal-body; functions for XHTML-IM and PGP
encrypted messages may be written in the future. The functions in
jabber-body-printers are called in order until one of them
returns non-nil.