Fixed a bug introduced in 1.7.9.5 where --show would omit the first hex digit
of LM hashes.  Thanks to magnum for reporting this and providing the patch.
1.7.9.7:
Fixed a bug introduced in 1.7.9.5 where --show would omit the first hex digit
of LM hashes.  Thanks to magnum for reporting this and providing the patch.
(The actual fix to loader.c was committed separately, on 2012/08/23.)
Self-test each format just once (rather than before the start of each cracking
mode) unless we're debugging.
Added support for format destructors (the done() method), which is important
e.g. when running --test across many GPU-using formats, not to run out of GPU
memory after testing only a subset of the formats.
Added reset(), a format method called whenever the set of password hashes being
cracked changes, such as after self-test, but before actual cracking starts.
Normally, this is a no-op since a format implementation shouldn't mess with the
database unnecessarily.  However, when there is a good reason to do so this may
e.g. transfer the salts and hashes onto a GPU card.
Revised the crypt_all() format method prototype and semantics such that it may
optionally perform preliminary checking for possible matches.
Revised the crypt_all() format method prototype and semantics, as well as the
semantics of get_key() and some other format methods called after crypt_all(),
such that crypt_all() may alter and/or generate candidate passwords on its own,
including beyond its originally supplied candidate password count.
Handle possible NULL returns from crypt() and crypt_r()
1.7.9.8:
- The formats interface has been enhanced to better support GPU implementations
(in jumbo), as well as fast hashes on multi-CPU systems (not yet made use of).
- Handle possible NULL returns from crypt() and crypt_r().
Fixed OpenMP-specific issues with the previous change: make stderr available in
the parallel region, wrap the warning printing in "#pragma omp critical".
Revised incremental mode such that the counts of character indices grow
independently for each position.  This change breaks compatibility with older
.chr files.
Dropped the remnants of old .chr file compatibility code
Source code indentation: consistently put the blocks after "if" on a new line