diff mcabber/src/roster.c @ 480:882e1acae422

Add /say_to command
author Mikael Berthe <mikael@lilotux.net>
date Tue, 04 Oct 2005 19:47:50 +0200
parents a926523d2392
children 4a10c04ac2fb
line wrap: on
line diff
--- a/mcabber/src/roster.c	Mon Oct 03 23:59:56 2005 +0200
+++ b/mcabber/src/roster.c	Tue Oct 04 19:47:50 2005 +0200
@@ -175,7 +175,7 @@
 // Comparison function used to search in the roster (compares jids and types)
 static gint roster_compare_jid_type(roster *a, roster *b) {
   if (! (a->type & b->type))
-    return -1; // arbitrary (but should be != , of course)
+    return -1; // arbitrary (but should be != 0, of course)
   return strcasecmp(a->jid, b->jid);
 }
 
@@ -197,7 +197,7 @@
   if (!jidname) return NULL;
 
   if (!roster_type)
-    roster_type = ROSTER_TYPE_USER | ROSTER_TYPE_ROOM |
+    roster_type = ROSTER_TYPE_USER  | ROSTER_TYPE_ROOM |
                   ROSTER_TYPE_AGENT | ROSTER_TYPE_GROUP;
 
   sample.type = roster_type;
@@ -893,6 +893,25 @@
   return roster_usr->flags;
 }
 
+//  buddy_search_jid(jid)
+// Look for a buddy with specified jid.
+// Search begins at buddylist; if no match is found in the the buddylist,
+// return NULL;
+GList *buddy_search_jid(char *jid)
+{
+  GList *buddy;
+  roster *roster_usr;
+
+  if (!buddylist) return NULL;
+
+  for (buddy = buddylist; buddy; buddy = g_list_next(buddy)) {
+    roster_usr = (roster*)buddy->data;
+    if (roster_usr->jid && !strcasecmp(roster_usr->jid, jid))
+      return buddy;
+  }
+  return NULL;
+}
+
 //  buddy_search(string)
 // Look for a buddy whose name or jid contains string.
 // Search begins at current_buddy; if no match is found in the the buddylist,