aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/nogaim.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/nogaim.c')
-rw-r--r--protocols/nogaim.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/protocols/nogaim.c b/protocols/nogaim.c
index a5eda2e0..0339feea 100644
--- a/protocols/nogaim.c
+++ b/protocols/nogaim.c
@@ -610,6 +610,7 @@ static char *imc_away_state_find(GList *gcm, char *away, char **message);
int imc_away_send_update(struct im_connection *ic)
{
char *away, *msg = NULL;
+ GList *m = NULL;
if (ic->acc->prpl->away_states == NULL ||
ic->acc->prpl->set_away == NULL) {
@@ -619,7 +620,7 @@ int imc_away_send_update(struct im_connection *ic)
away = set_getstr(&ic->acc->set, "away") ?
: set_getstr(&ic->bee->set, "away");
if (away && *away) {
- GList *m = ic->acc->prpl->away_states(ic);
+ m = ic->acc->prpl->away_states(ic);
msg = ic->acc->flags & ACC_FLAG_AWAY_MESSAGE ? away : NULL;
away = imc_away_state_find(m, away, &msg) ? :
(imc_away_state_find(m, "away", &msg) ? : m->data);
@@ -631,6 +632,10 @@ int imc_away_send_update(struct im_connection *ic)
ic->acc->prpl->set_away(ic, away, msg);
+ while (m) {
+ m = g_list_delete_link(m, m);
+ }
+
return 1;
}