Changeset 345577b for protocols/nogaim.h


Ignore:
Timestamp:
2015-10-30T10:27:20Z (9 years ago)
Author:
dequis <dx@…>
Branches:
master
Children:
fb2338d
Parents:
0db6618
git-author:
dequis <dx@…> (13-09-15 04:17:14)
git-committer:
dequis <dx@…> (30-10-15 10:27:20)
Message:

IRC self-message support (messages sent by yourself from other clients)

This adds an OPT_SELFMESSAGE flag that can be passed to imcb_buddy_msg()
or imcb_chat_msg() to indicate that the protocol knows that the message
being sent is a self message.

This needs to be explicit since the old behavior is to silently drop
these messages, which also removed server echoes.

This commit doesn't break API/ABI, the flags parameters that were added
are all internal (between protocols and UI code)

On the irc protocol side, the situation isn't very nice, since some
clients put these messages in the wrong window. Irssi, hexchat and mirc
get this wrong. Irssi 0.8.18 has a fix for it, and the others have
scripts to patch it.

But meanwhile, there's a "self_messages" global setting that lets users
disable this, or get them as normal messages / notices with a "->"
prefix, which loosely imitates the workaround used by the ZNC
"privmsg_prefix" module.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/nogaim.h

    r0db6618 r345577b  
    7070#define OPT_PONGS       0x00010000 /* Service sends us keep-alives */
    7171#define OPT_PONGED      0x00020000 /* Received a keep-alive during last interval */
     72#define OPT_SELFMESSAGE 0x00080000 /* A message sent by self from another location */
    7273
    7374/* ok. now the fun begins. first we create a connection structure */
     
    325326G_MODULE_EXPORT void imcb_buddy_action_response(bee_user_t *bu, const char *action, char * const args[], void *data);
    326327
    327 G_MODULE_EXPORT void imcb_buddy_typing(struct im_connection *ic, const char *handle, uint32_t flags);
     328G_MODULE_EXPORT void imcb_buddy_typing(struct im_connection *ic, const char *handle, guint32 flags);
    328329G_MODULE_EXPORT struct bee_user *imcb_buddy_by_handle(struct im_connection *ic, const char *handle);
    329330G_MODULE_EXPORT void imcb_clean_handle(struct im_connection *ic, char *handle);
Note: See TracChangeset for help on using the changeset viewer.