Provide ISO 28500:2009 writer (aka warc, aka web archive)
Provide ISO 28500:2009 reader (aka warc, aka web archive)
Implant WARC support in tar's get_format_code()
Provide WARC read/write tests
fix, never write more bytes in _warc_data() than ...

previously announce in _warc_header().

The test suite (as is) is one offender.  It populates a 9-byte string, mimicking an IFREG file
but by the time the header makes it into the archive, the size changes from 0 to 9.
fix, request just the bare minimum for a WARC header

Moreover, assume a response of less than the bare minimum header
length to be the archive's EOF.
fix, WARC files urgently need the filesize to be known when the header is written
Obey gcc warnings,

in particular: Don't compare integers of different signedness,
always initialise all members of a struct explicitly.
Fix, actually consume data between calls to _warc_read()
Store and read back mtimes through Last-Modified custom header

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
Hygiene, clean up xmemmem() code a little, use xor sums.

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
Issue #359:  Rar drops file if previous filename is a prefix
Fix compilation on newer HP-UX versions

Newer HP-UX versions (e.g. 11.31) also offers F_SETTIMES, but with a
different struct for the timing information.

Suggested-by: Eric Berge <ericmberge@gmail.com>
Fix compilation on Tru64 with F_SETTIMES

The parent commit left a typo in the conditional code path for Tru64.
Add the missing '.'.
Tests, heed Tim's advice and emit ARCHIVE_FAILED for entries ...

that cannot be stored (natively) in WARC format.
Fix, an empty WARC archive needs a bit more than 256 bytes.
Hygiene, protect against NULL filenames in _warc_header()

Return ARCHIVE_WARN immediately.
Hygiene, trust __archive_read_ahead() and kick superfluous check.

Heeding Tim's advice, a non-NULL from __archive_read_ahead() is
guaranteed to be of at least the minimum size, therefore no need to
check for this condition again.
Hygiene, use FALLTHROUGH instead of lint's @fallthrough@
Hygiene, always use xmemmem() because memmem() is a GNU extension