|
@@ -8,10 +8,10 @@
|
|
This file is part of bzip2/libbzip2, a program and library for
|
|
This file is part of bzip2/libbzip2, a program and library for
|
|
lossless, block-sorting data compression.
|
|
lossless, block-sorting data compression.
|
|
|
|
|
|
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
|
|
|
|
|
|
+ bzip2/libbzip2 version 1.1.0 of 6 September 2010
|
|
Copyright (C) 1996-2010 Julian Seward <[email protected]>
|
|
Copyright (C) 1996-2010 Julian Seward <[email protected]>
|
|
|
|
|
|
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
|
|
|
|
|
|
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
|
|
README file.
|
|
README file.
|
|
|
|
|
|
This program is released under the terms of the license contained
|
|
This program is released under the terms of the license contained
|
|
@@ -41,15 +41,16 @@
|
|
#ifndef BZ_NO_STDIO
|
|
#ifndef BZ_NO_STDIO
|
|
void BZ2_bz__AssertH__fail ( int errcode )
|
|
void BZ2_bz__AssertH__fail ( int errcode )
|
|
{
|
|
{
|
|
- fprintf(stderr,
|
|
|
|
|
|
+ fprintf(stderr,
|
|
"\n\nbzip2/libbzip2: internal error number %d.\n"
|
|
"\n\nbzip2/libbzip2: internal error number %d.\n"
|
|
"This is a bug in bzip2/libbzip2, %s.\n"
|
|
"This is a bug in bzip2/libbzip2, %s.\n"
|
|
- "Please report it to me at: [email protected]. If this happened\n"
|
|
|
|
- "when you were using some program which uses libbzip2 as a\n"
|
|
|
|
- "component, you should also report this bug to the author(s)\n"
|
|
|
|
- "of that program. Please make an effort to report this bug;\n"
|
|
|
|
|
|
+ "Please report it at: https://gitlab.com/bzip2/bzip2/-/issues\n"
|
|
|
|
+ "If this happened when you were using some program which uses\n"
|
|
|
|
+ "libbzip2 as a component, you should also report this bug to\n"
|
|
|
|
+ "the author(s) of that program.\n"
|
|
|
|
+ "Please make an effort to report this bug;\n"
|
|
"timely and accurate bug reports eventually lead to higher\n"
|
|
"timely and accurate bug reports eventually lead to higher\n"
|
|
- "quality software. Thanks. Julian Seward, 10 December 2007.\n\n",
|
|
|
|
|
|
+ "quality software. Thanks.\n\n",
|
|
errcode,
|
|
errcode,
|
|
BZ2_bzlibVersion()
|
|
BZ2_bzlibVersion()
|
|
);
|
|
);
|
|
@@ -146,8 +147,8 @@ Bool isempty_RL ( EState* s )
|
|
|
|
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
-int BZ_API(BZ2_bzCompressInit)
|
|
|
|
- ( bz_stream* strm,
|
|
|
|
|
|
+int BZ_API(BZ2_bzCompressInit)
|
|
|
|
+ ( bz_stream* strm,
|
|
int blockSize100k,
|
|
int blockSize100k,
|
|
int verbosity,
|
|
int verbosity,
|
|
int workFactor )
|
|
int workFactor )
|
|
@@ -157,7 +158,7 @@ int BZ_API(BZ2_bzCompressInit)
|
|
|
|
|
|
if (!bz_config_ok()) return BZ_CONFIG_ERROR;
|
|
if (!bz_config_ok()) return BZ_CONFIG_ERROR;
|
|
|
|
|
|
- if (strm == NULL ||
|
|
|
|
|
|
+ if (strm == NULL ||
|
|
blockSize100k < 1 || blockSize100k > 9 ||
|
|
blockSize100k < 1 || blockSize100k > 9 ||
|
|
workFactor < 0 || workFactor > 250)
|
|
workFactor < 0 || workFactor > 250)
|
|
return BZ_PARAM_ERROR;
|
|
return BZ_PARAM_ERROR;
|
|
@@ -300,7 +301,7 @@ Bool copy_input_until_stop ( EState* s )
|
|
/*-- no input? --*/
|
|
/*-- no input? --*/
|
|
if (s->strm->avail_in == 0) break;
|
|
if (s->strm->avail_in == 0) break;
|
|
progress_in = True;
|
|
progress_in = True;
|
|
- ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
|
|
|
|
|
|
+ ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
|
|
s->strm->next_in++;
|
|
s->strm->next_in++;
|
|
s->strm->avail_in--;
|
|
s->strm->avail_in--;
|
|
s->strm->total_in_lo32++;
|
|
s->strm->total_in_lo32++;
|
|
@@ -318,7 +319,7 @@ Bool copy_input_until_stop ( EState* s )
|
|
/*-- flush/finish end? --*/
|
|
/*-- flush/finish end? --*/
|
|
if (s->avail_in_expect == 0) break;
|
|
if (s->avail_in_expect == 0) break;
|
|
progress_in = True;
|
|
progress_in = True;
|
|
- ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
|
|
|
|
|
|
+ ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
|
|
s->strm->next_in++;
|
|
s->strm->next_in++;
|
|
s->strm->avail_in--;
|
|
s->strm->avail_in--;
|
|
s->strm->total_in_lo32++;
|
|
s->strm->total_in_lo32++;
|
|
@@ -364,18 +365,18 @@ Bool handle_compress ( bz_stream* strm )
|
|
Bool progress_in = False;
|
|
Bool progress_in = False;
|
|
Bool progress_out = False;
|
|
Bool progress_out = False;
|
|
EState* s = strm->state;
|
|
EState* s = strm->state;
|
|
-
|
|
|
|
|
|
+
|
|
while (True) {
|
|
while (True) {
|
|
|
|
|
|
if (s->state == BZ_S_OUTPUT) {
|
|
if (s->state == BZ_S_OUTPUT) {
|
|
progress_out |= copy_output_until_stop ( s );
|
|
progress_out |= copy_output_until_stop ( s );
|
|
if (s->state_out_pos < s->numZ) break;
|
|
if (s->state_out_pos < s->numZ) break;
|
|
- if (s->mode == BZ_M_FINISHING &&
|
|
|
|
|
|
+ if (s->mode == BZ_M_FINISHING &&
|
|
s->avail_in_expect == 0 &&
|
|
s->avail_in_expect == 0 &&
|
|
isempty_RL(s)) break;
|
|
isempty_RL(s)) break;
|
|
prepare_new_block ( s );
|
|
prepare_new_block ( s );
|
|
s->state = BZ_S_INPUT;
|
|
s->state = BZ_S_INPUT;
|
|
- if (s->mode == BZ_M_FLUSHING &&
|
|
|
|
|
|
+ if (s->mode == BZ_M_FLUSHING &&
|
|
s->avail_in_expect == 0 &&
|
|
s->avail_in_expect == 0 &&
|
|
isempty_RL(s)) break;
|
|
isempty_RL(s)) break;
|
|
}
|
|
}
|
|
@@ -424,9 +425,9 @@ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
|
|
if (action == BZ_RUN) {
|
|
if (action == BZ_RUN) {
|
|
progress = handle_compress ( strm );
|
|
progress = handle_compress ( strm );
|
|
return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
|
|
return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
|
|
- }
|
|
|
|
|
|
+ }
|
|
else
|
|
else
|
|
- if (action == BZ_FLUSH) {
|
|
|
|
|
|
+ if (action == BZ_FLUSH) {
|
|
s->avail_in_expect = strm->avail_in;
|
|
s->avail_in_expect = strm->avail_in;
|
|
s->mode = BZ_M_FLUSHING;
|
|
s->mode = BZ_M_FLUSHING;
|
|
goto preswitch;
|
|
goto preswitch;
|
|
@@ -437,12 +438,12 @@ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
|
|
s->mode = BZ_M_FINISHING;
|
|
s->mode = BZ_M_FINISHING;
|
|
goto preswitch;
|
|
goto preswitch;
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+ else
|
|
return BZ_PARAM_ERROR;
|
|
return BZ_PARAM_ERROR;
|
|
|
|
|
|
case BZ_M_FLUSHING:
|
|
case BZ_M_FLUSHING:
|
|
if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR;
|
|
if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR;
|
|
- if (s->avail_in_expect != s->strm->avail_in)
|
|
|
|
|
|
+ if (s->avail_in_expect != s->strm->avail_in)
|
|
return BZ_SEQUENCE_ERROR;
|
|
return BZ_SEQUENCE_ERROR;
|
|
progress = handle_compress ( strm );
|
|
progress = handle_compress ( strm );
|
|
if (s->avail_in_expect > 0 || !isempty_RL(s) ||
|
|
if (s->avail_in_expect > 0 || !isempty_RL(s) ||
|
|
@@ -452,7 +453,7 @@ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
|
|
|
|
|
|
case BZ_M_FINISHING:
|
|
case BZ_M_FINISHING:
|
|
if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR;
|
|
if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR;
|
|
- if (s->avail_in_expect != s->strm->avail_in)
|
|
|
|
|
|
+ if (s->avail_in_expect != s->strm->avail_in)
|
|
return BZ_SEQUENCE_ERROR;
|
|
return BZ_SEQUENCE_ERROR;
|
|
progress = handle_compress ( strm );
|
|
progress = handle_compress ( strm );
|
|
if (!progress) return BZ_SEQUENCE_ERROR;
|
|
if (!progress) return BZ_SEQUENCE_ERROR;
|
|
@@ -479,7 +480,7 @@ int BZ_API(BZ2_bzCompressEnd) ( bz_stream *strm )
|
|
if (s->ftab != NULL) BZFREE(s->ftab);
|
|
if (s->ftab != NULL) BZFREE(s->ftab);
|
|
BZFREE(strm->state);
|
|
BZFREE(strm->state);
|
|
|
|
|
|
- strm->state = NULL;
|
|
|
|
|
|
+ strm->state = NULL;
|
|
|
|
|
|
return BZ_OK;
|
|
return BZ_OK;
|
|
}
|
|
}
|
|
@@ -490,8 +491,8 @@ int BZ_API(BZ2_bzCompressEnd) ( bz_stream *strm )
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
-int BZ_API(BZ2_bzDecompressInit)
|
|
|
|
- ( bz_stream* strm,
|
|
|
|
|
|
+int BZ_API(BZ2_bzDecompressInit)
|
|
|
|
+ ( bz_stream* strm,
|
|
int verbosity,
|
|
int verbosity,
|
|
int small )
|
|
int small )
|
|
{
|
|
{
|
|
@@ -556,34 +557,34 @@ Bool unRLE_obuf_to_output_FAST ( DState* s )
|
|
|
|
|
|
/* can a new run be started? */
|
|
/* can a new run be started? */
|
|
if (s->nblock_used == s->save_nblock+1) return False;
|
|
if (s->nblock_used == s->save_nblock+1) return False;
|
|
-
|
|
|
|
|
|
+
|
|
/* Only caused by corrupt data stream? */
|
|
/* Only caused by corrupt data stream? */
|
|
if (s->nblock_used > s->save_nblock+1)
|
|
if (s->nblock_used > s->save_nblock+1)
|
|
return True;
|
|
return True;
|
|
-
|
|
|
|
|
|
+
|
|
s->state_out_len = 1;
|
|
s->state_out_len = 1;
|
|
s->state_out_ch = s->k0;
|
|
s->state_out_ch = s->k0;
|
|
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+ BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
-
|
|
|
|
|
|
+
|
|
s->state_out_len = 2;
|
|
s->state_out_len = 2;
|
|
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+ BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
-
|
|
|
|
|
|
+
|
|
s->state_out_len = 3;
|
|
s->state_out_len = 3;
|
|
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+ BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
-
|
|
|
|
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+
|
|
|
|
+ BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
s->state_out_len = ((Int32)k1) + 4;
|
|
s->state_out_len = ((Int32)k1) + 4;
|
|
- BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+ BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK;
|
|
s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -621,7 +622,7 @@ Bool unRLE_obuf_to_output_FAST ( DState* s )
|
|
}
|
|
}
|
|
s_state_out_len_eq_one:
|
|
s_state_out_len_eq_one:
|
|
{
|
|
{
|
|
- if (cs_avail_out == 0) {
|
|
|
|
|
|
+ if (cs_avail_out == 0) {
|
|
c_state_out_len = 1; goto return_notr;
|
|
c_state_out_len = 1; goto return_notr;
|
|
};
|
|
};
|
|
*( (UChar*)(cs_next_out) ) = c_state_out_ch;
|
|
*( (UChar*)(cs_next_out) ) = c_state_out_ch;
|
|
@@ -629,7 +630,7 @@ Bool unRLE_obuf_to_output_FAST ( DState* s )
|
|
cs_next_out++;
|
|
cs_next_out++;
|
|
cs_avail_out--;
|
|
cs_avail_out--;
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }
|
|
/* Only caused by corrupt data stream? */
|
|
/* Only caused by corrupt data stream? */
|
|
if (c_nblock_used > s_save_nblockPP)
|
|
if (c_nblock_used > s_save_nblockPP)
|
|
return True;
|
|
return True;
|
|
@@ -637,25 +638,25 @@ Bool unRLE_obuf_to_output_FAST ( DState* s )
|
|
/* can a new run be started? */
|
|
/* can a new run be started? */
|
|
if (c_nblock_used == s_save_nblockPP) {
|
|
if (c_nblock_used == s_save_nblockPP) {
|
|
c_state_out_len = 0; goto return_notr;
|
|
c_state_out_len = 0; goto return_notr;
|
|
- };
|
|
|
|
|
|
+ };
|
|
c_state_out_ch = c_k0;
|
|
c_state_out_ch = c_k0;
|
|
BZ_GET_FAST_C(k1); c_nblock_used++;
|
|
BZ_GET_FAST_C(k1); c_nblock_used++;
|
|
- if (k1 != c_k0) {
|
|
|
|
- c_k0 = k1; goto s_state_out_len_eq_one;
|
|
|
|
|
|
+ if (k1 != c_k0) {
|
|
|
|
+ c_k0 = k1; goto s_state_out_len_eq_one;
|
|
};
|
|
};
|
|
- if (c_nblock_used == s_save_nblockPP)
|
|
|
|
|
|
+ if (c_nblock_used == s_save_nblockPP)
|
|
goto s_state_out_len_eq_one;
|
|
goto s_state_out_len_eq_one;
|
|
-
|
|
|
|
|
|
+
|
|
c_state_out_len = 2;
|
|
c_state_out_len = 2;
|
|
BZ_GET_FAST_C(k1); c_nblock_used++;
|
|
BZ_GET_FAST_C(k1); c_nblock_used++;
|
|
if (c_nblock_used == s_save_nblockPP) continue;
|
|
if (c_nblock_used == s_save_nblockPP) continue;
|
|
if (k1 != c_k0) { c_k0 = k1; continue; };
|
|
if (k1 != c_k0) { c_k0 = k1; continue; };
|
|
-
|
|
|
|
|
|
+
|
|
c_state_out_len = 3;
|
|
c_state_out_len = 3;
|
|
BZ_GET_FAST_C(k1); c_nblock_used++;
|
|
BZ_GET_FAST_C(k1); c_nblock_used++;
|
|
if (c_nblock_used == s_save_nblockPP) continue;
|
|
if (c_nblock_used == s_save_nblockPP) continue;
|
|
if (k1 != c_k0) { c_k0 = k1; continue; };
|
|
if (k1 != c_k0) { c_k0 = k1; continue; };
|
|
-
|
|
|
|
|
|
+
|
|
BZ_GET_FAST_C(k1); c_nblock_used++;
|
|
BZ_GET_FAST_C(k1); c_nblock_used++;
|
|
c_state_out_len = ((Int32)k1) + 4;
|
|
c_state_out_len = ((Int32)k1) + 4;
|
|
BZ_GET_FAST_C(c_k0); c_nblock_used++;
|
|
BZ_GET_FAST_C(c_k0); c_nblock_used++;
|
|
@@ -723,37 +724,37 @@ Bool unRLE_obuf_to_output_SMALL ( DState* s )
|
|
s->strm->total_out_lo32++;
|
|
s->strm->total_out_lo32++;
|
|
if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
|
|
if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/* can a new run be started? */
|
|
/* can a new run be started? */
|
|
if (s->nblock_used == s->save_nblock+1) return False;
|
|
if (s->nblock_used == s->save_nblock+1) return False;
|
|
|
|
|
|
/* Only caused by corrupt data stream? */
|
|
/* Only caused by corrupt data stream? */
|
|
if (s->nblock_used > s->save_nblock+1)
|
|
if (s->nblock_used > s->save_nblock+1)
|
|
return True;
|
|
return True;
|
|
-
|
|
|
|
|
|
+
|
|
s->state_out_len = 1;
|
|
s->state_out_len = 1;
|
|
s->state_out_ch = s->k0;
|
|
s->state_out_ch = s->k0;
|
|
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+ BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
-
|
|
|
|
|
|
+
|
|
s->state_out_len = 2;
|
|
s->state_out_len = 2;
|
|
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+ BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
-
|
|
|
|
|
|
+
|
|
s->state_out_len = 3;
|
|
s->state_out_len = 3;
|
|
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+ BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
-
|
|
|
|
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+
|
|
|
|
+ BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
k1 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
s->state_out_len = ((Int32)k1) + 4;
|
|
s->state_out_len = ((Int32)k1) + 4;
|
|
- BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK;
|
|
|
|
|
|
+ BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK;
|
|
s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -772,30 +773,30 @@ Bool unRLE_obuf_to_output_SMALL ( DState* s )
|
|
s->strm->total_out_lo32++;
|
|
s->strm->total_out_lo32++;
|
|
if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
|
|
if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/* can a new run be started? */
|
|
/* can a new run be started? */
|
|
if (s->nblock_used == s->save_nblock+1) return False;
|
|
if (s->nblock_used == s->save_nblock+1) return False;
|
|
|
|
|
|
/* Only caused by corrupt data stream? */
|
|
/* Only caused by corrupt data stream? */
|
|
if (s->nblock_used > s->save_nblock+1)
|
|
if (s->nblock_used > s->save_nblock+1)
|
|
return True;
|
|
return True;
|
|
-
|
|
|
|
|
|
+
|
|
s->state_out_len = 1;
|
|
s->state_out_len = 1;
|
|
s->state_out_ch = s->k0;
|
|
s->state_out_ch = s->k0;
|
|
BZ_GET_SMALL(k1); s->nblock_used++;
|
|
BZ_GET_SMALL(k1); s->nblock_used++;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
-
|
|
|
|
|
|
+
|
|
s->state_out_len = 2;
|
|
s->state_out_len = 2;
|
|
BZ_GET_SMALL(k1); s->nblock_used++;
|
|
BZ_GET_SMALL(k1); s->nblock_used++;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
-
|
|
|
|
|
|
+
|
|
s->state_out_len = 3;
|
|
s->state_out_len = 3;
|
|
BZ_GET_SMALL(k1); s->nblock_used++;
|
|
BZ_GET_SMALL(k1); s->nblock_used++;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (s->nblock_used == s->save_nblock+1) continue;
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
if (k1 != s->k0) { s->k0 = k1; continue; };
|
|
-
|
|
|
|
|
|
+
|
|
BZ_GET_SMALL(k1); s->nblock_used++;
|
|
BZ_GET_SMALL(k1); s->nblock_used++;
|
|
s->state_out_len = ((Int32)k1) + 4;
|
|
s->state_out_len = ((Int32)k1) + 4;
|
|
BZ_GET_SMALL(s->k0); s->nblock_used++;
|
|
BZ_GET_SMALL(s->k0); s->nblock_used++;
|
|
@@ -824,14 +825,14 @@ int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
|
|
if (corrupt) return BZ_DATA_ERROR;
|
|
if (corrupt) return BZ_DATA_ERROR;
|
|
if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
|
|
if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
|
|
BZ_FINALISE_CRC ( s->calculatedBlockCRC );
|
|
BZ_FINALISE_CRC ( s->calculatedBlockCRC );
|
|
- if (s->verbosity >= 3)
|
|
|
|
- VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC,
|
|
|
|
|
|
+ if (s->verbosity >= 3)
|
|
|
|
+ VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC,
|
|
s->calculatedBlockCRC );
|
|
s->calculatedBlockCRC );
|
|
if (s->verbosity >= 2) VPrintf0 ( "]" );
|
|
if (s->verbosity >= 2) VPrintf0 ( "]" );
|
|
if (s->calculatedBlockCRC != s->storedBlockCRC)
|
|
if (s->calculatedBlockCRC != s->storedBlockCRC)
|
|
return BZ_DATA_ERROR;
|
|
return BZ_DATA_ERROR;
|
|
- s->calculatedCombinedCRC
|
|
|
|
- = (s->calculatedCombinedCRC << 1) |
|
|
|
|
|
|
+ s->calculatedCombinedCRC
|
|
|
|
+ = (s->calculatedCombinedCRC << 1) |
|
|
(s->calculatedCombinedCRC >> 31);
|
|
(s->calculatedCombinedCRC >> 31);
|
|
s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
|
|
s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
|
|
s->state = BZ_X_BLKHDR_1;
|
|
s->state = BZ_X_BLKHDR_1;
|
|
@@ -843,7 +844,7 @@ int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
|
|
Int32 r = BZ2_decompress ( s );
|
|
Int32 r = BZ2_decompress ( s );
|
|
if (r == BZ_STREAM_END) {
|
|
if (r == BZ_STREAM_END) {
|
|
if (s->verbosity >= 3)
|
|
if (s->verbosity >= 3)
|
|
- VPrintf2 ( "\n combined CRCs: stored = 0x%08x, computed = 0x%08x",
|
|
|
|
|
|
+ VPrintf2 ( "\n combined CRCs: stored = 0x%08x, computed = 0x%08x",
|
|
s->storedCombinedCRC, s->calculatedCombinedCRC );
|
|
s->storedCombinedCRC, s->calculatedCombinedCRC );
|
|
if (s->calculatedCombinedCRC != s->storedCombinedCRC)
|
|
if (s->calculatedCombinedCRC != s->storedCombinedCRC)
|
|
return BZ_DATA_ERROR;
|
|
return BZ_DATA_ERROR;
|
|
@@ -890,7 +891,7 @@ int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm )
|
|
if (bzf != NULL) bzf->lastErr = eee; \
|
|
if (bzf != NULL) bzf->lastErr = eee; \
|
|
}
|
|
}
|
|
|
|
|
|
-typedef
|
|
|
|
|
|
+typedef
|
|
struct {
|
|
struct {
|
|
FILE* handle;
|
|
FILE* handle;
|
|
Char buf[BZ_MAX_UNUSED];
|
|
Char buf[BZ_MAX_UNUSED];
|
|
@@ -914,10 +915,10 @@ static Bool myfeof ( FILE* f )
|
|
|
|
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
-BZFILE* BZ_API(BZ2_bzWriteOpen)
|
|
|
|
- ( int* bzerror,
|
|
|
|
- FILE* f,
|
|
|
|
- int blockSize100k,
|
|
|
|
|
|
+BZFILE* BZ_API(BZ2_bzWriteOpen)
|
|
|
|
+ ( int* bzerror,
|
|
|
|
+ FILE* f,
|
|
|
|
+ int blockSize100k,
|
|
int verbosity,
|
|
int verbosity,
|
|
int workFactor )
|
|
int workFactor )
|
|
{
|
|
{
|
|
@@ -949,23 +950,23 @@ BZFILE* BZ_API(BZ2_bzWriteOpen)
|
|
bzf->strm.opaque = NULL;
|
|
bzf->strm.opaque = NULL;
|
|
|
|
|
|
if (workFactor == 0) workFactor = 30;
|
|
if (workFactor == 0) workFactor = 30;
|
|
- ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k,
|
|
|
|
|
|
+ ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k,
|
|
verbosity, workFactor );
|
|
verbosity, workFactor );
|
|
if (ret != BZ_OK)
|
|
if (ret != BZ_OK)
|
|
{ BZ_SETERR(ret); free(bzf); return NULL; };
|
|
{ BZ_SETERR(ret); free(bzf); return NULL; };
|
|
|
|
|
|
bzf->strm.avail_in = 0;
|
|
bzf->strm.avail_in = 0;
|
|
bzf->initialisedOk = True;
|
|
bzf->initialisedOk = True;
|
|
- return bzf;
|
|
|
|
|
|
+ return bzf;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
void BZ_API(BZ2_bzWrite)
|
|
void BZ_API(BZ2_bzWrite)
|
|
- ( int* bzerror,
|
|
|
|
- BZFILE* b,
|
|
|
|
- void* buf,
|
|
|
|
|
|
+ ( int* bzerror,
|
|
|
|
+ BZFILE* b,
|
|
|
|
+ void* buf,
|
|
int len )
|
|
int len )
|
|
{
|
|
{
|
|
Int32 n, n2, ret;
|
|
Int32 n, n2, ret;
|
|
@@ -994,7 +995,7 @@ void BZ_API(BZ2_bzWrite)
|
|
|
|
|
|
if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
|
|
if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
|
|
n = BZ_MAX_UNUSED - bzf->strm.avail_out;
|
|
n = BZ_MAX_UNUSED - bzf->strm.avail_out;
|
|
- n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
|
|
|
|
|
|
+ n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
|
|
n, bzf->handle );
|
|
n, bzf->handle );
|
|
if (n != n2 || ferror(bzf->handle))
|
|
if (n != n2 || ferror(bzf->handle))
|
|
{ BZ_SETERR(BZ_IO_ERROR); return; };
|
|
{ BZ_SETERR(BZ_IO_ERROR); return; };
|
|
@@ -1008,20 +1009,20 @@ void BZ_API(BZ2_bzWrite)
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
void BZ_API(BZ2_bzWriteClose)
|
|
void BZ_API(BZ2_bzWriteClose)
|
|
- ( int* bzerror,
|
|
|
|
- BZFILE* b,
|
|
|
|
|
|
+ ( int* bzerror,
|
|
|
|
+ BZFILE* b,
|
|
int abandon,
|
|
int abandon,
|
|
unsigned int* nbytes_in,
|
|
unsigned int* nbytes_in,
|
|
unsigned int* nbytes_out )
|
|
unsigned int* nbytes_out )
|
|
{
|
|
{
|
|
- BZ2_bzWriteClose64 ( bzerror, b, abandon,
|
|
|
|
|
|
+ BZ2_bzWriteClose64 ( bzerror, b, abandon,
|
|
nbytes_in, NULL, nbytes_out, NULL );
|
|
nbytes_in, NULL, nbytes_out, NULL );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
void BZ_API(BZ2_bzWriteClose64)
|
|
void BZ_API(BZ2_bzWriteClose64)
|
|
- ( int* bzerror,
|
|
|
|
- BZFILE* b,
|
|
|
|
|
|
+ ( int* bzerror,
|
|
|
|
+ BZFILE* b,
|
|
int abandon,
|
|
int abandon,
|
|
unsigned int* nbytes_in_lo32,
|
|
unsigned int* nbytes_in_lo32,
|
|
unsigned int* nbytes_in_hi32,
|
|
unsigned int* nbytes_in_hi32,
|
|
@@ -1053,7 +1054,7 @@ void BZ_API(BZ2_bzWriteClose64)
|
|
|
|
|
|
if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
|
|
if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
|
|
n = BZ_MAX_UNUSED - bzf->strm.avail_out;
|
|
n = BZ_MAX_UNUSED - bzf->strm.avail_out;
|
|
- n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
|
|
|
|
|
|
+ n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
|
|
n, bzf->handle );
|
|
n, bzf->handle );
|
|
if (n != n2 || ferror(bzf->handle))
|
|
if (n != n2 || ferror(bzf->handle))
|
|
{ BZ_SETERR(BZ_IO_ERROR); return; };
|
|
{ BZ_SETERR(BZ_IO_ERROR); return; };
|
|
@@ -1085,9 +1086,9 @@ void BZ_API(BZ2_bzWriteClose64)
|
|
|
|
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
-BZFILE* BZ_API(BZ2_bzReadOpen)
|
|
|
|
- ( int* bzerror,
|
|
|
|
- FILE* f,
|
|
|
|
|
|
+BZFILE* BZ_API(BZ2_bzReadOpen)
|
|
|
|
+ ( int* bzerror,
|
|
|
|
+ FILE* f,
|
|
int verbosity,
|
|
int verbosity,
|
|
int small,
|
|
int small,
|
|
void* unused,
|
|
void* unused,
|
|
@@ -1098,7 +1099,7 @@ BZFILE* BZ_API(BZ2_bzReadOpen)
|
|
|
|
|
|
BZ_SETERR(BZ_OK);
|
|
BZ_SETERR(BZ_OK);
|
|
|
|
|
|
- if (f == NULL ||
|
|
|
|
|
|
+ if (f == NULL ||
|
|
(small != 0 && small != 1) ||
|
|
(small != 0 && small != 1) ||
|
|
(verbosity < 0 || verbosity > 4) ||
|
|
(verbosity < 0 || verbosity > 4) ||
|
|
(unused == NULL && nUnused != 0) ||
|
|
(unused == NULL && nUnused != 0) ||
|
|
@@ -1109,7 +1110,7 @@ BZFILE* BZ_API(BZ2_bzReadOpen)
|
|
{ BZ_SETERR(BZ_IO_ERROR); return NULL; };
|
|
{ BZ_SETERR(BZ_IO_ERROR); return NULL; };
|
|
|
|
|
|
bzf = malloc ( sizeof(bzFile) );
|
|
bzf = malloc ( sizeof(bzFile) );
|
|
- if (bzf == NULL)
|
|
|
|
|
|
+ if (bzf == NULL)
|
|
{ BZ_SETERR(BZ_MEM_ERROR); return NULL; };
|
|
{ BZ_SETERR(BZ_MEM_ERROR); return NULL; };
|
|
|
|
|
|
BZ_SETERR(BZ_OK);
|
|
BZ_SETERR(BZ_OK);
|
|
@@ -1121,7 +1122,7 @@ BZFILE* BZ_API(BZ2_bzReadOpen)
|
|
bzf->strm.bzalloc = NULL;
|
|
bzf->strm.bzalloc = NULL;
|
|
bzf->strm.bzfree = NULL;
|
|
bzf->strm.bzfree = NULL;
|
|
bzf->strm.opaque = NULL;
|
|
bzf->strm.opaque = NULL;
|
|
-
|
|
|
|
|
|
+
|
|
while (nUnused > 0) {
|
|
while (nUnused > 0) {
|
|
bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;
|
|
bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;
|
|
unused = ((void*)( 1 + ((UChar*)(unused)) ));
|
|
unused = ((void*)( 1 + ((UChar*)(unused)) ));
|
|
@@ -1136,7 +1137,7 @@ BZFILE* BZ_API(BZ2_bzReadOpen)
|
|
bzf->strm.next_in = bzf->buf;
|
|
bzf->strm.next_in = bzf->buf;
|
|
|
|
|
|
bzf->initialisedOk = True;
|
|
bzf->initialisedOk = True;
|
|
- return bzf;
|
|
|
|
|
|
+ return bzf;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1159,10 +1160,10 @@ void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b )
|
|
|
|
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
-int BZ_API(BZ2_bzRead)
|
|
|
|
- ( int* bzerror,
|
|
|
|
- BZFILE* b,
|
|
|
|
- void* buf,
|
|
|
|
|
|
+int BZ_API(BZ2_bzRead)
|
|
|
|
+ ( int* bzerror,
|
|
|
|
+ BZFILE* b,
|
|
|
|
+ void* buf,
|
|
int len )
|
|
int len )
|
|
{
|
|
{
|
|
Int32 n, ret;
|
|
Int32 n, ret;
|
|
@@ -1184,11 +1185,11 @@ int BZ_API(BZ2_bzRead)
|
|
|
|
|
|
while (True) {
|
|
while (True) {
|
|
|
|
|
|
- if (ferror(bzf->handle))
|
|
|
|
|
|
+ if (ferror(bzf->handle))
|
|
{ BZ_SETERR(BZ_IO_ERROR); return 0; };
|
|
{ BZ_SETERR(BZ_IO_ERROR); return 0; };
|
|
|
|
|
|
if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) {
|
|
if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) {
|
|
- n = fread ( bzf->buf, sizeof(UChar),
|
|
|
|
|
|
+ n = fread ( bzf->buf, sizeof(UChar),
|
|
BZ_MAX_UNUSED, bzf->handle );
|
|
BZ_MAX_UNUSED, bzf->handle );
|
|
if (ferror(bzf->handle))
|
|
if (ferror(bzf->handle))
|
|
{ BZ_SETERR(BZ_IO_ERROR); return 0; };
|
|
{ BZ_SETERR(BZ_IO_ERROR); return 0; };
|
|
@@ -1202,7 +1203,7 @@ int BZ_API(BZ2_bzRead)
|
|
if (ret != BZ_OK && ret != BZ_STREAM_END)
|
|
if (ret != BZ_OK && ret != BZ_STREAM_END)
|
|
{ BZ_SETERR(ret); return 0; };
|
|
{ BZ_SETERR(ret); return 0; };
|
|
|
|
|
|
- if (ret == BZ_OK && myfeof(bzf->handle) &&
|
|
|
|
|
|
+ if (ret == BZ_OK && myfeof(bzf->handle) &&
|
|
bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0)
|
|
bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0)
|
|
{ BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; };
|
|
{ BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; };
|
|
|
|
|
|
@@ -1211,7 +1212,7 @@ int BZ_API(BZ2_bzRead)
|
|
return len - bzf->strm.avail_out; };
|
|
return len - bzf->strm.avail_out; };
|
|
if (bzf->strm.avail_out == 0)
|
|
if (bzf->strm.avail_out == 0)
|
|
{ BZ_SETERR(BZ_OK); return len; };
|
|
{ BZ_SETERR(BZ_OK); return len; };
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
return 0; /*not reached*/
|
|
return 0; /*not reached*/
|
|
@@ -1219,10 +1220,10 @@ int BZ_API(BZ2_bzRead)
|
|
|
|
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
-void BZ_API(BZ2_bzReadGetUnused)
|
|
|
|
- ( int* bzerror,
|
|
|
|
- BZFILE* b,
|
|
|
|
- void** unused,
|
|
|
|
|
|
+void BZ_API(BZ2_bzReadGetUnused)
|
|
|
|
+ ( int* bzerror,
|
|
|
|
+ BZFILE* b,
|
|
|
|
+ void** unused,
|
|
int* nUnused )
|
|
int* nUnused )
|
|
{
|
|
{
|
|
bzFile* bzf = (bzFile*)b;
|
|
bzFile* bzf = (bzFile*)b;
|
|
@@ -1245,30 +1246,30 @@ void BZ_API(BZ2_bzReadGetUnused)
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
-int BZ_API(BZ2_bzBuffToBuffCompress)
|
|
|
|
- ( char* dest,
|
|
|
|
|
|
+int BZ_API(BZ2_bzBuffToBuffCompress)
|
|
|
|
+ ( char* dest,
|
|
unsigned int* destLen,
|
|
unsigned int* destLen,
|
|
- char* source,
|
|
|
|
|
|
+ char* source,
|
|
unsigned int sourceLen,
|
|
unsigned int sourceLen,
|
|
- int blockSize100k,
|
|
|
|
- int verbosity,
|
|
|
|
|
|
+ int blockSize100k,
|
|
|
|
+ int verbosity,
|
|
int workFactor )
|
|
int workFactor )
|
|
{
|
|
{
|
|
bz_stream strm;
|
|
bz_stream strm;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
- if (dest == NULL || destLen == NULL ||
|
|
|
|
|
|
+ if (dest == NULL || destLen == NULL ||
|
|
source == NULL ||
|
|
source == NULL ||
|
|
blockSize100k < 1 || blockSize100k > 9 ||
|
|
blockSize100k < 1 || blockSize100k > 9 ||
|
|
verbosity < 0 || verbosity > 4 ||
|
|
verbosity < 0 || verbosity > 4 ||
|
|
- workFactor < 0 || workFactor > 250)
|
|
|
|
|
|
+ workFactor < 0 || workFactor > 250)
|
|
return BZ_PARAM_ERROR;
|
|
return BZ_PARAM_ERROR;
|
|
|
|
|
|
if (workFactor == 0) workFactor = 30;
|
|
if (workFactor == 0) workFactor = 30;
|
|
strm.bzalloc = NULL;
|
|
strm.bzalloc = NULL;
|
|
strm.bzfree = NULL;
|
|
strm.bzfree = NULL;
|
|
strm.opaque = NULL;
|
|
strm.opaque = NULL;
|
|
- ret = BZ2_bzCompressInit ( &strm, blockSize100k,
|
|
|
|
|
|
+ ret = BZ2_bzCompressInit ( &strm, blockSize100k,
|
|
verbosity, workFactor );
|
|
verbosity, workFactor );
|
|
if (ret != BZ_OK) return ret;
|
|
if (ret != BZ_OK) return ret;
|
|
|
|
|
|
@@ -1282,7 +1283,7 @@ int BZ_API(BZ2_bzBuffToBuffCompress)
|
|
if (ret != BZ_STREAM_END) goto errhandler;
|
|
if (ret != BZ_STREAM_END) goto errhandler;
|
|
|
|
|
|
/* normal termination */
|
|
/* normal termination */
|
|
- *destLen -= strm.avail_out;
|
|
|
|
|
|
+ *destLen -= strm.avail_out;
|
|
BZ2_bzCompressEnd ( &strm );
|
|
BZ2_bzCompressEnd ( &strm );
|
|
return BZ_OK;
|
|
return BZ_OK;
|
|
|
|
|
|
@@ -1297,10 +1298,10 @@ int BZ_API(BZ2_bzBuffToBuffCompress)
|
|
|
|
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
-int BZ_API(BZ2_bzBuffToBuffDecompress)
|
|
|
|
- ( char* dest,
|
|
|
|
|
|
+int BZ_API(BZ2_bzBuffToBuffDecompress)
|
|
|
|
+ ( char* dest,
|
|
unsigned int* destLen,
|
|
unsigned int* destLen,
|
|
- char* source,
|
|
|
|
|
|
+ char* source,
|
|
unsigned int sourceLen,
|
|
unsigned int sourceLen,
|
|
int small,
|
|
int small,
|
|
int verbosity )
|
|
int verbosity )
|
|
@@ -1308,10 +1309,10 @@ int BZ_API(BZ2_bzBuffToBuffDecompress)
|
|
bz_stream strm;
|
|
bz_stream strm;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
- if (dest == NULL || destLen == NULL ||
|
|
|
|
|
|
+ if (dest == NULL || destLen == NULL ||
|
|
source == NULL ||
|
|
source == NULL ||
|
|
(small != 0 && small != 1) ||
|
|
(small != 0 && small != 1) ||
|
|
- verbosity < 0 || verbosity > 4)
|
|
|
|
|
|
+ verbosity < 0 || verbosity > 4)
|
|
return BZ_PARAM_ERROR;
|
|
return BZ_PARAM_ERROR;
|
|
|
|
|
|
strm.bzalloc = NULL;
|
|
strm.bzalloc = NULL;
|
|
@@ -1341,11 +1342,11 @@ int BZ_API(BZ2_bzBuffToBuffDecompress)
|
|
} else {
|
|
} else {
|
|
BZ2_bzDecompressEnd ( &strm );
|
|
BZ2_bzDecompressEnd ( &strm );
|
|
return BZ_OUTBUFF_FULL;
|
|
return BZ_OUTBUFF_FULL;
|
|
- };
|
|
|
|
|
|
+ };
|
|
|
|
|
|
errhandler:
|
|
errhandler:
|
|
BZ2_bzDecompressEnd ( &strm );
|
|
BZ2_bzDecompressEnd ( &strm );
|
|
- return ret;
|
|
|
|
|
|
+ return ret;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1397,7 +1398,7 @@ BZFILE * bzopen_or_bzdopen
|
|
int verbosity = 0;
|
|
int verbosity = 0;
|
|
int workFactor = 30;
|
|
int workFactor = 30;
|
|
int smallMode = 0;
|
|
int smallMode = 0;
|
|
- int nUnused = 0;
|
|
|
|
|
|
+ int nUnused = 0;
|
|
|
|
|
|
if (mode == NULL) return NULL;
|
|
if (mode == NULL) return NULL;
|
|
while (*mode) {
|
|
while (*mode) {
|
|
@@ -1443,7 +1444,7 @@ BZFILE * bzopen_or_bzdopen
|
|
if (writing) {
|
|
if (writing) {
|
|
/* Guard against total chaos and anarchy -- JRS */
|
|
/* Guard against total chaos and anarchy -- JRS */
|
|
if (blockSize100k < 1) blockSize100k = 1;
|
|
if (blockSize100k < 1) blockSize100k = 1;
|
|
- if (blockSize100k > 9) blockSize100k = 9;
|
|
|
|
|
|
+ if (blockSize100k > 9) blockSize100k = 9;
|
|
bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k,
|
|
bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k,
|
|
verbosity,workFactor);
|
|
verbosity,workFactor);
|
|
} else {
|
|
} else {
|
|
@@ -1522,7 +1523,7 @@ void BZ_API(BZ2_bzclose) (BZFILE* b)
|
|
{
|
|
{
|
|
int bzerr;
|
|
int bzerr;
|
|
FILE *fp;
|
|
FILE *fp;
|
|
-
|
|
|
|
|
|
+
|
|
if (b==NULL) {return;}
|
|
if (b==NULL) {return;}
|
|
fp = ((bzFile *)b)->handle;
|
|
fp = ((bzFile *)b)->handle;
|
|
if(((bzFile*)b)->writing){
|
|
if(((bzFile*)b)->writing){
|
|
@@ -1541,7 +1542,7 @@ void BZ_API(BZ2_bzclose) (BZFILE* b)
|
|
|
|
|
|
/*---------------------------------------------------*/
|
|
/*---------------------------------------------------*/
|
|
/*--
|
|
/*--
|
|
- return last error code
|
|
|
|
|
|
+ return last error code
|
|
--*/
|
|
--*/
|
|
static const char *bzerrorstrings[] = {
|
|
static const char *bzerrorstrings[] = {
|
|
"OK"
|
|
"OK"
|