aboutsummaryrefslogtreecommitdiff
path: root/cvs/cvsweb.cgi/code/nel/src/logic
diff options
context:
space:
mode:
Diffstat (limited to 'cvs/cvsweb.cgi/code/nel/src/logic')
-rw-r--r--cvs/cvsweb.cgi/code/nel/src/logic/?hideattic=0&sortby=rev/index.html109
-rw-r--r--cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log/index.html108
-rw-r--r--cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?rev=1.2&content-type=text/x-cvsweb-markup&sortby=log/index.html649
-rw-r--r--cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?sortby=log150
-rw-r--r--cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?sortby=log160
-rw-r--r--cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?sortby=log170
-rw-r--r--cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp?sortby=log150
7 files changed, 1496 insertions, 0 deletions
diff --git a/cvs/cvsweb.cgi/code/nel/src/logic/?hideattic=0&sortby=rev/index.html b/cvs/cvsweb.cgi/code/nel/src/logic/?hideattic=0&sortby=rev/index.html
new file mode 100644
index 00000000..2ed5e303
--- /dev/null
+++ b/cvs/cvsweb.cgi/code/nel/src/logic/?hideattic=0&sortby=rev/index.html
@@ -0,0 +1,109 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <TITLE>nevrax.org : cvs</TITLE>
+ <META name="keywords" content="freesoftware,nel,newt,snowballs,richard stallman,GNU,Multi-User Online World">
+
+ <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css">
+</HEAD>
+<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
+
+<!-- uplinks -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+</TABLE>
+
+<!-- banner Nevrax -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
+ <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR>
+</TABLE>
+
+<!-- main table -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+ <!------ Begin Box ------>
+ <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
+ <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
+ <TABLE cellspacing=0 cellpadding=1 border=0>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-free.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Free Software">Free software</a></td></tr>
+ </TABLE>
+ </TD></TR></TABLE></TD></TR></TABLE>
+ <!------ End Box ------>
+
+ </TD>
+ <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+<!-- title -->
+<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
+<A HREF="http://www.nevrax.org/cvs/"><img src="http://www.nevrax.org/inc/img/t_cvs.gif" ALT="cvs" HEIGHT=20 BORDER=0></A>
+</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
+</td></tr></table>
+
+
+<!-- title -->
+<table width=100%><tr><td align=left><b> <a href="/cvs/cvsweb.cgi/?hideattic=0&amp;sortby=rev">Nevrax</a> / <a href="/cvs/cvsweb.cgi/code/?hideattic=0&amp;sortby=rev">code</a> / <a href="/cvs/cvsweb.cgi/code/nel/?hideattic=0&amp;sortby=rev">nel</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/?hideattic=0&amp;sortby=rev">src</a> / logic</b></td><td align=right><b></b></td></TR></TABLE>
+<table width="100%" border=0 cellspacing=1 cellpadding=2>
+<tr><th align=left bgcolor="#000000"><a class=title href="./?hideattic=0"><font color=white>File</font></a></th><th align=left bgcolor="#222222"><font color=white>Rev.</font></th><th align=left bgcolor="#000000"><a class=title href="./?hideattic=0&amp;sortby=date"><font color=white>Age</font></a></th><th align=left bgcolor="#000000"><a class=title href="./?hideattic=0&amp;sortby=author"><font color=white>Author</font></a></th><th align=left bgcolor="#000000"><a class=title href="./?hideattic=0&amp;sortby=log"><font color=white>Last log entry</font></a></th></tr>
+<tr bgcolor="#dddddd"><td><A HREF="../?hideattic=0&amp;sortby=rev"><IMG SRC="http://www.nevrax.org/inc/img/picto-up.gif" ALT="[BACK]" BORDER="0" WIDTH="14" HEIGHT="13"></A>
+ <A HREF="../?hideattic=0&amp;sortby=rev">Previous Directory</A>
+</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+
+<tr bgcolor="#cccccc"><td><A NAME="CVS"></A><A HREF="CVS/?hideattic=0&amp;sortby=rev"><IMG SRC="http://www.nevrax.org/inc/img/picto-dir.gif" ALT="[DIR]" BORDER="0" WIDTH="15" HEIGHT="13"></A>
+ <A HREF="CVS/?hideattic=0&amp;sortby=rev">CVS/</A>
+</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+
+<tr bgcolor="#dddddd"><td><A NAME="logic_state_machine.cpp"></A><A HREF="logic_state_machine.cpp?hideattic=0&amp;sortby=rev"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_state_machine.cpp?hideattic=0&amp;sortby=rev">logic_state_machine.cpp</A>
+</td><td>&nbsp;<A HREF="logic_state_machine.cpp?rev=1.4&amp;content-type=text/x-cvsweb-markup&amp;hideattic=0&amp;sortby=rev"><b>1.4</b></A></td><td>&nbsp; <i>2 days</i></td><td>&nbsp;coutelas</td><td>&nbsp; <font size=-1>Uses methods to access entity id parts
+</font></td></tr>
+<tr bgcolor="#cccccc"><td><A NAME="logic_event.cpp"></A><A HREF="logic_event.cpp?hideattic=0&amp;sortby=rev"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_event.cpp?hideattic=0&amp;sortby=rev">logic_event.cpp</A>
+</td><td>&nbsp;<A HREF="logic_event.cpp?rev=1.3&amp;content-type=text/x-cvsweb-markup&amp;hideattic=0&amp;sortby=rev"><b>1.3</b></A></td><td>&nbsp; <i>5 weeks</i></td><td>&nbsp;lecroart</td><td>&nbsp; <font size=-1>CHANGED: now load/save state machine in XML format
+</font></td></tr>
+<tr bgcolor="#dddddd"><td><A NAME="logic_state.cpp"></A><A HREF="logic_state.cpp?hideattic=0&amp;sortby=rev"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_state.cpp?hideattic=0&amp;sortby=rev">logic_state.cpp</A>
+</td><td>&nbsp;<A HREF="logic_state.cpp?rev=1.3&amp;content-type=text/x-cvsweb-markup&amp;hideattic=0&amp;sortby=rev"><b>1.3</b></A></td><td>&nbsp; <i>2 days</i></td><td>&nbsp;coutelas</td><td>&nbsp; <font size=-1>Uses methods to access entity id parts
+</font></td></tr>
+<tr bgcolor="#cccccc"><td><A NAME="logic_condition.cpp"></A><A HREF="logic_condition.cpp?hideattic=0&amp;sortby=rev"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_condition.cpp?hideattic=0&amp;sortby=rev">logic_condition.cpp</A>
+</td><td>&nbsp;<A HREF="logic_condition.cpp?rev=1.2&amp;content-type=text/x-cvsweb-markup&amp;hideattic=0&amp;sortby=rev"><b>1.2</b></A></td><td>&nbsp; <i>5 weeks</i></td><td>&nbsp;lecroart</td><td>&nbsp; <font size=-1>CHANGED: now load/save state machine in XML format
+</font></td></tr>
+<tr bgcolor="#dddddd"><td><A NAME="logic_variable.cpp"></A><A HREF="logic_variable.cpp?hideattic=0&amp;sortby=rev"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_variable.cpp?hideattic=0&amp;sortby=rev">logic_variable.cpp</A>
+</td><td>&nbsp;<A HREF="logic_variable.cpp?rev=1.2&amp;content-type=text/x-cvsweb-markup&amp;hideattic=0&amp;sortby=rev"><b>1.2</b></A></td><td>&nbsp; <i>5 weeks</i></td><td>&nbsp;lecroart</td><td>&nbsp; <font size=-1>CHANGED: now load/save state machine in XML format
+</font></td></tr>
+</table><hr size=1 NOSHADE><FORM METHOD="GET" ACTION="./">
+<INPUT TYPE=HIDDEN NAME="hideattic" VALUE="0">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="rev">
+Show only files with tag:
+<SELECT NAME=only_with_tag onchange="submit()"><OPTION VALUE="">All tags / default branch
+<OPTION>MAIN
+<OPTION>HEAD
+<OPTION>georges_v2
+</SELECT>
+<INPUT TYPE=SUBMIT VALUE="Go">
+</FORM>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
+</TD>
+<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML></BODY></HTML>
diff --git a/cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log/index.html b/cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log/index.html
new file mode 100644
index 00000000..c375bc6e
--- /dev/null
+++ b/cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log/index.html
@@ -0,0 +1,108 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <TITLE>nevrax.org : cvs</TITLE>
+ <META name="keywords" content="freesoftware,nel,newt,snowballs,richard stallman,GNU,Multi-User Online World">
+
+ <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css">
+</HEAD>
+<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
+
+<!-- uplinks -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+</TABLE>
+
+<!-- banner Nevrax -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
+ <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR>
+</TABLE>
+
+<!-- main table -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+ <!------ Begin Box ------>
+ <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
+ <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
+ <TABLE cellspacing=0 cellpadding=1 border=0>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-free.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Free Software">Free software</a></td></tr>
+ </TABLE>
+ </TD></TR></TABLE></TD></TR></TABLE>
+ <!------ End Box ------>
+
+ </TD>
+ <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+<!-- title -->
+<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
+<A HREF="http://www.nevrax.org/cvs/"><img src="http://www.nevrax.org/inc/img/t_cvs.gif" ALT="cvs" HEIGHT=20 BORDER=0></A>
+</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
+</td></tr></table>
+
+
+<!-- title -->
+<table width=100%><tr><td align=left><b> <a href="/cvs/cvsweb.cgi/?sortby=log">Nevrax</a> / <a href="/cvs/cvsweb.cgi/code/?sortby=log">code</a> / <a href="/cvs/cvsweb.cgi/code/nel/?sortby=log">nel</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/?sortby=log">src</a> / logic</b></td><td align=right><b></b></td></TR></TABLE>
+<table width="100%" border=0 cellspacing=1 cellpadding=2>
+<tr><th align=left bgcolor="#000000"><a class=title href="./"><font color=white>File</font></a></th><th align=left bgcolor="#000000"><a class=title href="./?sortby=rev"><font color=white>Rev.</font></a></th><th align=left bgcolor="#000000"><a class=title href="./?sortby=date"><font color=white>Age</font></a></th><th align=left bgcolor="#000000"><a class=title href="./?sortby=author"><font color=white>Author</font></a></th><th align=left bgcolor="#222222"><font color=white>Last log entry</font></th></tr>
+<tr bgcolor="#dddddd"><td><A HREF="../?sortby=log"><IMG SRC="http://www.nevrax.org/inc/img/picto-up.gif" ALT="[BACK]" BORDER="0" WIDTH="14" HEIGHT="13"></A>
+ <A HREF="../?sortby=log">Previous Directory</A>
+</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+
+<tr bgcolor="#cccccc"><td><A NAME="CVS"></A><A HREF="CVS/?sortby=log"><IMG SRC="http://www.nevrax.org/inc/img/picto-dir.gif" ALT="[DIR]" BORDER="0" WIDTH="15" HEIGHT="13"></A>
+ <A HREF="CVS/?sortby=log">CVS/</A>
+</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+
+<tr bgcolor="#dddddd"><td><A NAME="logic_condition.cpp"></A><A HREF="logic_condition.cpp?sortby=log"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_condition.cpp?sortby=log">logic_condition.cpp</A>
+</td><td>&nbsp;<A HREF="logic_condition.cpp?rev=1.2&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.2</b></A></td><td>&nbsp; <i>4 weeks</i></td><td>&nbsp;lecroart</td><td>&nbsp; <font size=-1>CHANGED: now load/save state machine in XML format
+</font></td></tr>
+<tr bgcolor="#cccccc"><td><A NAME="logic_event.cpp"></A><A HREF="logic_event.cpp?sortby=log"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_event.cpp?sortby=log">logic_event.cpp</A>
+</td><td>&nbsp;<A HREF="logic_event.cpp?rev=1.3&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.3</b></A></td><td>&nbsp; <i>4 weeks</i></td><td>&nbsp;lecroart</td><td>&nbsp; <font size=-1>CHANGED: now load/save state machine in XML format
+</font></td></tr>
+<tr bgcolor="#dddddd"><td><A NAME="logic_state.cpp"></A><A HREF="logic_state.cpp?sortby=log"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_state.cpp?sortby=log">logic_state.cpp</A>
+</td><td>&nbsp;<A HREF="logic_state.cpp?rev=1.2&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.2</b></A></td><td>&nbsp; <i>4 weeks</i></td><td>&nbsp;lecroart</td><td>&nbsp; <font size=-1>CHANGED: now load/save state machine in XML format
+</font></td></tr>
+<tr bgcolor="#cccccc"><td><A NAME="logic_state_machine.cpp"></A><A HREF="logic_state_machine.cpp?sortby=log"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_state_machine.cpp?sortby=log">logic_state_machine.cpp</A>
+</td><td>&nbsp;<A HREF="logic_state_machine.cpp?rev=1.3&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.3</b></A></td><td>&nbsp; <i>4 weeks</i></td><td>&nbsp;lecroart</td><td>&nbsp; <font size=-1>CHANGED: now load/save state machine in XML format
+</font></td></tr>
+<tr bgcolor="#dddddd"><td><A NAME="logic_variable.cpp"></A><A HREF="logic_variable.cpp?sortby=log"><IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></A>
+ <A HREF="logic_variable.cpp?sortby=log">logic_variable.cpp</A>
+</td><td>&nbsp;<A HREF="logic_variable.cpp?rev=1.2&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.2</b></A></td><td>&nbsp; <i>4 weeks</i></td><td>&nbsp;lecroart</td><td>&nbsp; <font size=-1>CHANGED: now load/save state machine in XML format
+</font></td></tr>
+</table><hr size=1 NOSHADE><FORM METHOD="GET" ACTION="./">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+Show only files with tag:
+<SELECT NAME=only_with_tag onchange="submit()"><OPTION VALUE="">All tags / default branch
+<OPTION>MAIN
+<OPTION>HEAD
+<OPTION>georges_v2
+</SELECT>
+<INPUT TYPE=SUBMIT VALUE="Go">
+</FORM>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
+</TD>
+<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML></BODY></HTML>
diff --git a/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?rev=1.2&content-type=text/x-cvsweb-markup&sortby=log/index.html b/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?rev=1.2&content-type=text/x-cvsweb-markup&sortby=log/index.html
new file mode 100644
index 00000000..a650d870
--- /dev/null
+++ b/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?rev=1.2&content-type=text/x-cvsweb-markup&sortby=log/index.html
@@ -0,0 +1,649 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
+<HEAD><style> A { color:black }</style>
+<!-- hennerik CVSweb $Revision: 1.93 $ -->
+<TITLE>code/nel/src/logic/logic_condition.cpp - view - 1.2</TITLE></HEAD>
+<BODY BGCOLOR="#eeeeee">
+<table width="100%" border=0 cellspacing=0 cellpadding=1 bgcolor="#aaaaaa"><tr valign=bottom><td><a href="logic_condition.cpp?sortby=log"><IMG SRC="http://www.nevrax.org/inc/img/picto-up.gif" ALT="[BACK]" BORDER="0" WIDTH="14" HEIGHT="13"></a> <b>Return to <A HREF="logic_condition.cpp?sortby=log">logic_condition.cpp</A>
+ CVS log</b> <IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></td><td align=right><IMG SRC="http://www.nevrax.org/inc/img/picto-dir.gif" ALT="[DIR]" BORDER="0" WIDTH="15" HEIGHT="13"> <b>Up to <a href="/cvs/cvsweb.cgi/?sortby=log">Nevrax</a> / <a href="/cvs/cvsweb.cgi/code/?sortby=log">code</a> / <a href="/cvs/cvsweb.cgi/code/nel/?sortby=log">nel</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/?sortby=log">src</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log">logic</a></b></td></tr></table><HR noshade><table width="100%"><tr><td bgcolor="#ffffff">File: <a href="/cvs/cvsweb.cgi/?sortby=log">Nevrax</a> / <a href="/cvs/cvsweb.cgi/code/?sortby=log">code</a> / <a href="/cvs/cvsweb.cgi/code/nel/?sortby=log">nel</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/?sortby=log">src</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log">logic</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?sortby=log">logic_condition.cpp</a>&nbsp;(<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_condition.cpp?rev=1.2&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_condition.cpp?rev=1.2','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>)<BR>
+Revision <B>1.2</B>, <i>Thu Jun 20 12:17:56 2002 UTC</i> (5 weeks, 3 days ago) by <i>lecroart</i>
+<BR>Branch: <b>MAIN</b>
+<BR>CVS Tags: <b>HEAD</b><BR>Changes since <b>1.1: +156 -9
+ lines</b><PRE>
+CHANGED: now load/save state machine in XML format
+</PRE>
+</td></tr></table><HR noshade><PRE>/** \file logic_condition.cpp
+ *
+ *
+ * $Id: logic_condition.cpp,v 1.2 2002/06/20 12:17:56 lecroart Exp $
+ */
+
+/* Copyright, 2000 Nevrax Ltd.
+ *
+ * This file is part of NEVRAX NEL.
+ * NEVRAX NEL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+
+ * NEVRAX NEL is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with NEVRAX NEL; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+
+#include &quot;nel/misc/o_xml.h&quot;
+
+#include &quot;nel/logic/logic_condition.h&quot;
+#include &quot;nel/logic/logic_variable.h&quot;
+#include &quot;nel/logic/logic_state_machine.h&quot;
+
+using namespace NLMISC;
+using namespace std;
+
+namespace NLLOGIC
+{
+
+//-------------------------------------------------
+// setLogicStateMachine :
+//
+//-------------------------------------------------
+void CLogicComparisonBlock::setLogicStateMachine( CLogicStateMachine * logicStateMachine )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;if( logicStateMachine == 0 )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nlwarning(&quot;(LOGIC)&lt;CLogicComparisonBlock::setLogicStateMachine&gt; The state machine is null&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;else
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_LogicStateMachine = logicStateMachine;
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;
+} // setLogicStateMachine //
+
+
+//-------------------------------------------------
+// testLogic :
+//
+//-------------------------------------------------
+bool CLogicComparisonBlock::testLogic()
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;CLogicVariable var;
+ &nbsp; &nbsp; &nbsp; &nbsp;if( _LogicStateMachine-&gt;getVariable( VariableName, var ) == false )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nlwarning(&quot;(LOGIC)&lt;CLogicComparisonBlock::testLogic&gt; The variable %s is unknown in the state machine&quot;,VariableName.c_str());
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+ &nbsp; &nbsp; &nbsp; &nbsp;if( Operator == &quot;&lt;&quot; &nbsp;) &nbsp; &nbsp; &nbsp; &nbsp;return ( var.getValue() &lt; &nbsp;Comparand );
+ &nbsp; &nbsp; &nbsp; &nbsp;if( Operator == &quot;&lt;=&quot; ) &nbsp; &nbsp; &nbsp; &nbsp;return ( var.getValue() &lt;= Comparand );
+ &nbsp; &nbsp; &nbsp; &nbsp;if( Operator == &quot;&gt;&quot; &nbsp;) &nbsp; &nbsp; &nbsp; &nbsp;return ( var.getValue() &gt; &nbsp;Comparand );
+ &nbsp; &nbsp; &nbsp; &nbsp;if( Operator == &quot;&gt;=&quot; ) &nbsp; &nbsp; &nbsp; &nbsp;return ( var.getValue() &gt;= Comparand );
+ &nbsp; &nbsp; &nbsp; &nbsp;if( Operator == &quot;==&quot; ) &nbsp; &nbsp; &nbsp; &nbsp;return ( var.getValue() == Comparand );
+ &nbsp; &nbsp; &nbsp; &nbsp;if( Operator == &quot;!=&quot; ) &nbsp; &nbsp; &nbsp; &nbsp;return ( var.getValue() != Comparand );
+
+ &nbsp; &nbsp; &nbsp; &nbsp;nlwarning(&quot;(LOGIC)&lt;CLogicComparisonBlock::testLogic&gt; The comparison block operator %s is unknown&quot;,Operator.c_str());
+ &nbsp; &nbsp; &nbsp; &nbsp;return false;
+
+} // testLogic //
+
+
+//-------------------------------------------------
+// serial :
+//
+//-------------------------------------------------
+/*void CLogicComparisonBlock::serial( IStream &amp;f )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;f.xmlPush(&quot;COMPARISON_BLOCK&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp;f.serial( VariableName );
+ &nbsp; &nbsp; &nbsp; &nbsp;f.serial( Operator );
+ &nbsp; &nbsp; &nbsp; &nbsp;f.serial( Comparand );
+ &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp;f.xmlPop();
+
+} // serial //*/
+
+void CLogicComparisonBlock::write (xmlNodePtr node) const
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlNodePtr elmPtr = xmlNewChild ( node, NULL, (const xmlChar*)&quot;COMPARISON_BLOCK&quot;, NULL);
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlSetProp (elmPtr, (const xmlChar*)&quot;VariableName&quot;, (const xmlChar*)VariableName.c_str());
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlSetProp (elmPtr, (const xmlChar*)&quot;Operator&quot;, (const xmlChar*)Operator.c_str());
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlSetProp (elmPtr, (const xmlChar*)&quot;Comparand&quot;, (const xmlChar*)toString(Comparand).c_str());
+}
+
+void CLogicComparisonBlock::read (xmlNodePtr node)
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlCheckNodeName (node, &quot;COMPARISON_BLOCK&quot;);
+
+ &nbsp; &nbsp; &nbsp; &nbsp;VariableName = getXMLProp (node, &quot;VariableName&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;Operator = getXMLProp (node, &quot;Operator&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;Comparand = atoiInt64(getXMLProp (node, &quot;Comparand&quot;).c_str());
+}
+
+
+
+
+
+
+
+//-------------------------------------------------
+// setLogicStateMachine :
+//
+//-------------------------------------------------
+void CLogicConditionLogicBlock::setLogicStateMachine( CLogicStateMachine * logicStateMachine )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;if( logicStateMachine == 0 )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nlwarning(&quot;(LOGIC)&lt;CCLogicConditionLogicBlock::setLogicStateMachine&gt; The state machine is null&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;else
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// set the state machine of this node
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_LogicStateMachine = logicStateMachine;
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// set the state machine of the logic block
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ComparisonBlock.setLogicStateMachine( logicStateMachine );
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+} // setLogicStateMachine //
+
+
+//-------------------------------------------------
+// testLogic :
+//
+//-------------------------------------------------
+bool CLogicConditionLogicBlock::testLogic()
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;switch( Type )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case NOT :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return true;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case COMPARISON :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return ComparisonBlock.testLogic();
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case SUB_CONDITION :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CLogicCondition condition;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if( _LogicStateMachine-&gt;getCondition(SubCondition,condition) )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return condition.testLogic();
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nlwarning(&quot;(LOGIC)&lt;CLogicConditionLogicBlock::testLogic&gt; The subcondition \&quot;%s\&quot; is unknown in the state machine \&quot;%s\&quot;&quot;,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SubCondition.c_str(),_LogicStateMachine-&gt;getName().c_str());
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nlerror(&quot;(LOGIC)&lt;CLogicConditionLogicBlock::testLogic&gt; logic block type %d is unknown&quot;,Type);
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp;return false;
+
+} // testLogic //
+
+
+
+//-------------------------------------------------
+// fillVarSet :
+//
+//-------------------------------------------------
+void CLogicConditionLogicBlock::fillVarSet( set&lt;string&gt;&amp; condVars )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;if( Type == COMPARISON )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;condVars.insert( ComparisonBlock.VariableName );
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;else
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if( Type == SUB_CONDITION )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CLogicCondition condition;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if( _LogicStateMachine-&gt;getCondition(SubCondition,condition) )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;condition.fillVarSet( condVars );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+} // fillVarSet //
+
+
+//-------------------------------------------------
+// serial :
+//
+//-------------------------------------------------
+/*void CLogicConditionLogicBlock::serial( IStream &amp;f )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;f.xmlPush(&quot;CONDITION_LOGIC_BLOCK&quot;);
+
+ &nbsp; &nbsp; &nbsp; &nbsp;f.serialEnum( Type );
+ &nbsp; &nbsp; &nbsp; &nbsp;switch( Type )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case NOT : break;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case COMPARISON :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;f.serial( ComparisonBlock );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case SUB_CONDITION :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;f.serial( SubCondition );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+ &nbsp; &nbsp; &nbsp; &nbsp;};
+ &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp;f.xmlPop();
+};*/
+
+void CLogicConditionLogicBlock::write (xmlNodePtr node) const
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlNodePtr elmPtr = xmlNewChild ( node, NULL, (const xmlChar*)&quot;CONDITION_LOGIC_NODE&quot;, NULL);
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlSetProp (elmPtr, (const xmlChar*)&quot;Type&quot;, (const xmlChar*)toString(Type).c_str());
+ &nbsp; &nbsp; &nbsp; &nbsp;switch( Type )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case NOT : break;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case COMPARISON :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ComparisonBlock.write(elmPtr);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case SUB_CONDITION :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlSetProp (elmPtr, (const xmlChar*)&quot;SubCondition&quot;, (const xmlChar*)SubCondition.c_str());
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+ &nbsp; &nbsp; &nbsp; &nbsp;};
+}
+
+void CLogicConditionLogicBlock::read (xmlNodePtr node)
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlCheckNodeName (node, &quot;CONDITION_LOGIC_NODE&quot;);
+
+ &nbsp; &nbsp; &nbsp; &nbsp;Type = (TLogicConditionLogicBlockType)atoi(getXMLProp (node, &quot;Type&quot;).c_str());
+ &nbsp; &nbsp; &nbsp; &nbsp;switch( Type )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case NOT : break;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case COMPARISON :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ComparisonBlock.read (node);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case SUB_CONDITION :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SubCondition = getXMLProp (node, &quot;SubCondition&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+ &nbsp; &nbsp; &nbsp; &nbsp;};
+}
+
+//-----------------------------------------
+
+
+
+//-------------------------------------------------
+// setLogicStateMachine :
+//
+//-------------------------------------------------
+void CLogicConditionNode::setLogicStateMachine( CLogicStateMachine * logicStateMachine )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;if( logicStateMachine == 0 )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nlwarning(&quot;(LOGIC)&lt;CLogicConditionNode::setLogicStateMachine&gt; The state machine is null&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;else
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// set the state machine of this node
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_LogicStateMachine = logicStateMachine;
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// set the state machine of the logic block
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LogicBlock.setLogicStateMachine( logicStateMachine );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// set the state machine for the sub nodes
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode *&gt;::iterator itNodes;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for( itNodes = _Nodes.begin(); itNodes != _Nodes.end(); ++itNodes )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(*itNodes)-&gt;setLogicStateMachine( logicStateMachine );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+} // setLogicStateMachine //
+
+
+//-------------------------------------------------
+// addNode :
+//
+//-------------------------------------------------
+void CLogicConditionNode::addNode( CLogicConditionNode * node )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;node-&gt;setLogicStateMachine( _LogicStateMachine );
+ &nbsp; &nbsp; &nbsp; &nbsp;_Nodes.push_back( node );
+
+} // addToSubNodes //
+
+
+//-------------------------------------------------
+// testLogic :
+//
+//-------------------------------------------------
+bool CLogicConditionNode::testLogic()
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;// test the logic block
+ &nbsp; &nbsp; &nbsp; &nbsp;if( LogicBlock.testLogic() == false )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+ &nbsp; &nbsp; &nbsp; &nbsp;// if there's no subtree we assess the subtree is true
+ &nbsp; &nbsp; &nbsp; &nbsp;if( _Nodes.size() == 0 )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return true;
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+ &nbsp; &nbsp; &nbsp; &nbsp;// test the subtree
+ &nbsp; &nbsp; &nbsp; &nbsp;if( LogicBlock.isNotBlock() )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// the subtree is false if at least one node is true
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode *&gt;::iterator itNodes;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for( itNodes = _Nodes.begin(); itNodes != _Nodes.end(); ++itNodes )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if( (*itNodes)-&gt;testLogic() == true )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return true;
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;else
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// the subtree is true if at least one node is true
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode *&gt;::iterator itNodes;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for( itNodes = _Nodes.begin(); itNodes != _Nodes.end(); ++itNodes )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if( (*itNodes)-&gt;testLogic() == true )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return true;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+} // testLogic //
+
+
+//-------------------------------------------------
+// fillVarSet :
+//
+//-------------------------------------------------
+void CLogicConditionNode::fillVarSet( set&lt;string&gt;&amp; condVars )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;if( Type == LOGIC_NODE )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LogicBlock.fillVarSet( condVars );
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+ &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode *&gt;::iterator itNode;
+ &nbsp; &nbsp; &nbsp; &nbsp;for( itNode = _Nodes.begin(); itNode != _Nodes.end(); ++itNode )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(*itNode)-&gt;fillVarSet( condVars );
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+} // fillVarSet //
+
+
+//-------------------------------------------------
+// serial :
+//
+//-------------------------------------------------
+/*void CLogicConditionNode::serial( IStream &amp;f )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;f.xmlPush(&quot;CONDITION_NODE&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp;f.serialEnum( Type );
+ &nbsp; &nbsp; &nbsp; &nbsp;switch( Type )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case TERMINATOR : break;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case LOGIC_NODE :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;f.serial( LogicBlock );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if( f.isReading() )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint32 sz;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;f.serial( sz );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint i;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for( i = 0; i &lt; sz; i++ )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CLogicConditionNode * node = new CLogicConditionNode();
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;f.serial( *node );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_Nodes.push_back( node );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint32 sz = _Nodes.size();
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;f.serial( sz );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode *&gt;::iterator itNode;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for( itNode = _Nodes.begin(); itNode != _Nodes.end(); ++itNode )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;f.serial( **itNode );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+ &nbsp; &nbsp; &nbsp; &nbsp;};
+
+ &nbsp; &nbsp; &nbsp; &nbsp;f.xmlPop();
+
+} // serial //*/
+
+void CLogicConditionNode::write (xmlNodePtr node) const
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlNodePtr elmPtr = xmlNewChild ( node, NULL, (const xmlChar*)&quot;CONDITION_NODE&quot;, NULL);
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlSetProp (elmPtr, (const xmlChar*)&quot;Type&quot;, (const xmlChar*)toString(Type).c_str());
+
+ &nbsp; &nbsp; &nbsp; &nbsp;switch( Type )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case TERMINATOR : break;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case LOGIC_NODE :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LogicBlock.write(elmPtr);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode *&gt;::const_iterator itNode = _Nodes.begin();
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for( ; itNode != _Nodes.end(); ++itNode )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(*itNode)-&gt;write(elmPtr);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+ &nbsp; &nbsp; &nbsp; &nbsp;};
+}
+
+void CLogicConditionNode::read (xmlNodePtr node)
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlCheckNodeName (node, &quot;CONDITION_NODE&quot;);
+
+ &nbsp; &nbsp; &nbsp; &nbsp;Type = (TConditionNodeType )atoi(getXMLProp (node, &quot;Type&quot;).c_str());
+ &nbsp; &nbsp; &nbsp; &nbsp;switch( Type )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case TERMINATOR : break;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case LOGIC_NODE :
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LogicBlock.read (node);
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Count the parent
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint nb = CIXml::countChildren (node, &quot;CONDITION_NODE&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint i = 0;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlNodePtr parent = CIXml::getFirstChildNode (node, &quot;CONDITION_NODE&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;while (i&lt;nb)
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CLogicConditionNode *v = new CLogicConditionNode();
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;v-&gt;read(parent);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_Nodes.push_back (v);
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Next parent
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;parent = CIXml::getNextChildNode (parent, &quot;CONDITION_NODE&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i++;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;
+ &nbsp; &nbsp; &nbsp; &nbsp;};
+}
+
+//-------------------------------------------------
+// ~CLogicConditionNode :
+//
+//-------------------------------------------------
+CLogicConditionNode::~CLogicConditionNode()
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode *&gt;::iterator itNodes;
+ &nbsp; &nbsp; &nbsp; &nbsp;for( itNodes = _Nodes.begin(); itNodes != _Nodes.end(); ++itNodes )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;delete (*itNodes);
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+} // ~CLogicConditionNode //
+
+
+
+
+
+
+
+//-------------------------------------------------
+// setLogicStateMachine :
+//
+//-------------------------------------------------
+void CLogicCondition::setLogicStateMachine( CLogicStateMachine * logicStateMachine )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;if( logicStateMachine == 0 )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nlwarning(&quot;(LOGIC)&lt;CLogicCondition::setLogicStateMachine&gt; The state machine is null&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;else
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// init the logic state machine for each node
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode&gt;::iterator itNodes;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for( itNodes = Nodes.begin(); itNodes != Nodes.end(); ++itNodes )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(*itNodes).setLogicStateMachine( logicStateMachine );
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+} // setLogicStateMachine //
+
+
+//-------------------------------------------------
+// testLogic :
+//
+//-------------------------------------------------
+bool CLogicCondition::testLogic()
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode&gt;::iterator itNodes;
+ &nbsp; &nbsp; &nbsp; &nbsp;for( itNodes = Nodes.begin(); itNodes != Nodes.end(); ++itNodes )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if( (*itNodes).testLogic() == false )
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+ &nbsp; &nbsp; &nbsp; &nbsp;return true;
+
+} // testLogic //
+
+
+
+//-------------------------------------------------
+// fillVarSet :
+//
+//-------------------------------------------------
+void CLogicCondition::fillVarSet( set&lt;string&gt;&amp; condVars )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;vector&lt;CLogicConditionNode&gt;::iterator itNode;
+ &nbsp; &nbsp; &nbsp; &nbsp;for( itNode = Nodes.begin(); itNode != Nodes.end(); ++itNode )
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(*itNode).fillVarSet( condVars );
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+
+} // fillVarSet //
+
+
+
+//-------------------------------------------------
+// serial :
+//
+//-------------------------------------------------
+/*void CLogicCondition::serial( IStream &amp;f )
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;f.xmlPush(&quot;CONDITION&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp;f.serial( _ConditionName );
+ &nbsp; &nbsp; &nbsp; &nbsp;f.serialCont( Nodes );
+
+ &nbsp; &nbsp; &nbsp; &nbsp;f.xmlPop();
+
+} // serial //*/
+
+void CLogicCondition::write (xmlNodePtr node) const
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlNodePtr elmPtr = xmlNewChild ( node, NULL, (const xmlChar*)&quot;CONDITION&quot;, NULL);
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlSetProp (elmPtr, (const xmlChar*)&quot;Name&quot;, (const xmlChar*)_ConditionName.c_str());
+
+ &nbsp; &nbsp; &nbsp; &nbsp;uint i;
+ &nbsp; &nbsp; &nbsp; &nbsp;for (i = 0; i &lt; Nodes.size(); i++)
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Nodes[i].write(elmPtr);
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+}
+
+void CLogicCondition::read (xmlNodePtr node)
+{
+ &nbsp; &nbsp; &nbsp; &nbsp;xmlCheckNodeName (node, &quot;CONDITION&quot;);
+
+ &nbsp; &nbsp; &nbsp; &nbsp;_ConditionName = getXMLProp (node, &quot;Name&quot;);
+
+ &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Count the parent
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint nb = CIXml::countChildren (node, &quot;CONDITION_NODE&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint i = 0;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlNodePtr parent = CIXml::getFirstChildNode (node, &quot;CONDITION_NODE&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;while (i&lt;nb)
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CLogicConditionNode v;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;v.read(parent);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Nodes.push_back (v);
+
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Next parent
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;parent = CIXml::getNextChildNode (parent, &quot;CONDITION_NODE&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i++;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp; &nbsp; &nbsp;}
+}
+
+
+} // NLLOGIC
+</PRE> \ No newline at end of file
diff --git a/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?sortby=log b/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?sortby=log
new file mode 100644
index 00000000..ad4eaf25
--- /dev/null
+++ b/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?sortby=log
@@ -0,0 +1,150 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <TITLE>nevrax.org : cvs</TITLE>
+ <META name="keywords" content="freesoftware,nel,newt,snowballs,richard stallman,GNU,Multi-User Online World">
+
+ <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css">
+</HEAD>
+<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
+
+<!-- uplinks -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+</TABLE>
+
+<!-- banner Nevrax -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
+ <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR>
+</TABLE>
+
+<!-- main table -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+ <!------ Begin Box ------>
+ <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
+ <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
+ <TABLE cellspacing=0 cellpadding=1 border=0>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-free.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Free Software">Free software</a></td></tr>
+ </TABLE>
+ </TD></TR></TABLE></TD></TR></TABLE>
+ <!------ End Box ------>
+
+ </TD>
+ <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+<!-- title -->
+<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
+<A HREF="http://www.nevrax.org/cvs/"><img src="http://www.nevrax.org/inc/img/t_cvs.gif" ALT="cvs" HEIGHT=20 BORDER=0></A>
+</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
+</td></tr></table>
+
+<!-- title -->
+<table width=100%><tr><td align=left><b> <a href="/cvs/cvsweb.cgi/?sortby=log">Nevrax</a> / <a href="/cvs/cvsweb.cgi/code/?sortby=log">code</a> / <a href="/cvs/cvsweb.cgi/code/nel/?sortby=log">nel</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/?sortby=log">src</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log">logic</a> / logic_condition.cpp</b></td><td align=right><b></b></td></TR></TABLE>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>logic_condition.cpp</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<p>Default branch: MAIN<BR>
+<HR size=1 NOSHADE><P><a NAME="rev1.2"></a><a NAME="HEAD"></a><a NAME="MAIN"></a>
+ Revision <A HREF="logic_condition.cpp?rev=1.2&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.2</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_condition.cpp?rev=1.2&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_condition.cpp?rev=1.2&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?annotate=1.2&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?r1=1.2&amp;sortby=log">[select for diffs]</A>
+, <i>Thu Jun 20 12:17:56 2002 UTC</i> (5 weeks, 3 days ago) by <i>lecroart</i>
+<BR>Branch: <b><A HREF="logic_condition.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>CVS Tags: <b><A HREF="logic_condition.cpp?sortby=log&amp;only_with_tag=HEAD">HEAD</A>
+</b><BR>Changes since <b>1.1: +156 -9
+ lines</b><BR>Diff to previous <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp.diff?r1=1.1&amp;r2=1.2&amp;sortby=log">1.1</A>
+<PRE>
+CHANGED: now load/save state machine in XML format
+</PRE>
+<HR size=1 NOSHADE><P><a NAME="rev1.1"></a><a NAME="georges_v2"></a>
+ Revision <A HREF="logic_condition.cpp?rev=1.1&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.1</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_condition.cpp?rev=1.1&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_condition.cpp?rev=1.1&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?annotate=1.1&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp?r1=1.1&amp;sortby=log">[select for diffs]</A>
+, <i>Thu Feb 14 12:58:03 2002 UTC</i> (5 months, 1 week ago) by <i>corvazier</i>
+<BR>Branch: <b><A HREF="logic_condition.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>CVS Tags: <b><A HREF="logic_condition.cpp?sortby=log&amp;only_with_tag=georges_v2">georges_v2</A>
+</b><BR>Diff<PRE>
+ADDED: logic
+</PRE>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Request Diffs</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<P>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp.diff" NAME="diff_select">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+Diffs between
+<SELECT NAME="r1">
+<OPTION VALUE="text" SELECTED>Use Text Field
+<OPTION VALUE="1.1:georges_v2">georges_v2
+<OPTION VALUE="1:MAIN">MAIN
+<OPTION VALUE="1.2:HEAD">HEAD
+</SELECT>
+<INPUT TYPE="TEXT" SIZE="12" NAME="tr1" VALUE="1.1" onChange='document.diff_select.r1.selectedIndex=0'>
+ and
+<SELECT NAME="r2">
+<OPTION VALUE="text" SELECTED>Use Text Field
+<OPTION VALUE="1.1:georges_v2">georges_v2
+<OPTION VALUE="1:MAIN">MAIN
+<OPTION VALUE="1.2:HEAD">HEAD
+</SELECT>
+<INPUT TYPE="TEXT" SIZE="12" NAME="tr2" VALUE="1.2" onChange='docuement.diff_select.r2.selectedIndex=0'>
+<BR>Type of Diff should be a&nbsp;<SELECT NAME="f">
+<OPTION VALUE=h SELECTED>Colored Diff<OPTION VALUE=H>Long Colored Diff<OPTION VALUE=u>Unidiff<OPTION VALUE=c>Context Diff<OPTION VALUE=s>Side by Side</SELECT><INPUT TYPE=SUBMIT VALUE=" Get Diffs ">
+</FORM>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Select branch</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<P>
+<A name=branch></A>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+View only Branch:
+<SELECT NAME="only_with_tag" onchange="submit()">
+<OPTION VALUE="">Show all branches
+<OPTION>MAIN
+</SELECT>
+<INPUT TYPE=SUBMIT VALUE=" View Branch ">
+</FORM>
+<A name=logsort></A>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_condition.cpp">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+Sort log by:
+<SELECT NAME="logsort" onchange="submit()">
+<OPTION VALUE=cvs>Not sorted<OPTION VALUE=date SELECTED>Commit date<OPTION VALUE=rev>Revision</SELECT>
+<INPUT TYPE=SUBMIT VALUE=" Sort ">
+</FORM>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
+</TD>
+<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML></BODY></HTML>
diff --git a/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?sortby=log b/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?sortby=log
new file mode 100644
index 00000000..2f35839d
--- /dev/null
+++ b/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?sortby=log
@@ -0,0 +1,160 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <TITLE>nevrax.org : cvs</TITLE>
+ <META name="keywords" content="freesoftware,nel,newt,snowballs,richard stallman,GNU,Multi-User Online World">
+
+ <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css">
+</HEAD>
+<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
+
+<!-- uplinks -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+</TABLE>
+
+<!-- banner Nevrax -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
+ <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR>
+</TABLE>
+
+<!-- main table -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+ <!------ Begin Box ------>
+ <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
+ <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
+ <TABLE cellspacing=0 cellpadding=1 border=0>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-free.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Free Software">Free software</a></td></tr>
+ </TABLE>
+ </TD></TR></TABLE></TD></TR></TABLE>
+ <!------ End Box ------>
+
+ </TD>
+ <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+<!-- title -->
+<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
+<A HREF="http://www.nevrax.org/cvs/"><img src="http://www.nevrax.org/inc/img/t_cvs.gif" ALT="cvs" HEIGHT=20 BORDER=0></A>
+</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
+</td></tr></table>
+
+<!-- title -->
+<table width=100%><tr><td align=left><b> <a href="/cvs/cvsweb.cgi/?sortby=log">Nevrax</a> / <a href="/cvs/cvsweb.cgi/code/?sortby=log">code</a> / <a href="/cvs/cvsweb.cgi/code/nel/?sortby=log">nel</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/?sortby=log">src</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log">logic</a> / logic_event.cpp</b></td><td align=right><b></b></td></TR></TABLE>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>logic_event.cpp</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<p>Default branch: MAIN<BR>
+<HR size=1 NOSHADE><P><a NAME="rev1.3"></a><a NAME="HEAD"></a><a NAME="MAIN"></a>
+ Revision <A HREF="logic_event.cpp?rev=1.3&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.3</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_event.cpp?rev=1.3&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_event.cpp?rev=1.3&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?annotate=1.3&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?r1=1.3&amp;sortby=log">[select for diffs]</A>
+, <i>Thu Jun 20 12:17:56 2002 UTC</i> (5 weeks, 3 days ago) by <i>lecroart</i>
+<BR>Branch: <b><A HREF="logic_event.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>CVS Tags: <b><A HREF="logic_event.cpp?sortby=log&amp;only_with_tag=HEAD">HEAD</A>
+</b><BR>Changes since <b>1.2: +68 -8
+ lines</b><BR>Diff to previous <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp.diff?r1=1.2&amp;r2=1.3&amp;sortby=log">1.2</A>
+<PRE>
+CHANGED: now load/save state machine in XML format
+</PRE>
+<HR size=1 NOSHADE><P><a NAME="rev1.2"></a><a NAME="georges_v2"></a>
+ Revision <A HREF="logic_event.cpp?rev=1.2&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.2</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_event.cpp?rev=1.2&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_event.cpp?rev=1.2&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?annotate=1.2&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?r1=1.2&amp;sortby=log">[select for diffs]</A>
+, <i>Mon Mar 25 16:20:13 2002 UTC</i> (4 months ago) by <i>lecroart</i>
+<BR>Branch: <b><A HREF="logic_event.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>CVS Tags: <b><A HREF="logic_event.cpp?sortby=log&amp;only_with_tag=georges_v2">georges_v2</A>
+</b><BR>Changes since <b>1.1: +2 -2
+ lines</b><BR>Diff to previous <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp.diff?r1=1.1&amp;r2=1.2&amp;sortby=log">1.1</A>
+<PRE>
+CHANGED: use new service functions
+</PRE>
+<HR size=1 NOSHADE><P><a NAME="rev1.1"></a>
+ Revision <A HREF="logic_event.cpp?rev=1.1&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.1</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_event.cpp?rev=1.1&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_event.cpp?rev=1.1&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?annotate=1.1&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp?r1=1.1&amp;sortby=log">[select for diffs]</A>
+, <i>Thu Feb 14 12:58:03 2002 UTC</i> (5 months, 1 week ago) by <i>corvazier</i>
+<BR>Branch: <b><A HREF="logic_event.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>Diff<PRE>
+ADDED: logic
+</PRE>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Request Diffs</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<P>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp.diff" NAME="diff_select">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+Diffs between
+<SELECT NAME="r1">
+<OPTION VALUE="text" SELECTED>Use Text Field
+<OPTION VALUE="1.2:georges_v2">georges_v2
+<OPTION VALUE="1:MAIN">MAIN
+<OPTION VALUE="1.3:HEAD">HEAD
+</SELECT>
+<INPUT TYPE="TEXT" SIZE="12" NAME="tr1" VALUE="1.1" onChange='document.diff_select.r1.selectedIndex=0'>
+ and
+<SELECT NAME="r2">
+<OPTION VALUE="text" SELECTED>Use Text Field
+<OPTION VALUE="1.2:georges_v2">georges_v2
+<OPTION VALUE="1:MAIN">MAIN
+<OPTION VALUE="1.3:HEAD">HEAD
+</SELECT>
+<INPUT TYPE="TEXT" SIZE="12" NAME="tr2" VALUE="1.3" onChange='docuement.diff_select.r2.selectedIndex=0'>
+<BR>Type of Diff should be a&nbsp;<SELECT NAME="f">
+<OPTION VALUE=h SELECTED>Colored Diff<OPTION VALUE=H>Long Colored Diff<OPTION VALUE=u>Unidiff<OPTION VALUE=c>Context Diff<OPTION VALUE=s>Side by Side</SELECT><INPUT TYPE=SUBMIT VALUE=" Get Diffs ">
+</FORM>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Select branch</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<P>
+<A name=branch></A>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+View only Branch:
+<SELECT NAME="only_with_tag" onchange="submit()">
+<OPTION VALUE="">Show all branches
+<OPTION>MAIN
+</SELECT>
+<INPUT TYPE=SUBMIT VALUE=" View Branch ">
+</FORM>
+<A name=logsort></A>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_event.cpp">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+Sort log by:
+<SELECT NAME="logsort" onchange="submit()">
+<OPTION VALUE=cvs>Not sorted<OPTION VALUE=date SELECTED>Commit date<OPTION VALUE=rev>Revision</SELECT>
+<INPUT TYPE=SUBMIT VALUE=" Sort ">
+</FORM>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
+</TD>
+<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML></BODY></HTML>
diff --git a/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?sortby=log b/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?sortby=log
new file mode 100644
index 00000000..d7a9636b
--- /dev/null
+++ b/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?sortby=log
@@ -0,0 +1,170 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <TITLE>nevrax.org : cvs</TITLE>
+ <META name="keywords" content="freesoftware,nel,newt,snowballs,richard stallman,GNU,Multi-User Online World">
+
+ <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css">
+</HEAD>
+<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
+
+<!-- uplinks -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+</TABLE>
+
+<!-- banner Nevrax -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
+ <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR>
+</TABLE>
+
+<!-- main table -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+ <!------ Begin Box ------>
+ <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
+ <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
+ <TABLE cellspacing=0 cellpadding=1 border=0>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-free.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Free Software">Free software</a></td></tr>
+ </TABLE>
+ </TD></TR></TABLE></TD></TR></TABLE>
+ <!------ End Box ------>
+
+ </TD>
+ <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+<!-- title -->
+<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
+<A HREF="http://www.nevrax.org/cvs/"><img src="http://www.nevrax.org/inc/img/t_cvs.gif" ALT="cvs" HEIGHT=20 BORDER=0></A>
+</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
+</td></tr></table>
+
+<!-- title -->
+<table width=100%><tr><td align=left><b> <a href="/cvs/cvsweb.cgi/?sortby=log">Nevrax</a> / <a href="/cvs/cvsweb.cgi/code/?sortby=log">code</a> / <a href="/cvs/cvsweb.cgi/code/nel/?sortby=log">nel</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/?sortby=log">src</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log">logic</a> / logic_state_machine.cpp</b></td><td align=right><b></b></td></TR></TABLE>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>logic_state_machine.cpp</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<p>Default branch: MAIN<BR>
+<HR size=1 NOSHADE><P><a NAME="rev1.4"></a><a NAME="HEAD"></a><a NAME="MAIN"></a>
+ Revision <A HREF="logic_state_machine.cpp?rev=1.4&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.4</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_state_machine.cpp?rev=1.4&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_state_machine.cpp?rev=1.4&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?annotate=1.4&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?r1=1.4&amp;sortby=log">[select for diffs]</A>
+, <i>Fri Jul 26 09:52:24 2002 UTC</i> (2 days, 20 hours ago) by <i>coutelas</i>
+<BR>Branch: <b><A HREF="logic_state_machine.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>CVS Tags: <b><A HREF="logic_state_machine.cpp?sortby=log&amp;only_with_tag=HEAD">HEAD</A>
+</b><BR>Changes since <b>1.3: +5 -5
+ lines</b><BR>Diff to previous <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp.diff?r1=1.3&amp;r2=1.4&amp;sortby=log">1.3</A>
+<PRE>
+Uses methods to access entity id parts
+</PRE>
+<HR size=1 NOSHADE><P><a NAME="rev1.3"></a>
+ Revision <A HREF="logic_state_machine.cpp?rev=1.3&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.3</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_state_machine.cpp?rev=1.3&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_state_machine.cpp?rev=1.3&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?annotate=1.3&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?r1=1.3&amp;sortby=log">[select for diffs]</A>
+, <i>Thu Jun 20 12:17:56 2002 UTC</i> (5 weeks, 3 days ago) by <i>lecroart</i>
+<BR>Branch: <b><A HREF="logic_state_machine.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>Changes since <b>1.2: +159 -3
+ lines</b><BR>Diff to previous <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp.diff?r1=1.2&amp;r2=1.3&amp;sortby=log">1.2</A>
+<PRE>
+CHANGED: now load/save state machine in XML format
+</PRE>
+<HR size=1 NOSHADE><P><a NAME="rev1.2"></a><a NAME="georges_v2"></a>
+ Revision <A HREF="logic_state_machine.cpp?rev=1.2&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.2</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_state_machine.cpp?rev=1.2&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_state_machine.cpp?rev=1.2&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?annotate=1.2&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?r1=1.2&amp;sortby=log">[select for diffs]</A>
+, <i>Mon Mar 25 16:20:13 2002 UTC</i> (4 months ago) by <i>lecroart</i>
+<BR>Branch: <b><A HREF="logic_state_machine.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>CVS Tags: <b><A HREF="logic_state_machine.cpp?sortby=log&amp;only_with_tag=georges_v2">georges_v2</A>
+</b><BR>Changes since <b>1.1: +2 -2
+ lines</b><BR>Diff to previous <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp.diff?r1=1.1&amp;r2=1.2&amp;sortby=log">1.1</A>
+<PRE>
+CHANGED: use new service functions
+</PRE>
+<HR size=1 NOSHADE><P><a NAME="rev1.1"></a>
+ Revision <A HREF="logic_state_machine.cpp?rev=1.1&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.1</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_state_machine.cpp?rev=1.1&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_state_machine.cpp?rev=1.1&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?annotate=1.1&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp?r1=1.1&amp;sortby=log">[select for diffs]</A>
+, <i>Thu Feb 14 12:58:03 2002 UTC</i> (5 months, 1 week ago) by <i>corvazier</i>
+<BR>Branch: <b><A HREF="logic_state_machine.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>Diff<PRE>
+ADDED: logic
+</PRE>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Request Diffs</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<P>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp.diff" NAME="diff_select">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+Diffs between
+<SELECT NAME="r1">
+<OPTION VALUE="text" SELECTED>Use Text Field
+<OPTION VALUE="1.2:georges_v2">georges_v2
+<OPTION VALUE="1:MAIN">MAIN
+<OPTION VALUE="1.4:HEAD">HEAD
+</SELECT>
+<INPUT TYPE="TEXT" SIZE="12" NAME="tr1" VALUE="1.1" onChange='document.diff_select.r1.selectedIndex=0'>
+ and
+<SELECT NAME="r2">
+<OPTION VALUE="text" SELECTED>Use Text Field
+<OPTION VALUE="1.2:georges_v2">georges_v2
+<OPTION VALUE="1:MAIN">MAIN
+<OPTION VALUE="1.4:HEAD">HEAD
+</SELECT>
+<INPUT TYPE="TEXT" SIZE="12" NAME="tr2" VALUE="1.4" onChange='docuement.diff_select.r2.selectedIndex=0'>
+<BR>Type of Diff should be a&nbsp;<SELECT NAME="f">
+<OPTION VALUE=h SELECTED>Colored Diff<OPTION VALUE=H>Long Colored Diff<OPTION VALUE=u>Unidiff<OPTION VALUE=c>Context Diff<OPTION VALUE=s>Side by Side</SELECT><INPUT TYPE=SUBMIT VALUE=" Get Diffs ">
+</FORM>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Select branch</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<P>
+<A name=branch></A>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+View only Branch:
+<SELECT NAME="only_with_tag" onchange="submit()">
+<OPTION VALUE="">Show all branches
+<OPTION>MAIN
+</SELECT>
+<INPUT TYPE=SUBMIT VALUE=" View Branch ">
+</FORM>
+<A name=logsort></A>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_state_machine.cpp">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+Sort log by:
+<SELECT NAME="logsort" onchange="submit()">
+<OPTION VALUE=cvs>Not sorted<OPTION VALUE=date SELECTED>Commit date<OPTION VALUE=rev>Revision</SELECT>
+<INPUT TYPE=SUBMIT VALUE=" Sort ">
+</FORM>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
+</TD>
+<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML></BODY></HTML>
diff --git a/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp?sortby=log b/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp?sortby=log
new file mode 100644
index 00000000..f178a4f0
--- /dev/null
+++ b/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp?sortby=log
@@ -0,0 +1,150 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <TITLE>nevrax.org : cvs</TITLE>
+ <META name="keywords" content="freesoftware,nel,newt,snowballs,richard stallman,GNU,Multi-User Online World">
+
+ <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css">
+</HEAD>
+<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
+
+<!-- uplinks -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+</TABLE>
+
+<!-- banner Nevrax -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
+ <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR>
+</TABLE>
+
+<!-- main table -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+ <!------ Begin Box ------>
+ <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
+ <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
+ <TABLE cellspacing=0 cellpadding=1 border=0>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-free.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/free/" TITLE="Free Software">Free software</a></td></tr>
+ </TABLE>
+ </TD></TR></TABLE></TD></TR></TABLE>
+ <!------ End Box ------>
+
+ </TD>
+ <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+<!-- title -->
+<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
+<A HREF="http://www.nevrax.org/cvs/"><img src="http://www.nevrax.org/inc/img/t_cvs.gif" ALT="cvs" HEIGHT=20 BORDER=0></A>
+</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
+</td></tr></table>
+
+<!-- title -->
+<table width=100%><tr><td align=left><b> <a href="/cvs/cvsweb.cgi/?sortby=log">Nevrax</a> / <a href="/cvs/cvsweb.cgi/code/?sortby=log">code</a> / <a href="/cvs/cvsweb.cgi/code/nel/?sortby=log">nel</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/?sortby=log">src</a> / <a href="/cvs/cvsweb.cgi/code/nel/src/logic/?sortby=log">logic</a> / logic_variable.cpp</b></td><td align=right><b></b></td></TR></TABLE>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>logic_variable.cpp</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<p>Default branch: MAIN<BR>
+<HR size=1 NOSHADE><P><a NAME="rev1.2"></a><a NAME="HEAD"></a><a NAME="MAIN"></a>
+ Revision <A HREF="logic_variable.cpp?rev=1.2&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.2</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_variable.cpp?rev=1.2&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_variable.cpp?rev=1.2&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp?annotate=1.2&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp?r1=1.2&amp;sortby=log">[select for diffs]</A>
+, <i>Thu Jun 20 12:17:56 2002 UTC</i> (5 weeks, 3 days ago) by <i>lecroart</i>
+<BR>Branch: <b><A HREF="logic_variable.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>CVS Tags: <b><A HREF="logic_variable.cpp?sortby=log&amp;only_with_tag=HEAD">HEAD</A>
+</b><BR>Changes since <b>1.1: +52 -12
+ lines</b><BR>Diff to previous <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp.diff?r1=1.1&amp;r2=1.2&amp;sortby=log">1.1</A>
+<PRE>
+CHANGED: now load/save state machine in XML format
+</PRE>
+<HR size=1 NOSHADE><P><a NAME="rev1.1"></a><a NAME="georges_v2"></a>
+ Revision <A HREF="logic_variable.cpp?rev=1.1&amp;content-type=text/x-cvsweb-markup&amp;sortby=log"><b>1.1</b></A> / (<A HREF="/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_variable.cpp?rev=1.1&amp;content-type=text/plain&amp;sortby=log" target="cvs_checkout" onClick="window.open('/cvs/cvsweb.cgi/~checkout~/code/nel/src/logic/logic_variable.cpp?rev=1.1&amp;content-type=text/plain','cvs_checkout','resizeable,scrollbars');"><b>download</b></A>) - <a href="/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp?annotate=1.1&amp;sortby=log">annotate</a> - <A HREF="/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp?r1=1.1&amp;sortby=log">[select for diffs]</A>
+, <i>Thu Feb 14 12:58:03 2002 UTC</i> (5 months, 1 week ago) by <i>corvazier</i>
+<BR>Branch: <b><A HREF="logic_variable.cpp?sortby=log&amp;only_with_tag=MAIN">MAIN</A>
+</b>
+<BR>CVS Tags: <b><A HREF="logic_variable.cpp?sortby=log&amp;only_with_tag=georges_v2">georges_v2</A>
+</b><BR>Diff<PRE>
+ADDED: logic
+</PRE>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Request Diffs</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<P>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp.diff" NAME="diff_select">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+Diffs between
+<SELECT NAME="r1">
+<OPTION VALUE="text" SELECTED>Use Text Field
+<OPTION VALUE="1.1:georges_v2">georges_v2
+<OPTION VALUE="1:MAIN">MAIN
+<OPTION VALUE="1.2:HEAD">HEAD
+</SELECT>
+<INPUT TYPE="TEXT" SIZE="12" NAME="tr1" VALUE="1.1" onChange='document.diff_select.r1.selectedIndex=0'>
+ and
+<SELECT NAME="r2">
+<OPTION VALUE="text" SELECTED>Use Text Field
+<OPTION VALUE="1.1:georges_v2">georges_v2
+<OPTION VALUE="1:MAIN">MAIN
+<OPTION VALUE="1.2:HEAD">HEAD
+</SELECT>
+<INPUT TYPE="TEXT" SIZE="12" NAME="tr2" VALUE="1.2" onChange='docuement.diff_select.r2.selectedIndex=0'>
+<BR>Type of Diff should be a&nbsp;<SELECT NAME="f">
+<OPTION VALUE=h SELECTED>Colored Diff<OPTION VALUE=H>Long Colored Diff<OPTION VALUE=u>Unidiff<OPTION VALUE=c>Context Diff<OPTION VALUE=s>Side by Side</SELECT><INPUT TYPE=SUBMIT VALUE=" Get Diffs ">
+</FORM>
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Select branch</B></TD>
+ <TD ALIGN=RIGHT> </td>
+</tr></table>
+<P>
+<P>
+<A name=branch></A>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+View only Branch:
+<SELECT NAME="only_with_tag" onchange="submit()">
+<OPTION VALUE="">Show all branches
+<OPTION>MAIN
+</SELECT>
+<INPUT TYPE=SUBMIT VALUE=" View Branch ">
+</FORM>
+<A name=logsort></A>
+<FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nel/src/logic/logic_variable.cpp">
+<INPUT TYPE=HIDDEN NAME="sortby" VALUE="log">
+Sort log by:
+<SELECT NAME="logsort" onchange="submit()">
+<OPTION VALUE=cvs>Not sorted<OPTION VALUE=date SELECTED>Commit date<OPTION VALUE=rev>Revision</SELECT>
+<INPUT TYPE=SUBMIT VALUE=" Sort ">
+</FORM>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
+</TD>
+<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML></BODY></HTML>