|  | /* | 
|  | * 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* ); | 
|  |  |