]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - docs/module-doc/classchanrec.html
Added docs for new smaller memory footprint classes
[user/henk/code/inspircd.git] / docs / module-doc / classchanrec.html
index c4a35842686d172ff6cb376f77ee59fd60db37e6..c66a50bb8f69ead29dcd4e704934344f49c95d08 100644 (file)
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>chanrec class Reference</title>
+<title>InspIRCd: chanrec class Reference</title>
 <link href="inspircd.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.3-rc3 -->
-<center>
-<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
-<hr><h1>chanrec Class Reference</h1>Holds all relevent information for a channel. 
+<!-- Generated by Doxygen 1.3.3 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
+<h1>chanrec Class Reference</h1>Holds all relevent information for a channel.  
 <a href="#_details">More...</a>
 <p>
 <code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
 <p>
-Inheritance diagram for chanrec:<p><center><img src="classchanrec__inherit__graph.gif" border="0" usemap="#chanrec__inherit__map" alt="Inheritance graph"></center>
-<map name="chanrec__inherit__map">
-<area href="classclassbase.html" shape="rect" coords="7,16,73,37" alt="">
-</map>
-<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for chanrec:<p><center><img src="classchanrec__coll__graph.gif" border="0" usemap="#chanrec__coll__map" alt="Collaboration graph"></center>
-<map name="chanrec__coll__map">
-<area href="classclassbase.html" shape="rect" coords="149,91,216,112" alt="">
-</map>
-<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classchanrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+Inherits <a class="el" href="classExtensible.html">Extensible</a>.
+<p>
+<a href="classchanrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
 <tr><td></td></tr>
 <tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
-<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a0">SetCustomMode</a> (char mode, bool mode_on)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sets or unsets a custom mode in the channels info.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a1">SetCustomModeParam</a> (char mode, char *parameter, bool mode_on)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sets or unsets the parameters for a custom mode in a channels info.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a2">IsCustomModeSet</a> (char mode)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if a custom mode is set on a channel.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>std::string&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a3">GetModeParameter</a> (char mode)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Returns the parameter for a custom mode on a channel.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a4">chanrec</a> ()</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Creates a channel record and initialises it with default values.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a5">~chanrec</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a0">SetCustomMode</a> (char mode, bool mode_on)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or unsets a custom mode in the channels info. </em> <a href="#a0"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a1">SetCustomModeParam</a> (char mode, char *parameter, bool mode_on)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or unsets the parameters for a custom mode in a channels info. </em> <a href="#a1"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a2">IsCustomModeSet</a> (char mode)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if a custom mode is set on a channel. </em> <a href="#a2"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a3">GetModeParameter</a> (char mode)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the parameter for a custom mode on a channel. </em> <a href="#a3"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a4">GetUserCounter</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain the channel "user counter" This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks. </em> <a href="#a4"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a5">AddUser</a> (char *castuser)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a user pointer to the internal reference list The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. </em> <a href="#a5"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a6">DelUser</a> (char *castuser)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a user pointer to the internal reference list The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. </em> <a href="#a6"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; char * &gt; *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a7">GetUsers</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*. </em> <a href="#a7"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a8">chanrec</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a channel record and initialises it with default values. </em> <a href="#a8"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a9">~chanrec</a> ()</td></tr>
+
 <tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m0">name</a> [CHANMAX]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>The channels name.</em> <a href="#m0"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m1">custom_modes</a> [MAXMODES]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Custom modes for the channel.</em> <a href="#m1"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m2">topic</a> [MAXBUF]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Channel topic.</em> <a href="#m2"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m3">created</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Creation time.</em> <a href="#m3"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m4">topicset</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Time topic was set.</em> <a href="#m4"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m5">setby</a> [NICKMAX]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>The last user to set the topic.</em> <a href="#m5"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m6">limit</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Contains the channel user limit.</em> <a href="#m6"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m7">key</a> [32]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Contains the channel key.</em> <a href="#m7"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m8">topiclock</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +t is set.</em> <a href="#m8"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m9">noexternal</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +n is set.</em> <a href="#m9"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m10">inviteonly</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +i is set.</em> <a href="#m10"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m11">moderated</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +m is set.</em> <a href="#m11"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m12">secret</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +s is set.</em> <a href="#m12"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m13">c_private</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +p is set.</em> <a href="#m13"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top><a class="el" href="channels_8h.html#a5">BanList</a>&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m14">bans</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>The list of all bans set on the channel.</em> <a href="#m14"></a><em></em></font><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o0">name</a> [CHANMAX]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The channels name. </em> <a href="#o0"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o1">custom_modes</a> [MAXMODES]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Custom modes for the channel. </em> <a href="#o1"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; char * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o2">internal_userlist</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). </em> <a href="#o2"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o3">topic</a> [MAXBUF]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Channel topic. </em> <a href="#o3"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o4">created</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creation time. </em> <a href="#o4"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o5">topicset</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Time topic was set. </em> <a href="#o5"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o6">setby</a> [NICKMAX]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The last user to set the topic. </em> <a href="#o6"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o7">limit</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel user limit. </em> <a href="#o7"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o8">key</a> [32]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel key. </em> <a href="#o8"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o9">binarymodes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains a bitmask of the CM_* builtin (RFC) binary mode symbols. </em> <a href="#o9"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="channels_8h.html#a11">BanList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o10">bans</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The list of all bans set on the channel. </em> <a href="#o10"></a><em><br><br></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
-Holds all relevent information for a channel.
+Holds all relevent information for a channel. 
 <p>
 This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type. 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00083">83</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a name="a4" doxytag="chanrec::chanrec"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+Definition at line <a class="el" href="channels_8h-source.html#l00101">101</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a8" doxytag="chanrec::chanrec"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
           <td class="md" nowrap valign="top"> chanrec::chanrec </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
-          <td class="md" valign="top">)&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
         </tr>
 
@@ -98,36 +112,37 @@ Definition at line <a class="el" href="channels_8h-source.html#l00083">83</a> of
     <td>
 
 <p>
-Creates a channel record and initialises it with default values.
+Creates a channel record and initialises it with default values. 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00012">12</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00113">113</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-References <a class="el" href="channels_8h-source.html#l00144">c_private</a>, <a class="el" href="channels_8h-source.html#l00100">created</a>, <a class="el" href="channels_8h-source.html#l00130">inviteonly</a>, <a class="el" href="channels_8h-source.html#l00113">limit</a>, <a class="el" href="channels_8h-source.html#l00134">moderated</a>, <a class="el" href="channels_8h-source.html#l00126">noexternal</a>, <a class="el" href="channels_8h-source.html#l00139">secret</a>, <a class="el" href="channels_8h-source.html#l00122">topiclock</a>, and <a class="el" href="channels_8h-source.html#l00104">topicset</a>.
+References <a class="el" href="channels_8h-source.html#l00145">binarymodes</a>, <a class="el" href="channels_8h-source.html#l00123">created</a>, <a class="el" href="channels_8h-source.html#l00110">custom_modes</a>, <a class="el" href="channels_8h-source.html#l00115">internal_userlist</a>, <a class="el" href="channels_8h-source.html#l00141">key</a>, <a class="el" href="channels_8h-source.html#l00136">limit</a>, <a class="el" href="channels_8h-source.html#l00106">name</a>, <a class="el" href="channels_8h-source.html#l00131">setby</a>, <a class="el" href="channels_8h-source.html#l00120">topic</a>, and <a class="el" href="channels_8h-source.html#l00127">topicset</a>.
 <p>
-<div class="fragment"><pre>00013 {
-00014         strcpy(name,<span class="stringliteral">""</span>);
-00015         strcpy(custom_modes,<span class="stringliteral">""</span>);
-00016         strcpy(topic,<span class="stringliteral">""</span>);
-00017         strcpy(setby,<span class="stringliteral">""</span>);
-00018         strcpy(key,<span class="stringliteral">""</span>);
-00019         <a class="code" href="classchanrec.html#m3">created</a> = <a class="code" href="classchanrec.html#m4">topicset</a> = <a class="code" href="classchanrec.html#m6">limit</a> = 0;
-00020         <a class="code" href="classchanrec.html#m8">topiclock</a> = <a class="code" href="classchanrec.html#m9">noexternal</a> = <a class="code" href="classchanrec.html#m10">inviteonly</a> = <a class="code" href="classchanrec.html#m11">moderated</a> = <a class="code" href="classchanrec.html#m12">secret</a> = <a class="code" href="classchanrec.html#m13">c_private</a> = <span class="keyword">false</span>;
-00021 }
+<div class="fragment"><pre>00114 {
+00115         strcpy(name,<span class="stringliteral">""</span>);
+00116         strcpy(custom_modes,<span class="stringliteral">""</span>);
+00117         strcpy(topic,<span class="stringliteral">""</span>);
+00118         strcpy(setby,<span class="stringliteral">""</span>);
+00119         strcpy(key,<span class="stringliteral">""</span>);
+00120         <a class="code" href="classchanrec.html#o4">created</a> = <a class="code" href="classchanrec.html#o5">topicset</a> = <a class="code" href="classchanrec.html#o7">limit</a> = 0;
+00121         <a class="code" href="classchanrec.html#o9">binarymodes</a> = 0;
+00122         <a class="code" href="classchanrec.html#o2">internal_userlist</a>.clear();
+00123 }
 </pre></div>    </td>
   </tr>
 </table>
-<a name="a5" doxytag="chanrec::~chanrec"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="a9" doxytag="chanrec::~chanrec"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> virtual chanrec::~chanrec </td>
+          <td class="md" nowrap valign="top"> virtual chanrec::~<a class="el" href="classchanrec.html">chanrec</a> </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
-          <td class="md" valign="top">)&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap><code> [inline, virtual]</code></td>
         </tr>
 
@@ -145,24 +160,24 @@ References <a class="el" href="channels_8h-source.html#l00144">c_private</a>, <a
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00174">174</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00205">205</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-<div class="fragment"><pre>00174 { <span class="comment">/* stub */</span> }
+<div class="fragment"><pre>00205 { <span class="comment">/* stub */</span> }
 </pre></div>    </td>
   </tr>
 </table>
 <hr><h2>Member Function Documentation</h2>
-<a name="a3" doxytag="chanrec::GetModeParameter"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="a5" doxytag="chanrec::AddUser"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> std::string chanrec::GetModeParameter </td>
+          <td class="md" nowrap valign="top"> void chanrec::AddUser </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mode</em>          </td>
-          <td class="md" valign="top">)&nbsp;</td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
         </tr>
 
@@ -178,41 +193,32 @@ Definition at line <a class="el" href="channels_8h-source.html#l00174">174</a> o
     <td>
 
 <p>
-Returns the parameter for a custom mode on a channel.
+Add a user pointer to the internal reference list The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. 
 <p>
-For example if "+L #foo" is set, and you pass this method 'L', it will return '#foo'. If the mode is not set on the channel, or the mode has no parameters associated with it, it will return an empty string.
+
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00207">207</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00087">87</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8cpp-source.html#l00010">custom_mode_params</a>.
-<p>
-<div class="fragment"><pre>00088 {
-00089         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.size())
-00090         {
-00091                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.end(); i++)
-00092                 {
-00093                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00094                         {
-00095                                 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
-00096                         }
-00097                 }
-00098         }
-00099         <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
-00100 }
+References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="channels_8h-source.html#l00115">internal_userlist</a>.
+<p>
+<div class="fragment"><pre>00208 {
+00209         <a class="code" href="classchanrec.html#o2">internal_userlist</a>.push_back(castuser);
+00210         log(DEBUG,<span class="stringliteral">"Added casted user to channel's internal list"</span>);
+00211 }
 </pre></div>    </td>
   </tr>
 </table>
-<a name="a2" doxytag="chanrec::IsCustomModeSet"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="a6" doxytag="chanrec::DelUser"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> bool chanrec::IsCustomModeSet </td>
+          <td class="md" nowrap valign="top"> void chanrec::DelUser </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mode</em>          </td>
-          <td class="md" valign="top">)&nbsp;</td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
         </tr>
 
@@ -228,40 +234,41 @@ References <a class="el" href="channels_8cpp-source.html#l00010">custom_mode_par
     <td>
 
 <p>
-Returns true if a custom mode is set on a channel.
+Delete a user pointer to the internal reference list The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00081">81</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00213">213</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00115">internal_userlist</a>, and <a class="el" href="channels_8h-source.html#l00106">name</a>.
 <p>
-<div class="fragment"><pre>00082 {
-00083         log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
-00084         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
-00085 }
+<div class="fragment"><pre>00214 {
+00215         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator a = <a class="code" href="classchanrec.html#o2">internal_userlist</a>.begin(); a &lt; <a class="code" href="classchanrec.html#o2">internal_userlist</a>.end(); a++)
+00216         {
+00217                 <span class="keywordflow">if</span> (*a == castuser)
+00218                 {
+00219                         log(DEBUG,<span class="stringliteral">"Removed casted user from channel's internal list"</span>);
+00220                         <a class="code" href="classchanrec.html#o2">internal_userlist</a>.erase(a);
+00221                         <span class="keywordflow">return</span>;
+00222                 }
+00223         }
+00224         log(DEBUG,<span class="stringliteral">"BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!"</span>,name);
+00225 }
 </pre></div>    </td>
   </tr>
 </table>
-<a name="a0" doxytag="chanrec::SetCustomMode"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="a3" doxytag="chanrec::GetModeParameter"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> void chanrec::SetCustomMode </td>
+          <td class="md" nowrap valign="top"> std::string chanrec::GetModeParameter </td>
           <td class="md" valign="top">(&nbsp;</td>
           <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>mode</em>, </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td></td>
-          <td class="md" nowrap>bool&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>mode_on</em></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
+          <td class="mdname1" valign="top" nowrap> <em>mode</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
         </tr>
 
       </table>
@@ -276,69 +283,41 @@ Definition at line <a class="el" href="channels_8cpp-source.html#l00081">81</a>
     <td>
 
 <p>
-Sets or unsets a custom mode in the channels info.
-<p>
-
-<p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00023">23</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Returns the parameter for a custom mode on a channel. 
 <p>
-References <a class="el" href="channels_8h-source.html#l00092">custom_modes</a>, and <a class="el" href="channels_8cpp-source.html#l00050">SetCustomModeParam()</a>.
+For example if "+L #foo" is set, and you pass this method 'L', it will return '#foo'. If the mode is not set on the channel, or the mode has no parameters associated with it, it will return an empty string.
 <p>
-<div class="fragment"><pre>00024 {
-00025         <span class="keywordflow">if</span> (mode_on) {
-00026                 <span class="keywordtype">char</span> m[3];
-00027                 m[0] = mode;
-00028                 m[1] = <span class="charliteral">'\0'</span>;
-00029                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
-00030                 {
-00031                         strncat(custom_modes,m,MAXMODES);
-00032                 }
-00033                 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
-00034         }
-00035         <span class="keywordflow">else</span> {
-00036                 <span class="keywordtype">char</span> temp[MAXBUF];
-00037                 <span class="keywordtype">int</span> count = 0;
-00038                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> q = 0; q &lt; strlen(custom_modes); q++) {
-00039                         <span class="keywordflow">if</span> (<a class="code" href="classchanrec.html#m1">custom_modes</a>[q] != mode) {
-00040                                 temp[count++] = mode;
-00041                         }
-00042                 }
-00043                 temp[count] = <span class="charliteral">'\0'</span>;
-00044                 strncpy(custom_modes,temp,MAXMODES);
-00045                 log(DEBUG,<span class="stringliteral">"Custom mode %c removed"</span>,mode);
-00046                 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
-00047         }
-00048 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00187">187</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8cpp-source.html#l00111">custom_mode_params</a>.
+<p>
+<div class="fragment"><pre>00188 {
+00189         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00190         {
+00191                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00192                 {
+00193                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00194                         {
+00195                                 <span class="keywordflow">return</span> i-&gt;parameter;
+00196                         }
+00197                 }
+00198         }
+00199         <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00200 }
 </pre></div>    </td>
   </tr>
 </table>
-<a name="a1" doxytag="chanrec::SetCustomModeParam"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="a4" doxytag="chanrec::GetUserCounter"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> void chanrec::SetCustomModeParam </td>
+          <td class="md" nowrap valign="top"> long chanrec::GetUserCounter </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>mode</em>, </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>parameter</em>, </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td></td>
-          <td class="md" nowrap>bool&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>mode_on</em></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
         </tr>
 
       </table>
@@ -353,56 +332,33 @@ References <a class="el" href="channels_8h-source.html#l00092">custom_modes</a>,
     <td>
 
 <p>
-Sets or unsets the parameters for a custom mode in a channels info.
+Obtain the channel "user counter" This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks. 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00050">50</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00064">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00010">custom_mode_params</a>, <a class="el" href="channels_8h-source.html#l00062">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00063">ModeParameter::parameter</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00202">202</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMode()</a>.
+References <a class="el" href="channels_8h-source.html#l00115">internal_userlist</a>.
 <p>
-<div class="fragment"><pre>00051 {
-00052 
-00053         log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
-00054         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
-00055         M.<a class="code" href="classModeParameter.html#m0">mode</a> = mode;
-00056         strcpy(M.<a class="code" href="classModeParameter.html#m2">channel</a>,this-&gt;name);
-00057         strcpy(M.<a class="code" href="classModeParameter.html#m1">parameter</a>,parameter);
-00058         <span class="keywordflow">if</span> (mode_on)
-00059         {
-00060                 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
-00061                 <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.push_back(M);
-00062         }
-00063         <span class="keywordflow">else</span>
-00064         {
-00065                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.size())
-00066                 {
-00067                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.end(); i++)
-00068                         {
-00069                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00070                                 {
-00071                                         log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
-00072                                         <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.erase(i);
-00073                                         <span class="keywordflow">return</span>;
-00074                                 }
-00075                         }
-00076                 }
-00077                 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
-00078         }
-00079 }
+<div class="fragment"><pre>00203 {
+00204         <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classchanrec.html#o2">internal_userlist</a>.size());
+00205 }
 </pre></div>    </td>
   </tr>
 </table>
-<hr><h2>Member Data Documentation</h2>
-<a name="m14" doxytag="chanrec::bans"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="a7" doxytag="chanrec::GetUsers"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> <a class="el" href="channels_8h.html#a5">BanList</a> chanrec::bans
+          <td class="md" nowrap valign="top"> std::vector&lt; char * &gt; * chanrec::GetUsers </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
       </table>
     </td>
   </tr>
@@ -415,20 +371,36 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMod
     <td>
 
 <p>
-The list of all bans set on the channel.
+Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*. 
 <p>
-
+These are used for rapid comparison to determine channel membership for PRIVMSG, NOTICE, QUIT, PART etc. The resulting pointer to the vector should be considered readonly and only modified via AddUser and DelUser.
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00227">227</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00148">148</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+References <a class="el" href="channels_8h-source.html#l00115">internal_userlist</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00467">Server::GetUsers()</a>.
+<p>
+<div class="fragment"><pre>00228 {
+00229         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#o2">internal_userlist</a>;
+00230 }
+</pre></div>    </td>
   </tr>
 </table>
-<a name="m13" doxytag="chanrec::c_private"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="a2" doxytag="chanrec::IsCustomModeSet"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::c_private
+          <td class="md" nowrap valign="top"> bool chanrec::IsCustomModeSet </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>mode</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
       </table>
     </td>
   </tr>
@@ -441,22 +413,44 @@ Definition at line <a class="el" href="channels_8h-source.html#l00148">148</a> o
     <td>
 
 <p>
-Nonzero if the mode +p is set.
+Returns true if a custom mode is set on a channel. 
 <p>
-This value cannot be set at the same time as <a class="el" href="classchanrec.html#m12">chanrec::secret</a>
+
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00181">181</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00144">144</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+<div class="fragment"><pre>00182 {
+00183         log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
+00184         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
+00185 }
+</pre></div>    </td>
   </tr>
 </table>
-<a name="m3" doxytag="chanrec::created"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="a0" doxytag="chanrec::SetCustomMode"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> time_t chanrec::created
+          <td class="md" nowrap valign="top"> void chanrec::SetCustomMode </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char&nbsp;</td>
+          <td class="mdname" nowrap> <em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td class="md" nowrap>bool&nbsp;</td>
+          <td class="mdname" nowrap> <em>mode_on</em></td>
+        </tr>
+        <tr>
+          <td></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+
       </table>
     </td>
   </tr>
@@ -469,22 +463,68 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Creation time.
+Sets or unsets a custom mode in the channels info. 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00100">100</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00125">125</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00110">custom_modes</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="channels_8cpp-source.html#l00150">SetCustomModeParam()</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+<div class="fragment"><pre>00126 {
+00127         <span class="keywordflow">if</span> (mode_on) {
+00128                 <span class="keyword">static</span> <span class="keywordtype">char</span> m[3];
+00129                 m[0] = mode;
+00130                 m[1] = <span class="charliteral">'\0'</span>;
+00131                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
+00132                 {
+00133                         strlcat(custom_modes,m,MAXMODES);
+00134                 }
+00135                 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
+00136         }
+00137         <span class="keywordflow">else</span> {
+00138 
+00139                 std::string a = this-&gt;<a class="code" href="classchanrec.html#o1">custom_modes</a>;
+00140                 <span class="keywordtype">int</span> pos = a.find(mode);
+00141                 a.erase(pos,1);
+00142                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
+00143 
+00144                 log(DEBUG,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
+00145                 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
+00146         }
+00147 }
+</pre></div>    </td>
   </tr>
 </table>
-<a name="m1" doxytag="chanrec::custom_modes"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="a1" doxytag="chanrec::SetCustomModeParam"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::custom_modes[MAXMODES]
+          <td class="md" nowrap valign="top"> void chanrec::SetCustomModeParam </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char&nbsp;</td>
+          <td class="mdname" nowrap> <em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>parameter</em>, </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td class="md" nowrap>bool&nbsp;</td>
+          <td class="mdname" nowrap> <em>mode_on</em></td>
+        </tr>
+        <tr>
+          <td></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+
       </table>
     </td>
   </tr>
@@ -497,22 +537,56 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Custom modes for the channel.
+Sets or unsets the parameters for a custom mode in a channels info. 
 <p>
-Plugins may use this field in any way they see fit.
+
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00092">92</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00150">150</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMode()</a>.    </td>
+References <a class="el" href="channels_8h-source.html#l00082">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00111">custom_mode_params</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00080">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00081">ModeParameter::parameter</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00125">SetCustomMode()</a>.
+<p>
+<div class="fragment"><pre>00151 {
+00152 
+00153         log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
+00154         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
+00155         M.<a class="code" href="classModeParameter.html#o0">mode</a> = mode;
+00156         strlcpy(M.<a class="code" href="classModeParameter.html#o2">channel</a>,this-&gt;name,CHANMAX);
+00157         strlcpy(M.<a class="code" href="classModeParameter.html#o1">parameter</a>,parameter,MAXBUF);
+00158         <span class="keywordflow">if</span> (mode_on)
+00159         {
+00160                 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
+00161                 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.push_back(M);
+00162         }
+00163         <span class="keywordflow">else</span>
+00164         {
+00165                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00166                 {
+00167                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00168                         {
+00169                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00170                                 {
+00171                                         log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
+00172                                         <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.erase(i);
+00173                                         <span class="keywordflow">return</span>;
+00174                                 }
+00175                         }
+00176                 }
+00177                 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
+00178         }
+00179 }
+</pre></div>    </td>
   </tr>
 </table>
-<a name="m10" doxytag="chanrec::inviteonly"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<hr><h2>Member Data Documentation</h2>
+<a name="o10" doxytag="chanrec::bans"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::inviteonly
+          <td class="md" nowrap valign="top"> <a class="el" href="channels_8h.html#a11">BanList</a> <a class="el" href="classchanrec.html#o10">chanrec::bans</a>
       </table>
     </td>
   </tr>
@@ -525,22 +599,20 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMod
     <td>
 
 <p>
-Nonzero if the mode +i is set.
+The list of all bans set on the channel. 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00130">130</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
-<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+Definition at line <a class="el" href="channels_8h-source.html#l00149">149</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
   </tr>
 </table>
-<a name="m7" doxytag="chanrec::key"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o9" doxytag="chanrec::binarymodes"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::key[32]
+          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o9">chanrec::binarymodes</a>
       </table>
     </td>
   </tr>
@@ -553,20 +625,22 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Contains the channel key.
+Contains a bitmask of the CM_* builtin (RFC) binary mode symbols. 
 <p>
-If this value is an empty string, there is no channel key in place.
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00145">145</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00118">118</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="m6" doxytag="chanrec::limit"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o4" doxytag="chanrec::created"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> long chanrec::limit
+          <td class="md" nowrap valign="top"> time_t <a class="el" href="classchanrec.html#o4">chanrec::created</a>
       </table>
     </td>
   </tr>
@@ -579,22 +653,22 @@ Definition at line <a class="el" href="channels_8h-source.html#l00118">118</a> o
     <td>
 
 <p>
-Contains the channel user limit.
+Creation time. 
 <p>
-If this value is zero, there is no limit in place.
+
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00113">113</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00123">123</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="m11" doxytag="chanrec::moderated"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o1" doxytag="chanrec::custom_modes"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::moderated
+          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o1">chanrec::custom_modes</a>[MAXMODES]
       </table>
     </td>
   </tr>
@@ -607,22 +681,22 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Nonzero if the mode +m is set.
+Custom modes for the channel. 
 <p>
