# HG changeset patch # User Hermitifier # Date 1328613182 -3600 # Node ID e0aedfa091ec07371c8178ff788c28e67326f01a # Parent aa7e03c35488e9fb104fc764438ba036b178c95b Print real jids in non-anonymous rooms. diff -r aa7e03c35488 -r e0aedfa091ec mcabber/mcabber/xmpp_muc.c --- a/mcabber/mcabber/xmpp_muc.c Thu Jan 26 10:11:03 2012 +0100 +++ b/mcabber/mcabber/xmpp_muc.c Tue Feb 07 12:13:02 2012 +0100 @@ -350,12 +350,19 @@ static bool muc_handle_join(const GSList *room_elt, const char *rname, const char *roomjid, const char *ournick, enum room_printstatus printstatus, - time_t usttime, int log_muc_conf) + time_t usttime, int log_muc_conf, + enum room_autowhois autowhois, const char *mbjid) { bool new_member = FALSE; // True if somebody else joins the room (not us) + gchar *nickjid; gchar *mbuf; enum room_flagjoins flagjoins; + if (mbjid && autowhois == autowhois_off) + nickjid = g_strdup_printf("%s <%s>", rname, mbjid); + else + nickjid = g_strdup(rname); + if (!buddy_getinsideroom(room_elt->data)) { // We weren't inside the room yet. Now we are. // However, this could be a presence packet from another room member @@ -380,7 +387,7 @@ hlog_write_message(roomjid, 0, -1, mbuf); g_free(mbuf); if (printstatus != status_none) - mbuf = g_strdup_printf("%s has joined", rname); + mbuf = g_strdup_printf("%s has joined", nickjid); else mbuf = NULL; new_member = TRUE; @@ -389,11 +396,13 @@ mbuf = NULL; if (strcmp(ournick, rname)) { if (printstatus != status_none) - mbuf = g_strdup_printf("%s has joined", rname); + mbuf = g_strdup_printf("%s has joined", nickjid); new_member = TRUE; } } + g_free(nickjid); + if (mbuf) { guint msgflags = HBB_PREFIX_INFO; flagjoins = buddy_getflagjoins(room_elt->data); @@ -574,6 +583,11 @@ nickchange = TRUE; } + autowhois = buddy_getautowhois(room_elt->data); + if (autowhois == autowhois_default) + autowhois = (settings_opt_get_int("muc_auto_whois") ? + autowhois_on : autowhois_off); + // Check for departure/arrival if (statuscode != 303 && ust == offline) { // Somebody is leaving @@ -680,7 +694,8 @@ if (old_ust == offline && ust != offline) { // Somebody is joining new_member = muc_handle_join(room_elt, rname, roomjid, ournick, - printstatus, usttime, log_muc_conf); + printstatus, usttime, log_muc_conf, + autowhois, mbjid); } else { // This is a simple member status change @@ -705,11 +720,6 @@ roster_setstatus(roomjid, rname, bpprio, ust, ustmsg, usttime, mbrole, mbaffil, mbjid); - autowhois = buddy_getautowhois(room_elt->data); - if (autowhois == autowhois_default) - autowhois = (settings_opt_get_int("muc_auto_whois") ? - autowhois_on : autowhois_off); - if (new_member && autowhois == autowhois_on) { cmd_room_whois(room_elt->data, rname, FALSE); }