-void spy_userlist(userrec *user,chanrec *c)
-{
- static char list[MAXBUF];
-
- if ((!c) || (!user))
- return;
-
- snprintf(list,MAXBUF,"353 %s = %s :", user->nick, c->name);
-
- CUList *ulist= c->GetUsers();
- for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++)
- {
- strlcat(list,cmode(i->second,c),MAXBUF);
- strlcat(list,i->second->nick,MAXBUF);
- strlcat(list," ",MAXBUF);
- if (strlen(list)>(480-NICKMAX))
- {
- /* list overflowed into
- * multiple numerics */
- WriteServ_NoFormat(user->fd,list);
- snprintf(list,MAXBUF,"353 %s = %s :", user->nick, c->name);
- }
- }
- /* if whats left in the list isnt empty, send it */
- if (list[strlen(list)-1] != ':')
- {
- WriteServ_NoFormat(user->fd,list);
- }
-}
+ for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++)
+ {
+ size_t ptrlen = snprintf(ptr, MAXBUF, "%s%s ", c->GetPrefixChar(i->first), i->first->nick);
+
+ curlen += ptrlen;
+ ptr += ptrlen;