1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-11-03 19:37:16 -05:00

Free roster list

This commit is contained in:
James Booth 2015-02-10 20:30:50 +00:00
parent 22b92c7514
commit e565812d09

View File

@ -1046,12 +1046,13 @@ _who_roster(gchar **args, struct cmd_help_t help)
} else if (strcmp("available", presence) == 0) {
GSList *filtered = NULL;
while (list != NULL) {
PContact contact = list->data;
GSList *curr = list;
while (curr != NULL) {
PContact contact = curr->data;
if (p_contact_is_available(contact)) {
filtered = g_slist_append(filtered, contact);
}
list = g_slist_next(list);
curr = g_slist_next(curr);
}
if (group != NULL) {
@ -1075,12 +1076,13 @@ _who_roster(gchar **args, struct cmd_help_t help)
} else if (strcmp("unavailable", presence) == 0) {
GSList *filtered = NULL;
while (list != NULL) {
PContact contact = list->data;
GSList *curr = list;
while (curr != NULL) {
PContact contact = curr->data;
if (!p_contact_is_available(contact)) {
filtered = g_slist_append(filtered, contact);
}
list = g_slist_next(list);
curr = g_slist_next(curr);
}
if (group != NULL) {
@ -1104,12 +1106,13 @@ _who_roster(gchar **args, struct cmd_help_t help)
} else if (strcmp("online", presence) == 0) {
GSList *filtered = NULL;
while (list != NULL) {
PContact contact = list->data;
GSList *curr = list;
while (curr != NULL) {
PContact contact = curr->data;
if (p_contact_has_available_resource(contact)) {
filtered = g_slist_append(filtered, contact);
}
list = g_slist_next(list);
curr = g_slist_next(curr);
}
if (group != NULL) {
@ -1133,12 +1136,13 @@ _who_roster(gchar **args, struct cmd_help_t help)
} else if (strcmp("offline", presence) == 0) {
GSList *filtered = NULL;
while (list != NULL) {
PContact contact = list->data;
GSList *curr = list;
while (curr != NULL) {
PContact contact = curr->data;
if (!p_contact_has_available_resource(contact)) {
filtered = g_slist_append(filtered, contact);
}
list = g_slist_next(list);
curr = g_slist_next(curr);
}
if (group != NULL) {
@ -1162,12 +1166,13 @@ _who_roster(gchar **args, struct cmd_help_t help)
} else {
GSList *filtered = NULL;
while (list != NULL) {
PContact contact = list->data;
GSList *curr = list;
while (curr != NULL) {
PContact contact = curr->data;
if (strcmp(p_contact_presence(contact), presence) == 0) {
filtered = g_slist_append(filtered, contact);
}
list = g_slist_next(list);
curr = g_slist_next(curr);
}
if (group != NULL) {
@ -1188,7 +1193,6 @@ _who_roster(gchar **args, struct cmd_help_t help)
g_slist_free(filtered);
}
list = g_slist_nth(list, 0);
g_slist_free(list);
}