RageIRCd v2.0 (bluemoon): Source Code Standards
-----------------------------------------------

$Id: code-standards.txt,v 1.4.2.1 2005/02/21 02:32:45 amcwilliam Exp $
(C) 2000-2005 the RageIRCd Development Team, all rights reserved.

RageIRCd v2.0 has been written with a number of source code standards in 
mind, in order to maintain integrity and readability. The main points are:

1. No C++ style comments are allowed. This is to maintain compiler 
   compatibility across multiple platforms.

2. All pre-processor directives shall be at character position 0, with no 
   whitespace between the # and the actual directive.

3. All indentations are a single tab character. Indenting should be 
   limited to a maximum of three tabs where possible.

4. Statements that must be spread across multiple lines are to be intended 
   by two spaces from the second line onwards. The beginning of multiple 
   statement lines should also be a binary operator, where appropriate.

5. Zero-int statements should be done with the ! unary operator (e.g., !i).
   NULL-struct statements should be done like (struct == NULL).

6. All function names should be descriptive, and should be lower case. 
   For easier understanding, they should be split up with underscore 
   characters (e.g., "some_function"). Main IRC command functions should 
   be prefixed with "m_".

7. All variables should be descriptive. The exception to this is loop 
   counters and indexes, which should be short. (For example: i, j, k, 
   cnt, idx, etc.)

8. All conditional/loop statements must have the open-brace on the same 
   line. All close-braces should be on a line on their own.

9. For simplicity, statements containing a single line of code MUST still 

10.Version and credits must NOT be touched.

11.Protocol changes will not be made between revisions, only between 
   "series". For example, 1.4-1.5, or pandora-to-bluemoon.

12.The character width of server documentation should be limited to a 
   maximum of 80 characters. This excludes the Changes file.

13.All files should include a CVS Id tag.

End of document.
