+ ServerInstance->DumpText(user, checkstr + " timestamp " + timestring(targchan->age));
+
+ if (targchan->topic[0] != 0)
+ {
+ /* there is a topic, assume topic related information exists */
+ ServerInstance->DumpText(user, checkstr + " topic " + targchan->topic);
+ ServerInstance->DumpText(user, checkstr + " topic_setby " + targchan->setby);
+ ServerInstance->DumpText(user, checkstr + " topic_setat " + timestring(targchan->topicset));
+ }
+
+ ServerInstance->DumpText(user, checkstr + " modes " + targchan->ChanModes(true));
+ ServerInstance->DumpText(user, checkstr + " membercount " + ConvToStr(targchan->GetUserCounter()));
+
+ /* now the ugly bit, spool current members of a channel. :| */
+
+ const UserMembList *ulist= targchan->GetUsers();
+
+ /* note that unlike /names, we do NOT check +i vs in the channel */
+ for (UserMembCIter i = ulist->begin(); i != ulist->end(); i++)
+ {
+ char tmpbuf[MAXBUF];
+ /*
+ * Unlike Asuka, I define a clone as coming from the same host. --w00t
+ */
+ snprintf(tmpbuf, MAXBUF, "%-3lu %s%s (%s@%s) %s ", ServerInstance->Users->GlobalCloneCount(i->first), targchan->GetAllPrefixChars(i->first), i->first->nick.c_str(), i->first->ident.c_str(), i->first->dhost.c_str(), i->first->fullname.c_str());
+ ServerInstance->DumpText(user, checkstr + " member " + tmpbuf);
+ }
+
+ dumpExt(user, checkstr, targchan);