diff options
Diffstat (limited to 'unpack')
| -rw-r--r-- | unpack/Makemodule.am | 1 | ||||
| -rw-r--r-- | unpack/rdsquashfs.c | 15 | 
2 files changed, 15 insertions, 1 deletions
| diff --git a/unpack/Makemodule.am b/unpack/Makemodule.am index b137787..16d7ce1 100644 --- a/unpack/Makemodule.am +++ b/unpack/Makemodule.am @@ -3,5 +3,6 @@ rdsquashfs_SOURCES += unpack/list_files.c unpack/options.c  rdsquashfs_SOURCES += unpack/restore_fstree.c unpack/describe.c  rdsquashfs_SOURCES += unpack/fill_files.c unpack/dump_xattrs.c  rdsquashfs_LDADD = libcommon.a libcompat.a libsquashfs.la libutil.la +rdsquashfs_LDADD += $(LZO_LIBS)  bin_PROGRAMS += rdsquashfs diff --git a/unpack/rdsquashfs.c b/unpack/rdsquashfs.c index 4acc71e..3cce318 100644 --- a/unpack/rdsquashfs.c +++ b/unpack/rdsquashfs.c @@ -35,7 +35,14 @@ int main(int argc, char **argv)  		goto out_file;  	} -	if (!sqfs_compressor_exists(super.compression_id)) { +	ret = sqfs_compressor_exists(super.compression_id); + +#ifdef WITH_LZO +	if (super.compression_id == SQFS_COMP_LZO) +		ret = true; +#endif + +	if (!ret) {  		fprintf(stderr, "%s: unknown compressor used.\n",  			opt.image_name);  		goto out_file; @@ -46,6 +53,12 @@ int main(int argc, char **argv)  				    SQFS_COMP_FLAG_UNCOMPRESS);  	cmp = sqfs_compressor_create(&cfg); + +#ifdef WITH_LZO +	if (super.compression_id == SQFS_COMP_LZO && cmp == NULL) +		cmp = lzo_compressor_create(&cfg); +#endif +  	if (cmp == NULL) {  		fputs("Error creating compressor.\n", stderr);  		goto out_file; | 