-
+Plugins may use this field in any way they see fit.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00134">134</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00110">110</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="channels_8cpp-source.html#l00125">SetCustomMode()</a>.    </td>
   </tr>
 </table>
-<a name="m0" doxytag="chanrec::name"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o2" doxytag="chanrec::internal_userlist"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::name[CHANMAX]
+          <td class="md" nowrap valign="top"> std::vector&lt;char*&gt; <a class="el" href="classchanrec.html#o2">chanrec::internal_userlist</a>
       </table>
     </td>
   </tr>
@@ -635,20 +709,22 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-The channels name.
+User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00088">88</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Definition at line <a class="el" href="channels_8h-source.html#l00115">115</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00207">AddUser()</a>, <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00213">DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00202">GetUserCounter()</a>, and <a class="el" href="channels_8cpp-source.html#l00227">GetUsers()</a>.    </td>
   </tr>
 </table>
-<a name="m9" doxytag="chanrec::noexternal"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o8" doxytag="chanrec::key"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::noexternal
+          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o8">chanrec::key</a>[32]
       </table>
     </td>
   </tr>
@@ -661,22 +737,22 @@ Definition at line <a class="el" href="channels_8h-source.html#l00088">88</a> of
     <td>
 
 <p>
-Nonzero if the mode +n is set.
+Contains the channel key. 
 <p>
-
+If this value is an empty string, there is no channel key in place.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00126">126</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00141">141</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="m12" doxytag="chanrec::secret"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o7" doxytag="chanrec::limit"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::secret
+          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o7">chanrec::limit</a>
       </table>
     </td>
   </tr>
@@ -689,22 +765,22 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Nonzero if the mode +s is set.
+Contains the channel user limit. 
 <p>
-This value cannot be set at the same time as <a class="el" href="classchanrec.html#m13">chanrec::c_private</a>
+If this value is zero, there is no limit in place.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00139">139</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00136">136</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="m5" doxytag="chanrec::setby"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o0" doxytag="chanrec::name"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::setby[NICKMAX]
+          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o0">chanrec::name</a>[CHANMAX]
       </table>
     </td>
   </tr>
@@ -717,20 +793,22 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-The last user to set the topic.
+The channels name. 
 <p>
-If this member is an empty string, no topic was ever set.
+
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00108">108</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Definition at line <a class="el" href="channels_8h-source.html#l00106">106</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00213">DelUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00700">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
-<a name="m2" doxytag="chanrec::topic"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o6" doxytag="chanrec::setby"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::topic[MAXBUF]
+          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o6">chanrec::setby</a>[NICKMAX]
       </table>
     </td>
   </tr>
@@ -743,20 +821,22 @@ Definition at line <a class="el" href="channels_8h-source.html#l00108">108</a> o
     <td>
 
 <p>
-Channel topic.
+The last user to set the topic. 
 <p>
-If this is an empty string, no channel topic is set.
+If this member is an empty string, no topic was ever set.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00131">131</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00097">97</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00700">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
-<a name="m8" doxytag="chanrec::topiclock"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o3" doxytag="chanrec::topic"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::topiclock
+          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o3">chanrec::topic</a>[MAXBUF]
       </table>
     </td>
   </tr>
@@ -769,22 +849,22 @@ Definition at line <a class="el" href="channels_8h-source.html#l00097">97</a> of
     <td>
 
 <p>
-Nonzero if the mode +t is set.
+Channel topic. 
 <p>
-
+If this is an empty string, no channel topic is set.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00122">122</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00120">120</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00700">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
-<a name="m4" doxytag="chanrec::topicset"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a name="o5" doxytag="chanrec::topicset"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> time_t chanrec::topicset
+          <td class="md" nowrap valign="top"> time_t <a class="el" href="classchanrec.html#o5">chanrec::topicset</a>
       </table>
     </td>
   </tr>
@@ -797,20 +877,20 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Time topic was set.
+Time topic was set. 
 <p>
-If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#m3">chanrec::created</a>
+If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#o4">chanrec::created</a>
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00104">104</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00127">127</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00700">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="channels_8h-source.html">channels.h</a><li><a class="el" href="channels_8cpp-source.html">channels.cpp</a></ul>
-<hr><address style="align: right;"><small>Generated on Thu Apr 8 19:12:50 2004 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Thu May 12 22:59:01 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border=0 
-width=110 height=53></a>1.3-rc3 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 
+</a>1.3.3 </small></address>
 </body>
 </html>