# HG changeset patch # User Mikael Berthe # Date 1132525831 -3600 # Node ID d721b3502a7761902ac3ea2ed076b81428c9dbff # Parent 980b4e6a1e8f6898575dff62b9c853317d18ff37 Notice when we are ejected from a room diff -r 980b4e6a1e8f -r d721b3502a77 mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Sun Nov 20 00:28:17 2005 +0100 +++ b/mcabber/src/jabglue.c Sun Nov 20 23:30:31 2005 +0100 @@ -1224,7 +1224,7 @@ "Decoding of new nickname has failed: %s", mbnewnick); mbuf = g_strdup_printf("%s is now known as %s", rname, - (newname_noutf8 ? newname_noutf8 : "(?)")); + (newname_noutf8 ? newname_noutf8 : "(?)")); scr_WriteIncomingMessage(r, mbuf, 0, HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); if (log_muc_conf) hlog_write_message(r, 0, FALSE, mbuf); @@ -1242,6 +1242,22 @@ // Check for departure/arrival if (!mbnewnick && mbrole == role_none) { gchar *mbuf; + + // If this is a leave, check if it is ourself + m = buddy_getnickname(room_elt->data); + if (m && !strcmp(rname, m)) { + // _We_ have left! (kicked, banned, etc.) + buddy_setnickname(room_elt->data, NULL); + buddy_del_all_resources(room_elt->data); + scr_LogPrint(LPRINT_LOGNORM, "You have left %s", r); + scr_WriteIncomingMessage(r, "You have left", 0, + HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); + g_free(r); + if (s) g_free(s); + update_roster = TRUE; + break; + } + if (s) mbuf = g_strdup_printf("%s has left: %s", rname, s); else mbuf = g_strdup_printf("%s has left", rname); scr_WriteIncomingMessage(r, mbuf, 0,