equal
deleted
inserted
replaced
173 /* ### Roster functions ### */ |
173 /* ### Roster functions ### */ |
174 |
174 |
175 // Comparison function used to search in the roster (compares jids and types) |
175 // Comparison function used to search in the roster (compares jids and types) |
176 static gint roster_compare_jid_type(roster *a, roster *b) { |
176 static gint roster_compare_jid_type(roster *a, roster *b) { |
177 if (! (a->type & b->type)) |
177 if (! (a->type & b->type)) |
178 return -1; // arbitrary (but should be != , of course) |
178 return -1; // arbitrary (but should be != 0, of course) |
179 return strcasecmp(a->jid, b->jid); |
179 return strcasecmp(a->jid, b->jid); |
180 } |
180 } |
181 |
181 |
182 // Comparison function used to sort the roster (by name) |
182 // Comparison function used to sort the roster (by name) |
183 static gint roster_compare_name(roster *a, roster *b) { |
183 static gint roster_compare_name(roster *a, roster *b) { |
195 GCompareFunc comp; |
195 GCompareFunc comp; |
196 |
196 |
197 if (!jidname) return NULL; |
197 if (!jidname) return NULL; |
198 |
198 |
199 if (!roster_type) |
199 if (!roster_type) |
200 roster_type = ROSTER_TYPE_USER | ROSTER_TYPE_ROOM | |
200 roster_type = ROSTER_TYPE_USER | ROSTER_TYPE_ROOM | |
201 ROSTER_TYPE_AGENT | ROSTER_TYPE_GROUP; |
201 ROSTER_TYPE_AGENT | ROSTER_TYPE_GROUP; |
202 |
202 |
203 sample.type = roster_type; |
203 sample.type = roster_type; |
204 if (type == jidsearch) { |
204 if (type == jidsearch) { |
205 sample.jid = (gchar*)jidname; |
205 sample.jid = (gchar*)jidname; |
891 { |
891 { |
892 roster *roster_usr = rosterdata; |
892 roster *roster_usr = rosterdata; |
893 return roster_usr->flags; |
893 return roster_usr->flags; |
894 } |
894 } |
895 |
895 |
|
896 // buddy_search_jid(jid) |
|
897 // Look for a buddy with specified jid. |
|
898 // Search begins at buddylist; if no match is found in the the buddylist, |
|
899 // return NULL; |
|
900 GList *buddy_search_jid(char *jid) |
|
901 { |
|
902 GList *buddy; |
|
903 roster *roster_usr; |
|
904 |
|
905 if (!buddylist) return NULL; |
|
906 |
|
907 for (buddy = buddylist; buddy; buddy = g_list_next(buddy)) { |
|
908 roster_usr = (roster*)buddy->data; |
|
909 if (roster_usr->jid && !strcasecmp(roster_usr->jid, jid)) |
|
910 return buddy; |
|
911 } |
|
912 return NULL; |
|
913 } |
|
914 |
896 // buddy_search(string) |
915 // buddy_search(string) |
897 // Look for a buddy whose name or jid contains string. |
916 // Look for a buddy whose name or jid contains string. |
898 // Search begins at current_buddy; if no match is found in the the buddylist, |
917 // Search begins at current_buddy; if no match is found in the the buddylist, |
899 // return NULL; |
918 // return NULL; |
900 GList *buddy_search(char *string) |
919 GList *buddy_search(char *string) |