about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-11-01 23:08:02 +0000
committerJames Booth <boothj5@gmail.com>2015-11-01 23:08:02 +0000
commit6ea9314f982ae5935b8428116b06552ef8a2b996 (patch)
tree5c9a5fb00208421680bfc32cc4c48c88917b8671 /src
parentc0fc7b51e3205d77e943294f437c725e0097c926 (diff)
downloadprofani-tty-6ea9314f982ae5935b8428116b06552ef8a2b996.tar.gz
mucwin_role_and_affiliation_change takes ProfMucWin
Diffstat (limited to 'src')
-rw-r--r--src/event/server_events.c5
-rw-r--r--src/ui/mucwin.c6
-rw-r--r--src/ui/ui.h2
3 files changed, 9 insertions, 4 deletions
diff --git a/src/event/server_events.c b/src/event/server_events.c
index c8a5b760..acfa0c4f 100644
--- a/src/event/server_events.c
+++ b/src/event/server_events.c
@@ -588,7 +588,10 @@ sv_ev_muc_self_online(const char *const room, const char *const nick, gboolean c
         if (prefs_get_boolean(PREF_MUC_PRIVILEGES)) {
             // both changed
             if ((g_strcmp0(role, old_role) != 0) && (g_strcmp0(affiliation, old_affiliation) != 0)) {
-                mucwin_role_and_affiliation_change(room, role, affiliation, actor, reason);
+                ProfMucWin *mucwin = wins_get_muc(room);
+                if (mucwin) {
+                    mucwin_role_and_affiliation_change(mucwin, role, affiliation, actor, reason);
+                }
 
             // role changed
             } else if (g_strcmp0(role, old_role) != 0) {
diff --git a/src/ui/mucwin.c b/src/ui/mucwin.c
index e795d3fb..8f9aabf8 100644
--- a/src/ui/mucwin.c
+++ b/src/ui/mucwin.c
@@ -74,10 +74,12 @@ mucwin_affiliation_change(ProfMucWin *mucwin, const char *const affiliation, con
 }
 
 void
-mucwin_role_and_affiliation_change(const char *const roomjid, const char *const role, const char *const affiliation,
+mucwin_role_and_affiliation_change(ProfMucWin *mucwin, const char *const role, const char *const affiliation,
     const char *const actor, const char *const reason)
 {
-    ProfWin *window = (ProfWin*)wins_get_muc(roomjid);
+    assert(mucwin != NULL);
+
+    ProfWin *window = (ProfWin*)mucwin;
     win_vprint(window, '!', 0, NULL, NO_EOL, THEME_ROOMINFO, "", "Your role and affiliation have been changed, role: %s, affiliation: %s", role, affiliation);
     if (actor) {
         win_vprint(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_ROOMINFO, "", ", by: %s", actor);
diff --git a/src/ui/ui.h b/src/ui/ui.h
index e41a05ef..58f96929 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -164,7 +164,7 @@ void chatwin_otr_smp_event(ProfChatWin *chatwin, prof_otr_smp_event_t event, voi
 void mucwin_role_change(ProfMucWin *mucwin, const char *const role, const char *const actor, const char *const reason);
 void mucwin_affiliation_change(ProfMucWin *mucwin, const char *const affiliation, const char *const actor,
     const char *const reason);
-void mucwin_role_and_affiliation_change(const char *const roomjid, const char *const role,
+void mucwin_role_and_affiliation_change(ProfMucWin *mucwin, const char *const role,
     const char *const affiliation, const char *const actor, const char *const reason);
 void mucwin_occupant_role_change(const char *const roomjid, const char *const nick, const char *const role,
     const char *const actor, const char *const reason);