comparison mcabber/src/roster.c @ 225:d5ae42cbe1fa

[/trunk] Changeset 237 by mikael * Group names and JIDs completion
author mikael
date Sat, 04 Jun 2005 19:35:30 +0000
parents 73f6ce668ba8
children 72fd1273f2b7
comparison
equal deleted inserted replaced
224:3795729cee54 225:d5ae42cbe1fa
615 { 615 {
616 roster *roster_usr = rosterdata; 616 roster *roster_usr = rosterdata;
617 return roster_usr->flags; 617 return roster_usr->flags;
618 } 618 }
619 619
620 // compl_list(type)
621 // Returns a list of jid's or groups. (For commands completion)
622 // type: ROSTER_TYPE_USER (jid's) or ROSTER_TYPE_GROUP (group names)
623 // The list should be freed by the caller after use.
624 GSList *compl_list(guint type)
625 {
626 GSList *list = NULL;
627 GList *buddy = buddylist;
628
629 for ( ; buddy ; buddy = g_list_next(buddy)) {
630 guint btype = buddy_gettype(BUDDATA(buddy));
631
632 if (type == ROSTER_TYPE_GROUP) { // (group names)
633 if (btype == ROSTER_TYPE_GROUP) {
634 const char *bname = buddy_getname(BUDDATA(buddy));
635 if ((bname) && (*bname))
636 list = g_slist_append(list, g_strdup(bname));
637 }
638 } else { // ROSTER_TYPE_USER (jid)
639 const char *bjid = buddy_getjid(BUDDATA(buddy));
640 if (bjid)
641 list = g_slist_append(list, g_strdup(bjid));
642 }
643 }
644
645 return list;
646 }
647