HACKING - ESP Ghostscript Coding Rules
--------------------------------------

This file describes the basic coding rules for all contributions
to ESP Ghostscript.  These rules MUST be followed to ensure that
ESP Ghostscript can be compiled and used on as many platforms as
possible.

1. All C source files and headers MUST only use features from ANSI C.
   You may not use features specific to GCC or C99, including:

   a. C++ COMMENTS FORBIDDEN; you may not use the C++/C99 comment
      prefix "//".  Instead, use "/* your comment */".

   b. MIXING DECLARATIONS AND CODE; you may not define a variable in
      the middle of a code block, for example:

          int i;
          i = 0;
          int j;
          j = 0;

      is not valid ANSI C code while:

          int i = 0;
          int j = 0;

      and:

          int i;
          int j;
          i = 0;
          j = 0;

      *are* valid ANSI C.

   c. VARIABLE DECLARATIONS IN FOR LOOPS; variable declarations in "for"
      loops are not allowed in ANSI C, for example:

          for (int i = 0; i < 10; i ++)

      is not valid ANSI C.

   d. INLINE IS NOT A SUPPORTED KEYWORD; the "inline" keyword is not
      part of ANSI C, but is a GCC and C99 extension.

2. Operating-system-specific code must be #ifdef'd, either using
   the corresponding system define(s) or via autoconf tests.

3. All code/modules/drivers must be provided under the GPL, LGPL, or
   GNU-compatible license.
