Bug#714557: emacs-jabber: conference messages aren't recorded in the history
Package: emacs-jabber
Version: 0.8.0-3
Somewhat counter-intuitively, emacs-jabber’s “history” facility
(:group 'jabber-history, (jabber) Message history) doesn’t
record messages sent to or received via XMPP conferences (MUCs.)
The incoming conference messages appear to be explicitly
discarded in jabber-message-history (jabber-history.el), thanks
to the (not (jabber-muc-message-p xml-data)) form:
99 (add-to-list 'jabber-message-chain 'jabber-message-history)
100 (defun jabber-message-history (jc xml-data)
101 "Log message to log file."
102 (when (and (not jabber-use-global-history)
103 (not (file-directory-p jabber-history-dir)))
104 (make-directory jabber-history-dir))
OTOH, the outgoing messages are only passed to
jabber-history-send-hook from jabber-chat-send via
jabber-chat-send-hooks, while there appear to be no way to
register hooks to run jabber-history-send-hook from
jabber-muc-send (as used in the outgoing conference message
processing path.)
113 (add-hook 'jabber-chat-send-hooks 'jabber-history-send-hook)
114
115 (defun jabber-history-send-hook (body id)
116 "Log outgoing message to log file."
117 (when (and (not jabber-use-global-history)
118 (not (file-directory-p jabber-history-dir)))
119 (make-directory jabber-history-dir))
120 ;; This function is called from a chat buffer, so jabber-chatting-with
121 ;; contains the desired value.
122 (if jabber-history-enabled
123 (jabber-history-log-message "out" nil jabber-chatting-with body (current-time))))
Moreover, the jabber-chatting-with variable will be nil for
conference chat buffers, so the jabber-history-log-message
argument should probably be (or jabber-chatting-with
jabber-group) instead.
--
FSF associate member #7257
Reply to: