| /* | 
 |  * THIS FILE IS NOT IDENTICAL TO THE ORIGINAL | 
 |  * FROM THE BZIP2 DISTRIBUTION. | 
 |  * | 
 |  * It has been modified, mainly to break the library | 
 |  * into smaller pieces. | 
 |  * | 
 |  * Russ Cox | 
 |  * rsc@plan9.bell-labs.com | 
 |  * July 2000 | 
 |  */ | 
 |  | 
 | extern void BZ2_bz__AssertH__fail ( int errcode ); | 
 |  | 
 | /* undo definitions in bzlib_private.h */ | 
 | #undef AssertH | 
 | #undef AssertD | 
 | #undef VPrintf0 | 
 | #undef VPrintf1 | 
 | #undef VPrintf2 | 
 | #undef VPrintf3 | 
 | #undef VPrintf4 | 
 | #undef VPrintf5 | 
 |  | 
 | #define AssertH(cond,errcode) \ | 
 |    { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); } | 
 | #if BZ_DEBUG | 
 | #define AssertD(cond,msg) \ | 
 |    { if (!(cond)) {       \ | 
 |       fprintf ( stderr,   \ | 
 |         "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\ | 
 |       exit(1); \ | 
 |    }} | 
 | #else | 
 | #define AssertD(cond,msg) /* */ | 
 | #endif | 
 | #define VPrintf0(zf) \ | 
 |    fprintf(stderr,zf) | 
 | #define VPrintf1(zf,za1) \ | 
 |    fprintf(stderr,zf,za1) | 
 | #define VPrintf2(zf,za1,za2) \ | 
 |    fprintf(stderr,zf,za1,za2) | 
 | #define VPrintf3(zf,za1,za2,za3) \ | 
 |    fprintf(stderr,zf,za1,za2,za3) | 
 | #define VPrintf4(zf,za1,za2,za3,za4) \ | 
 |    fprintf(stderr,zf,za1,za2,za3,za4) | 
 | #define VPrintf5(zf,za1,za2,za3,za4,za5) \ | 
 |    fprintf(stderr,zf,za1,za2,za3,za4,za5) | 
 |  | 
 | #define BZ_SETERR(eee)                    \ | 
 | {                                         \ | 
 |    if (bzerror != NULL) *bzerror = eee;   \ | 
 |    if (bzf != NULL) bzf->lastErr = eee;   \ | 
 | } | 
 |  | 
 | typedef  | 
 |    struct { | 
 |       FILE*     handle; | 
 |       Char      buf[BZ_MAX_UNUSED]; | 
 |       Int32     bufN; | 
 |       Bool      writing; | 
 |       bz_stream strm; | 
 |       Int32     lastErr; | 
 |       Bool      initialisedOk; | 
 |    } | 
 |    bzFile; | 
 |  | 
 | extern Bool bz_feof( FILE* ); | 
 |  |