TITLE="Documentation Guidelines"
HREF="documentation.html"><LINK
REL="NEXT"
-TITLE="Version Control Guidelines"
-HREF="cvs.html"><LINK
+TITLE="Testing Guidelines"
+HREF="testing.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="../p_doc.css"></HEAD
ALIGN="right"
VALIGN="bottom"
><A
-HREF="cvs.html"
+HREF="testing.html"
>Next</A
></TD
></TR
CLASS="SECT1"
><A
NAME="CODING"
->5. Coding Guidelines</A
+>6. Coding Guidelines</A
></H1
><DIV
CLASS="SECT2"
CLASS="SECT2"
><A
NAME="S1"
->5.1. Introduction</A
+>6.1. Introduction</A
></H2
><P
>This set of standards is designed to make our lives easier. It is
CLASS="SECT2"
><A
NAME="S2"
->5.2. Using Comments</A
+>6.2. Using Comments</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S3"
->5.2.1. Comment, Comment, Comment</A
+>6.2.1. Comment, Comment, Comment</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S4"
->5.2.2. Use blocks for comments</A
+>6.2.2. Use blocks for comments</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S5"
->5.2.3. Keep Comments on their own line</A
+>6.2.3. Keep Comments on their own line</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S6"
->5.2.4. Comment each logical step</A
+>6.2.4. Comment each logical step</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S7"
->5.2.5. Comment All Functions Thoroughly</A
+>6.2.5. Comment All Functions Thoroughly</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S8"
->5.2.6. Comment at the end of braces if the
+>6.2.6. Comment at the end of braces if the
content is more than one screen length</A
></H3
><P
CLASS="SECT2"
><A
NAME="S9"
->5.3. Naming Conventions</A
+>6.3. Naming Conventions</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S10"
->5.3.1. Variable Names</A
+>6.3.1. Variable Names</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S11"
->5.3.2. Function Names</A
+>6.3.2. Function Names</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S12"
->5.3.3. Header file prototypes</A
+>6.3.3. Header file prototypes</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S13"
->5.3.4. Enumerations, and #defines</A
+>6.3.4. Enumerations, and #defines</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S14"
->5.3.5. Constants</A
+>6.3.5. Constants</A
></H3
><P
><I
CLASS="SECT2"
><A
NAME="S15"
->5.4. Using Space</A
+>6.4. Using Space</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S16"
->5.4.1. Put braces on a line by themselves.</A
+>6.4.1. Put braces on a line by themselves.</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S17"
->5.4.2. ALL control statements should have a
+>6.4.2. ALL control statements should have a
block</A
></H3
><P
CLASS="SECT3"
><A
NAME="S18"
->5.4.3. Do not belabor/blow-up boolean
+>6.4.3. Do not belabor/blow-up boolean
expressions</A
></H3
><P
CLASS="SECT3"
><A
NAME="S19"
->5.4.4. Use white space freely because it is
+>6.4.4. Use white space freely because it is
free</A
></H3
><P
CLASS="SECT3"
><A
NAME="S20"
->5.4.5. Don't use white space around structure
+>6.4.5. Don't use white space around structure
operators</A
></H3
><P
CLASS="SECT3"
><A
NAME="S21"
->5.4.6. Make the last brace of a function stand
+>6.4.6. Make the last brace of a function stand
out</A
></H3
><P
CLASS="SECT3"
><A
NAME="S22"
->5.4.7. Use 3 character indentions</A
+>6.4.7. Use 3 character indentions</A
></H3
><P
><I
CLASS="SECT2"
><A
NAME="S23"
->5.5. Initializing</A
+>6.5. Initializing</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S24"
->5.5.1. Initialize all variables</A
+>6.5.1. Initialize all variables</A
></H3
><P
><I
CLASS="SECT2"
><A
NAME="S25"
->5.6. Functions</A
+>6.6. Functions</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S26"
->5.6.1. Name functions that return a boolean as a
+>6.6.1. Name functions that return a boolean as a
question.</A
></H3
><P
CLASS="SECT3"
><A
NAME="S27"
->5.6.2. Always specify a return type for a
+>6.6.2. Always specify a return type for a
function.</A
></H3
><P
CLASS="SECT3"
><A
NAME="S28"
->5.6.3. Minimize function calls when iterating by
+>6.6.3. Minimize function calls when iterating by
using variables</A
></H3
><P
CLASS="SECT3"
><A
NAME="S29"
->5.6.4. Pass and Return by Const Reference</A
+>6.6.4. Pass and Return by Const Reference</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S30"
->5.6.5. Pass and Return by Value</A
+>6.6.5. Pass and Return by Value</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S31"
->5.6.6. Names of include files</A
+>6.6.6. Names of include files</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S32"
->5.6.7. Provide multiple inclusion
+>6.6.7. Provide multiple inclusion
protection</A
></H3
><P
CLASS="SECT3"
><A
NAME="S33"
->5.6.8. Use `extern "C"` when appropriate</A
+>6.6.8. Use `extern "C"` when appropriate</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S34"
->5.6.9. Where Possible, Use Forward Struct
+>6.6.9. Where Possible, Use Forward Struct
Declaration Instead of Includes</A
></H3
><P
CLASS="SECT2"
><A
NAME="S35"
->5.7. General Coding Practices</A
+>6.7. General Coding Practices</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S36"
->5.7.1. Turn on warnings</A
+>6.7.1. Turn on warnings</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S37"
->5.7.2. Provide a default case for all switch
+>6.7.2. Provide a default case for all switch
statements</A
></H3
><P
CLASS="SECT3"
><A
NAME="S38"
->5.7.3. Try to avoid falling through cases in a
+>6.7.3. Try to avoid falling through cases in a
switch statement.</A
></H3
><P
CLASS="SECT3"
><A
NAME="S39"
->5.7.4. Use 'long' or 'short' Instead of
+>6.7.4. Use 'long' or 'short' Instead of
'int'</A
></H3
><P
CLASS="SECT3"
><A
NAME="S40"
->5.7.5. Don't mix size_t and other types</A
+>6.7.5. Don't mix size_t and other types</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S41"
->5.7.6. Declare each variable and struct on its
+>6.7.6. Declare each variable and struct on its
own line.</A
></H3
><P
CLASS="SECT3"
><A
NAME="S42"
->5.7.7. Use malloc/zalloc sparingly</A
+>6.7.7. Use malloc/zalloc sparingly</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S43"
->5.7.8. The Programmer Who Uses 'malloc' is
+>6.7.8. The Programmer Who Uses 'malloc' is
Responsible for Ensuring 'free'</A
></H3
><P
CLASS="SECT3"
><A
NAME="S44"
->5.7.9. Add loaders to the `file_list' structure
+>6.7.9. Add loaders to the `file_list' structure
and in order</A
></H3
><P
CLASS="SECT3"
><A
NAME="S45"
->5.7.10. "Uncertain" new code and/or changes to
+>6.7.10. "Uncertain" new code and/or changes to
existing code, use FIXME</A
></H3
><P
CLASS="SECT2"
><A
NAME="S46"
->5.8. Addendum: Template for files and function
+>6.8. Addendum: Template for files and function
comment blocks:</A
></H2
><P
><TD
><PRE
CLASS="PROGRAMLISTING"
->const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.33 2002/04/12 03:49:53 hal9 Exp $";
+>const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.35 2002/04/17 15:16:15 oes Exp $";
/*********************************************************************
*
* File : $Source$
CLASS="PROGRAMLISTING"
>#ifndef _FILENAME_H
#define _FILENAME_H
-#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.33 2002/04/12 03:49:53 hal9 Exp $"
+#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.35 2002/04/17 15:16:15 oes Exp $"
/*********************************************************************
*
* File : $Source$
ALIGN="right"
VALIGN="top"
><A
-HREF="cvs.html"
+HREF="testing.html"
>Next</A
></TD
></TR
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->Version Control Guidelines</TD
+>Testing Guidelines</TD
></TR
></TABLE
></DIV