read_fs.c: fix missing space in ERROR message

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
compressor: Update comment referring to XZ implementation

Update the comment which states that the XZ compressor is the only
compressors that uses the compression options framework.  This
is no longer the case.

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
lzo_wrapper.c: fix missing space in ERROR message

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
lzo_wrapper.c: fix missing tab in compression options display

Unsquashfs -stat dumps the algorithm selected using the
compression options display function.  If the compression
algorithm was not lzo1x_999, then the algorithm line was
incorrectly displayed without a leading tab.

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
lzo_wrapper.c: improve -Xlzo_algo error messages

The lzo algorithms are quite easy to misspell, so when the
alogorthm is unrecognised, or is missing, display the list of
algorithms accepted.

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
lzo_wrapper.c: improve -Xcompression_level error message

If the compression level is missing then display the compression
levels accepted.

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
lzo_wrapper.c: fix URL

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
compressor: don't overload extract_options

When I added LZ4 support, I realised that Unsquashfs should
check the compression options (if any) to ensure that the decompressor
can decompress the filesystem.

This situation never occurred before because gzip and lzo doesn't
have any options, and I envisaged that xz will always implicitly be able
to *decompress* any filesystem irrespective of any hitherto unimplemented
compression features.  In otherwords I anticipated we should check the
options in mksquashfs (on append), but not on decompression with
unsquashfs.

LZ4 changed that because the kernel is currently using the LZ4
legacy format, and this may change, creating a situation where in
the future there may be a new format, which is *not* currently understood.
Therefore Unsquashfs needs to check the options too.

I initially used extract_options(), but this has thrown up subtle
differences in the handling of compression options between unsquashfs
and mksquashfs.  Specificallyx, in the handling of the presence of
compression options where the compressor hasn't got an extract_options
function.  This is clear indication that the filesystem is newer than
the code because it has compression options whereas the code hasn't
any support for them.

Now in mksquashfs where it is appending to the filesystem, this is a
definate fail because we obviously cannot extract the options and
set the compressor to the appropriate state.  But, this should not
be a fail for Unsquashfs, because in retro-fitting compression
options to a compressor which didn't originally have them (i.e. LZO),
we have to ensure that the new compression options are implicitly
decompressible by the original code, because the original code
doesn't check them.

So for instance with LZO, we cannot allow an old Mksquashfs to append
to an LZO filesystem compressed with the new compression options, but,
it is perfectly possible for an old version of Unsquashfs to decompress
this filesystem.

So don't overload extract_options, and instead introduce a new
check_options specifically for Unsquashfs, and specifically only
for the decompressors (LZ4) which need to check them.

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>