Thanks go to the following people, in no particular order:

Tim [tmo], whose ideas prompted the creation of this program's predecessor
(shnlen), and whose diligent testing helped iron out the bugs in that program.

Herschel Gelman, who had the great suggestion that shnlen could check to see
whether the .wav files inside the .shn's were properly cut on sector boundaries.
He also suggested that join mode could write to stdout, so that large amounts of
data could be piped into an external program, such as an mp3 encoder.

Caleb Epstein, for sending patches and helping to debug shntool, as well as
providing documentation and binary packages.  Also, for reporting the fix mode
hang, as well as providing a set of files that helped me reproduce it.
Additionally, for suggesting that info mode could tell whether .shn files were
seekable.

Jeff Kempka, for helping me obtain unruly files to aid in figuring out a rare
bug in the 0.9x series, as well as usability suggestions.

Bill Bumgarner, for suggesting that shntool move to GNU autoconf.  I learned a
lot in the process.  :^)

Paul Mather, for reporting bugs and compilation problems on platforms on which I
currently have no access, as well as testing and verifying their respective
fixes.  Also, for reporting the m:ss.ff rounding bug, as well as providing a
detailed analysis of the problem which expedited its fix.

Mike Kelleher, for contributing toward the design of split mode, as well as
helping to test it.

Mike Vernal, for providing the impetus (and nearly the code) to support AIFF, as
well as testing it.

Scott Brown, for putting the AIFF support through the wringer, helping to iron
out the kinks.  Also, for informing me that sox 12.17.4 now supports sowt-
compressed AIFF-C files.

jelly, for suggesting that join mode be able to join non-CD quality files.

Michael Dougherty, for reporting a bug where shntool would inadvertently include
extra RIFF chunks when calculating audio MD5 fingerprints.

Christian Weisgerber, who provided a Makefile patch.

Boogie Shafer, who was the first to suggest that shntool should support CUE
sheets.  Also, for the idea that split mode could split a file based on multiples
of a given time interval.  Finally, for enduring and reporting a seriously nasty
data-destroying bug in conv mode.  :-/

John Cook, who was the first of several to ask for the ability to prepad files.
Also, for suggesting that shntool generate split points from an existing set of
files, and for suggesting that info mode show the sector-misalignment of
CD-quality files.

David Loehr, who was the first to report a set of files that could not be read
by shntool, which turned out to be caused by the existence of ID3v2 tags.
These tags are now skipped by shntool, leaving it up to external decoder
programs to handle them.

deep_elem, who reported a situation in which split mode would round extremely
small split points (0:00.001 - 0:00.020) to 0, causing shntool to error out.

Tim Ebben, whose keen eye noticed that the m:ss.ff value on the totals line was
reporting an incorrect value.

-------

Thanks also goes to the developers of the following software, from which I have
taken both ideas and code for shntool:

xmms - shntool's WAVE header parsing algorithm was based off of the one in xmms's
       WAVE input plugin

proftpd - shntool's method for gluing modules together was adapted from the way
          proftpd handles it

sox - the WAVE_FORMAT_* defines and format_to_str() function were taken from the
      sox distribution

coreutils - the MD5 algorithm was lifted from the GNU coreutils distribution

v2strip - shntool's ID3v2 detection was based off of the v2strip implementation
