summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/lzss.h2
-rw-r--r--lib/lzss.cpp5
2 files changed, 4 insertions, 3 deletions
diff --git a/includes/lzss.h b/includes/lzss.h
index 14aa345..8ba3fb5 100644
--- a/includes/lzss.h
+++ b/includes/lzss.h
@@ -59,7 +59,7 @@ class lzss : public Base {
int tolerate, blockb;
int blk, bitmap_count;
- unsigned int lzss_decomp(Handle * f_source, Handle * f_cible, int true_length = -1);
+ unsigned int lzss_decomp(Handle * f_source, Handle * f_cible, int true_length = -1, bool read_length = true);
void lzss_comp(Handle * f_source, Handle * f_cible, int * delta = NULL);
Byte swap_bits(Byte);
diff --git a/lib/lzss.cpp b/lib/lzss.cpp
index 1d7ecfb..7d86a32 100644
--- a/lib/lzss.cpp
+++ b/lib/lzss.cpp
@@ -105,7 +105,7 @@ void lzss::compute_limits(void) {
printm(M_INFO, "Computed values: maxsize = %i, maxptr = 0x%06x\n", lzss_maxsize, lzss_maxptr);
}
-unsigned int lzss::lzss_decomp(Handle * f_source, Handle * f_cible, int true_length)
+unsigned int lzss::lzss_decomp(Handle * f_source, Handle * f_cible, int true_length, bool read_length)
{
unsigned char bitmap, fbitmap;
unsigned char valeur;
@@ -125,7 +125,8 @@ unsigned int lzss::lzss_decomp(Handle * f_source, Handle * f_cible, int true_len
compute_limits();
- f_source->read(&length, 4);
+ if (read_length)
+ f_source->read(&length, 4);
if (true_length >= 0) {
length = true_length;
}