Mercurial > ~mikael > mcabber > hg
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 |