[Pidgin] #15508: Support for XEP-0280: Message Carbons

Pidgin trac at pidgin.im
Mon Feb 16 01:29:14 EST 2015

#15508: Support for XEP-0280: Message Carbons
 Reporter:  xnyhps                  |       Owner:  deryni
     Type:  patch                   |      Status:  new
Milestone:  Patches Needing Review  |   Component:  XMPP
  Version:  2.10.6                  |  Resolution:
 Keywords:  xmpp carbons jabber     |

Comment (by xnyhps):

 Replying to [comment:40 EionRobb]:
 > Whilst technically correct, I've found the use of serv_got_im(...,
 PURPLE_MESSAGE_SEND) isn't well supported by UI, and other prpl's will use
 purple_write_conversation() instead.  In Pidgin in particular the use of
 _write_conversation() will colour the text in Blue as if it were sent from
 the client and won't trigger the 'outgoing IM' sound.  In Adium, the
 message will be displayed (as opposed to using serv_got_im() which will
 not display the message at all).

 The only difference I see between calling `serv_got_im` and
 `purple_conv_im_write` directly appears to be that `serv_got_im` fires a
 couple of signals (`"blocked-im-msg"`, `"receiving-im-msg"` and
 `"received-im-msg"`) and that `serv_got_im`
 server.c:554]) sets:
          * XXX: Should we be setting this here, or relying on prpls to set
         flags |= PURPLE_MESSAGE_RECV;

 Now I think a message with flags `PURPLE_MESSAGE_RECV |
 PURPLE_MESSAGE_SEND` makes sense (it's a message that was sent by you, but
 you also received it). But if some UIs can't handle this, then maybe the
 `flags |= PURPLE_MESSAGE_RECV` line should be removed? I think the effect
 would be the same, and it wouldn't require API-hacks.

 How did you test this in Adium? This patch has been applied to Adium 1.6hg
 for a while (with some minor modifications to the UI), and there it seems
 to work fine.

 > In a semi-unrelated note, has anyone tried turning this into a plugin

 I haven't.

Ticket URL: <https://developer.pidgin.im/ticket/15508#comment:41>
Pidgin <https://pidgin.im>

More information about the Tracker mailing list