diff options
author | James Booth <boothj5@gmail.com> | 2015-11-01 23:15:49 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-11-01 23:23:49 +0000 |
commit | ed9585376e5fcc1ee0a556ac9b429c6a7e835326 (patch) | |
tree | 389027099dca34b1baa208a397e867e48ce5b3be /src | |
parent | 799c064dffea4a076382af752f3f167dc8c0c167 (diff) | |
download | profani-tty-ed9585376e5fcc1ee0a556ac9b429c6a7e835326.tar.gz |
mucwin_occupant_role_and_affiliation_change takes ProfMucWin
Diffstat (limited to 'src')
-rw-r--r-- | src/event/server_events.c | 5 | ||||
-rw-r--r-- | src/ui/mucwin.c | 6 | ||||
-rw-r--r-- | src/ui/ui.h | 2 |
3 files changed, 9 insertions, 4 deletions
diff --git a/src/event/server_events.c b/src/event/server_events.c index 0d044704..da7a8e99 100644 --- a/src/event/server_events.c +++ b/src/event/server_events.c @@ -660,7 +660,10 @@ sv_ev_muc_occupant_online(const char *const room, const char *const nick, const if (prefs_get_boolean(PREF_MUC_PRIVILEGES)) { // both changed if ((g_strcmp0(role, old_role) != 0) && (g_strcmp0(affiliation, old_affiliation) != 0)) { - mucwin_occupant_role_and_affiliation_change(room, nick, role, affiliation, actor, reason); + ProfMucWin *mucwin = wins_get_muc(room); + if (mucwin) { + mucwin_occupant_role_and_affiliation_change(mucwin, nick, 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 9abf86d6..2dad9d8f 100644 --- a/src/ui/mucwin.c +++ b/src/ui/mucwin.c @@ -126,10 +126,12 @@ mucwin_occupant_affiliation_change(ProfMucWin *mucwin, const char *const nick, c } void -mucwin_occupant_role_and_affiliation_change(const char *const roomjid, const char *const nick, const char *const role, +mucwin_occupant_role_and_affiliation_change(ProfMucWin *mucwin, const char *const nick, 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, "", "%s's role and affiliation have been changed, role: %s, affiliation: %s", nick, 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 263b4d91..242d8695 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -170,7 +170,7 @@ void mucwin_occupant_role_change(ProfMucWin *mucwin, const char *const nick, con const char *const actor, const char *const reason); void mucwin_occupant_affiliation_change(ProfMucWin *mucwin, const char *const nick, const char *const affiliation, const char *const actor, const char *const reason); -void mucwin_occupant_role_and_affiliation_change(const char *const roomjid, const char *const nick, +void mucwin_occupant_role_and_affiliation_change(ProfMucWin *mucwin, const char *const nick, const char *const role, const char *const affiliation, const char *const actor, const char *const reason); void mucwin_roster(const char *const roomjid, GList *occupants, const char *const presence); void mucwin_history(const char *const roomjid, const char *const nick, GDateTime *timestamp, |