]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/hash.c
found out from Kyle what b flag is.
[irc/evilnet/x3.git] / src / hash.c
index 8a3c7edd74b8e256922d6e5ef4438d23498351be..4afce1a07401019670c41f0391319ceba9185da6 100644 (file)
@@ -1,7 +1,7 @@
 /* hash.c - IRC network state database
  * Copyright 2000-2004 srvx Development Team
  *
- * This file is part of srvx.
+ * This file is part of x3.
  *
  * srvx is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -757,6 +757,32 @@ GetUserMode(struct chanNode *channel, struct userNode *user)
     return mn;
 }
 
+struct userNode *IsInChannel(struct chanNode *channel, struct userNode *user)
+{
+    unsigned int n;
+
+    verify(channel);
+    verify(channel->members.list);
+    verify(user);
+    verify(user->channels.list);
+    if (channel->members.used < user->channels.used) {
+       for (n=0; n<channel->members.used; n++) {
+            verify(channel->members.list[n]);
+           if (user == channel->members.list[n]->user) {
+                return(user);
+           }
+       }
+    } else {
+       for (n=0; n<user->channels.used; n++) {
+            verify(user->channels.list[n]);
+           if (channel == user->channels.list[n]->channel) {
+                return(user);
+           }
+       }
+    }
+    return NULL;
+}
+
 DEFINE_LIST(userList, struct userNode*)
 DEFINE_LIST(modeList, struct modeNode*)
 DEFINE_LIST(banList, struct banNode*)