diff options
Diffstat (limited to 'difftool')
-rw-r--r-- | difftool/Makemodule.am | 2 | ||||
-rw-r--r-- | difftool/sqfsdiff.c | 15 |
2 files changed, 15 insertions, 2 deletions
diff --git a/difftool/Makemodule.am b/difftool/Makemodule.am index e43f35d..e827a8b 100644 --- a/difftool/Makemodule.am +++ b/difftool/Makemodule.am @@ -2,6 +2,6 @@ sqfsdiff_SOURCES = difftool/sqfsdiff.c difftool/sqfsdiff.h difftool/util.c sqfsdiff_SOURCES += difftool/compare_dir.c difftool/node_compare.c sqfsdiff_SOURCES += difftool/compare_files.c difftool/super.c sqfsdiff_SOURCES += difftool/extract.c difftool/options.c -sqfsdiff_LDADD = libcommon.a libsquashfs.la libutil.la +sqfsdiff_LDADD = libcommon.a libsquashfs.la libutil.la $(LZO_LIBS) bin_PROGRAMS += sqfsdiff diff --git a/difftool/sqfsdiff.c b/difftool/sqfsdiff.c index 7479938..1c80812 100644 --- a/difftool/sqfsdiff.c +++ b/difftool/sqfsdiff.c @@ -22,7 +22,14 @@ static int open_sfqs(sqfs_state_t *state, const char *path) goto fail_file; } - if (!sqfs_compressor_exists(state->super.compression_id)) { + ret = sqfs_compressor_exists(state->super.compression_id); + +#ifdef WITH_LZO + if (state->super.compression_id == SQFS_COMP_LZO) + ret = true; +#endif + + if (!ret) { fprintf(stderr, "%s: unknown compressor used.\n", path); goto fail_file; @@ -33,6 +40,12 @@ static int open_sfqs(sqfs_state_t *state, const char *path) SQFS_COMP_FLAG_UNCOMPRESS); state->cmp = sqfs_compressor_create(&state->cfg); + +#ifdef WITH_LZO + if (state->super.compression_id == SQFS_COMP_LZO && state->cmp == NULL) + state->cmp = lzo_compressor_create(&state->cfg); +#endif + if (state->cmp == NULL) { fprintf(stderr, "%s: error creating compressor.\n", path); goto fail_file; |