Mercurial > ~mikael > mcabber > hg
diff mcabber/mcabber/hooks.c @ 2190:ee3a40ffcd8b
New option: 'clear_unread_on_carbon'
If the new 'clear_unread_on_carbon' option is set to 1, clear the unread
message flag for a contact whenever an outgoing carbon copy of a message
sent to that contact is received from another client.
---
mcabber/mcabber/commands.c | 2 +-
mcabber/mcabber/hbuf.h | 1 +
mcabber/mcabber/hooks.c | 17 ++++++++++++-----
mcabber/mcabber/hooks.h | 2 +-
mcabber/mcabber/screen.c | 18 ++++++++++++++----
mcabber/mcabber/xmpp.c | 2 +-
mcabber/mcabberrc.example | 5 +++++
7 files changed, 35 insertions(+), 12 deletions(-)
author | Holger Weiß <holger@zedat.fu-berlin.de> |
---|---|
date | Thu, 23 Jul 2015 23:44:45 +0200 |
parents | 038c4d601011 |
children | 18fa5ecb1ef4 |
line wrap: on
line diff
--- a/mcabber/mcabber/hooks.c Sun Oct 04 19:07:17 2015 +0200 +++ b/mcabber/mcabber/hooks.c Thu Jul 23 23:44:45 2015 +0200 @@ -212,6 +212,9 @@ else if (encrypted == ENCRYPTED_OTR) message_flags |= HBB_PREFIX_OTRCRYPT; + if (carbon) + message_flags |= HBB_PREFIX_CARBON; + if (type == LM_MESSAGE_SUB_TYPE_GROUPCHAT) { rtype = ROSTER_TYPE_ROOM; is_groupchat = TRUE; @@ -447,10 +450,10 @@ // normal messages. void hk_message_out(const char *bjid, const char *nick, time_t timestamp, const char *msg, - guint encrypted, gpointer xep184) + guint encrypted, gboolean carbon, gpointer xep184) { char *wmsg = NULL, *bmsg = NULL, *mmsg = NULL; - guint cryptflag = 0; + guint message_flags = 0; if (nick) { wmsg = bmsg = g_strdup_printf("PRIV#<%s> %s", nick, msg); @@ -474,10 +477,14 @@ // cases scr_write_outgoing_message() will load the history and we'd // have the message twice... if (encrypted == ENCRYPTED_PGP) - cryptflag = HBB_PREFIX_PGPCRYPT; + message_flags |= HBB_PREFIX_PGPCRYPT; else if (encrypted == ENCRYPTED_OTR) - cryptflag = HBB_PREFIX_OTRCRYPT; - scr_write_outgoing_message(bjid, wmsg, cryptflag, xep184); + message_flags |= HBB_PREFIX_OTRCRYPT; + + if (carbon) + message_flags |= HBB_PREFIX_CARBON; + + scr_write_outgoing_message(bjid, wmsg, message_flags, xep184); // We don't log private messages if (!nick)