Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#8934 closed enhancement (fixed)

Send /me raw for receiving XMPP client to string match

Reported by: spike411 Owned by: nobody
Milestone: Adium 1.3 Component: Service/XMPP (Jabber)
Version: Severity: minor
Keywords: me xmpp irc aim Cc:
Patch Status:


As I have been told, using *text* is practice borrowed from AIM client.

Most Jabber/XMPP and IRC clients expect /me text, though, and Adium replacing it with *text* is annoying for other users as well.

Quoted from [XEP-0045: Multi-User Chat]:

Note: Many Jabber clients also implement a '/me ' command, where the command is followed by a verb or verb phrase (e.g., '/me laughs'). This command does not result in any MUC or IRC protocol action and is therefore not shown in the foregoing table. Instead, the message is sent as-is (e.g., <body>/me laughs</body>) and the receiving client performs string-matching on the character data of the <body/> element to determine if the message begins with the string '/me '; if it does the receiving client will show the message in a special format, usually italicized text sometimes prepended by the "*" character:

  • stpeter laughs

Change History (4)

comment:1 Changed 12 years ago by Jordan

Component: NoneJabber
Keywords: me, xmpp, irc, aimme xmpp irc aim
Milestone: Adium X 1.4
priority: normallowest
Severity: normalminor
Summary: Don't replace /me text with *text*Send /me raw for receiving XMPP client to string match
Type: defectenhancement
Version: 1.2

This also brings up the question, if we receive a /me from another client (at this point likely only XMPP clients) that requires the receiving side to string match, do we do it?

This is not really a defect since our way works fine, it's more of an enhancement to the XMPP implementation in Adium.

Since you didn't specify, I will assume you're using 1.2

comment:2 Changed 12 years ago by Lukáš Polívka

I'm using 1.2, 1.2.1b1, but as I've understood, it's probably quite old behaviour.

They don't really have to be XMPP-clients only. I guess Miranda*-Adium using ICQ or whatever protocol would work the same.

*Or another "alternative"/third-party client.

If you receive /me text, you also basically replace it with *text* and then display it, which I kind of dislike, but at least it's not annoying bunch of other people in MUC (Group Chat) rooms.

Can message themes have (complete) control over the presentation? Let's say I'd like to have it displayed like suggested in XEP-0045, italicized...

comment:3 Changed 12 years ago by David Smith

Resolution: fixed
Status: newclosed

(In [22427]) This significantly reworks how /me is handled. In particular:

  • All special display is handled by CSS; This fixes #8459, and allows message styles to style /me as they choose.
  • A raw /me is sent over the wire. This fixes #8934.

Caveats (feedback *very* welcome, I'm a little hesitant on this)

  • Styles with custom Template.html files will show /me unstyled, without even the default * *
  • Some clients may not support /me (old versions of iChat don't, for example). Catering to these clients may prove quite tricky, as we would need to filter differently for display and transmit, and differently based on the receiver's protocol.
  • The design is not all that nice; in particular, filter plugins can't output html, so I had to output tokens and transform to html in the wkmv

comment:4 Changed 12 years ago by David Smith

Milestone: Adium X 1.4Adium X 1.3
Note: See TracTickets for help on using tickets.