Various different integer types are used throughout MuPDF.

In general:

  * int is assumed to be 32bit at least.

  * short is assumed to be exactly 16 bits.

  * char is assumed to be exactly 8 bits.

  * array sizes, string lengths, and allocations
    are measured using size_t. size_t is 32bit in 32bit builds,
    and 64bit on all 64bit builds.

  * buffers of data use unsigned chars (or uint8_t's).

  * Offsets within files/streams are represented using fz_off_t's.
    fz_off_t's are 64bits in 64bit builds, or in 32bit builds with
    FZ_LARGEFILE defined. Otherwise they are a native int (so 32bit
    in 32bit builds).

In addition, we use floats and doubles, assumed to be IEEE compliant.
