Mercurial > hg
changeset 645:d26a1c9611db
Small handle_presence_muc() update
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Thu, 05 Jan 2006 22:01:11 +0100 |
parents | 68fb0c1dfb15 |
children | a8cb28ca5ff4 |
files | mcabber/src/jabglue.c |
diffstat | 1 files changed, 25 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/jabglue.c Thu Jan 05 20:20:57 2006 +0100 +++ b/mcabber/src/jabglue.c Thu Jan 05 22:01:11 2006 +0100 @@ -1126,21 +1126,24 @@ } else if (buddy_getstatus(room_elt->data, rname) == offline && ust != offline) { gchar *mbuf; + const char *ournick = buddy_getnickname(room_elt->data); + + if (!ournick) { + // I think it shouldn't happen, but let's put a warning for a while... + mbuf = g_strdup_printf("MUC ERR: you have no nickname, " + "please send a bug report!"); + scr_LogPrint(LPRINT_LOGNORM, mbuf); + scr_WriteIncomingMessage(roomjid, mbuf, 0, HBB_PREFIX_INFO); + g_free(mbuf); + buddylist_build(); + scr_DrawRoster(); + return; + } + if (!buddy_getinsideroom(room_elt->data)) { - const char *ournick = buddy_getnickname(room_elt->data); // We weren't inside the room yet. Now we are. // However, this could be a presence packet from another room member - if (!ournick) { - // I think it shouldn't happen, but let's put a warning for a while... - scr_LogPrint(LPRINT_LOGNORM, "MUC ERR: you have no nickname, " - "please send a bug report!"); - ournick = ""; - buddylist_build(); - scr_DrawRoster(); - return; - } - buddy_setinsideroom(room_elt->data, TRUE); // Add a message to the tracelog file mbuf = g_strdup_printf("You have joined %s as \"%s\"", roomjid, ournick); @@ -1158,12 +1161,18 @@ mbuf = g_strdup_printf("%s has joined", rname); } } else { - mbuf = g_strdup_printf("%s has joined", rname); + if (strcmp(ournick, rname)) + mbuf = g_strdup_printf("%s has joined", rname); + else + mbuf = NULL; } - scr_WriteIncomingMessage(roomjid, mbuf, usttime, - HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); - if (log_muc_conf) hlog_write_message(roomjid, 0, FALSE, mbuf); - g_free(mbuf); + + if (mbuf) { + scr_WriteIncomingMessage(roomjid, mbuf, usttime, + HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); + if (log_muc_conf) hlog_write_message(roomjid, 0, FALSE, mbuf); + g_free(mbuf); + } } // Update room member status