This file enumerates the standards that the files in this distribution try
to follow.

C Code Standard
---------------
1. Naming
  All functions and structures use camel-case names.  Acronyms keep their
  capital letters, with the next work starting with a lower-case letter.
  All names consists of a sequence of one or more words, always starting
  from the most general and proceeding to the most specific at the end.
1a. Functions
  Most functions are oriented around a specific data structure.  For those
  that are not we can consider that they deal with an abstract concept.
  Functions are named in one of two forms:
    TypeName_Function
    typeFunction
1b. Structures
  All structs are typedef'ed to themselves.
1c. Primitives
  All primitive types are typedef'ed to a single word name, e.g. "word".
1d. Enums
  Like structs, except their values are not camel case - they are all caps
  with underscores separating each word.  Enum value names have the enum
  type prepended.
2. Side-effects
  Global variables are not allowed. Static local variables are not allowed.
3. Memory allocation
  There are three levels of allocation: Local, Manual, and Automatic in
  increasing order of complexity.  The least complex required level should
  always be used. We try to factor memory allocation away from the use
  of allocated memory.  For instance, our generic byte array functions 
  come in three flavors:
	static:  do not allocate, re-size, or free memory, they only
                 operate on fixed size arrays.  suitable for arrays allocated
	         in any manner
        flexible: allow re-sizing, but only within the limit of a
	         pre-allocated amount. also suitable for arrays allocated
	         in any manner
	auto: has no side effects; results are always a new object. only
	         appropriate with garbage-collected allocation.
4. Projects
  All projects reside in a contained tree where each project knows the
  relative locations of its files and files in other projects which it
  depends on.
