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:45:54 +0000
committerJames Booth <boothj5@gmail.com>2015-11-01 23:45:54 +0000
commit24f283e96026bcdc51d0f92e3125e09d3b53efc5 (patch)
tree5f45b9e59278ade3cb595bc2da784e2f2633afbb /src
parent8b4bb1c7f100590f015fddb55b31fe3d0ea10417 (diff)
downloadprofani-tty-24f283e96026bcdc51d0f92e3125e09d3b53efc5.tar.gz
mucwin_occupant_offline takes ProfMucWin
Diffstat (limited to 'src')
-rw-r--r--src/event/server_events.c5
-rw-r--r--src/ui/mucwin.c12
-rw-r--r--src/ui/ui.h2
3 files changed, 9 insertions, 10 deletions
diff --git a/src/event/server_events.c b/src/event/server_events.c
index bfd8bdb3..bee0e949 100644
--- a/src/event/server_events.c
+++ b/src/event/server_events.c
@@ -485,8 +485,9 @@ sv_ev_room_occupant_offline(const char *const room, const char *const nick,
     muc_roster_remove(room, nick);
 
     char *muc_status_pref = prefs_get_string(PREF_STATUSES_MUC);
-    if (g_strcmp0(muc_status_pref, "none") != 0) {
-        mucwin_occupant_offline(room, nick);
+    ProfMucWin *mucwin = wins_get_muc(room);
+    if (mucwin && (g_strcmp0(muc_status_pref, "none") != 0)) {
+        mucwin_occupant_offline(mucwin, nick);
     }
     prefs_free_string(muc_status_pref);
     occupantswin_occupants(room);
diff --git a/src/ui/mucwin.c b/src/ui/mucwin.c
index 5edc6a8d..f8bf77e2 100644
--- a/src/ui/mucwin.c
+++ b/src/ui/mucwin.c
@@ -232,14 +232,12 @@ mucwin_roster(ProfMucWin *mucwin, GList *roster, const char *const presence)
 }
 
 void
-mucwin_occupant_offline(const char *const roomjid, const char *const nick)
+mucwin_occupant_offline(ProfMucWin *mucwin, const char *const nick)
 {
-    ProfWin *window = (ProfWin*)wins_get_muc(roomjid);
-    if (window == NULL) {
-        log_error("Received offline presence for room participant %s, but no window open for %s.", nick, roomjid);
-    } else {
-        win_vprint(window, '!', 0, NULL, 0, THEME_OFFLINE, "", "<- %s has left the room.", nick);
-    }
+    assert(mucwin != NULL);
+
+    ProfWin *window = (ProfWin*)mucwin;
+    win_vprint(window, '!', 0, NULL, 0, THEME_OFFLINE, "", "<- %s has left the room.", nick);
 }
 
 void
diff --git a/src/ui/ui.h b/src/ui/ui.h
index 61cf8745..6b225679 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -188,7 +188,7 @@ void mucwin_occupant_kicked(const char *const roomjid, const char *const nick, c
 void mucwin_occupant_banned(const char *const roomjid, const char *const nick, const char *const actor,
     const char *const reason);
 void mucwin_broadcast(const char *const roomjid, const char *const message);
-void mucwin_occupant_offline(const char *const roomjid, const char *const nick);
+void mucwin_occupant_offline(ProfMucWin *mucwin, const char *const nick);
 void mucwin_occupant_online(const char *const roomjid, const char *const nick, const char *const roles,
     const char *const affiliation, const char *const show, const char *const status);
 void mucwin_occupant_nick_change(const char *const roomjid, const char *const old_nick, const char *const nick);