mcabber/src/roster.c
changeset 480 882e1acae422
parent 469 a926523d2392
child 483 4a10c04ac2fb
equal deleted inserted replaced
479:b82428ac107d 480:882e1acae422
   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)