This program is a filter which takes C source code and replaces
      occurrences of the type specifier `int' by the identifier
      `INT_BIG'.  This identifier can then be assigned a preprocessor
      value of a suitable integral type (int or long) either using an
      include file or with a -DINT_BIG=(type) flag on the C compiler
      command line.
It's not quite as simple as replacing every semantically significant
      occurrence of the `int' identifier; `short int' and `long int' type
      specifiers will be left alone.
If a use of int appears to be declaring a symbol called `main' or
      `argc', then this will be left alone too, and a warning written
      to standard error to the effect that it is not being changed.
Additionally, references to the <limits.h> macros INT_MAX, INT_MIN
      and UINT_MAX are replaced by INT_BIG_MAX, INT_BIG_MIN and
      UINT_BIG_MAX respectively.  If any of these substitutions are
      made, then a line `#include "extreme.h"' is added after the
      `#include <limits.h>' line which is presumably in the file.
      If <limits.h> is not included in the input file, a warning is
      written to standard error.
Explicit declarations which are implicitly of type int will have
      an INT_BIG token inserted - for instance `static x, y;' will be
      changed to `static INT_BIG x, y;'.
The program will write a warning on standard error for certain
      constructions in the code which are likely to cause trouble after
      the mass redeclaration of int as INT_BIG has occurred, since in
      some places the type int, and not INT_BIG, is still required.
      These constructions are:
- Inclusion of system header files other than those of the C
              standard library, since these may indicate use of functions
              other than those warned about above with arguments of type
              pointer to int.
 
- Use of functions from the C standard library which may require
              changes.
 
The functions from the C standard library which may require changes
      are the following:
- Format strings in formatted I/O which may need changes
              because they use variable argument lists or require
              arguments of type pointer to int.
 
- The frexp() math function whose second argument must be
              a pointer to int
 
- The signal() function whose second argument is a function
              which must take an int argument
 
- The bsearch() and qsort() functions which take a comparison
              function as argument, and this function must be of type int
 
In the case of potentially dangerous format strings, for
      convenience a comment is inserted in the output code on the line
      before the function call is made.  The comment will contain the
      character string `crepint: '.  The warning to standard error
      notes that the comment line has been inserted.
The following constructions are also likely to cause trouble, but
      will not be warned about by the program:
- Use of functions without prototypes.  If header files are
              omitted or old style function declarations are used then the
              ANSI C machinery for doing type conversion at function call
              time will not work.  Gcc's `-Wstrict-prototypes' and
              `-Wimplicit-function-declaration' flags are useful for this.
 
- Implicit declarations, which are implicitly of type int.
              If a name is declared simply by mentioning it without any type
              or type qualifiers, it is implicitly of type int, and so
              should become delcared as INT_BIG.  This program does not
              find these.  Such implicit declarations (only?) occur in
              function declarations.  The Tru64 Unix C compiler's `-protois'
              flag or gcc's `-Wimplicit-int' flag are useful for identifying
              these.
 
The program tries to adjust padding whitespace outside comments
      so that the spacing of the output looks OK.
No changes are made to comment lines so that, for instance, the
      Synopsis stanza of function prologues will not have formal argument
      types changed from `int' to `INT_BIG'.
Source code which makes sufficiently inventive use of the C
      will stand a good chance of confusing this program.