1*59cc4ca5SDavid du Colombier /* 2*59cc4ca5SDavid du Colombier * THIS FILE IS NOT IDENTICAL TO THE ORIGINAL 3*59cc4ca5SDavid du Colombier * FROM THE BZIP2 DISTRIBUTION. 4*59cc4ca5SDavid du Colombier * 5*59cc4ca5SDavid du Colombier * It has been modified, mainly to break the library 6*59cc4ca5SDavid du Colombier * into smaller pieces. 7*59cc4ca5SDavid du Colombier * 8*59cc4ca5SDavid du Colombier * Russ Cox 9*59cc4ca5SDavid du Colombier * rsc@plan9.bell-labs.com 10*59cc4ca5SDavid du Colombier * July 2000 11*59cc4ca5SDavid du Colombier */ 12*59cc4ca5SDavid du Colombier 13*59cc4ca5SDavid du Colombier extern void BZ2_bz__AssertH__fail ( int errcode ); 14*59cc4ca5SDavid du Colombier 15*59cc4ca5SDavid du Colombier /* undo definitions in bzlib_private.h */ 16*59cc4ca5SDavid du Colombier #undef AssertH 17*59cc4ca5SDavid du Colombier #undef AssertD 18*59cc4ca5SDavid du Colombier #undef VPrintf0 19*59cc4ca5SDavid du Colombier #undef VPrintf1 20*59cc4ca5SDavid du Colombier #undef VPrintf2 21*59cc4ca5SDavid du Colombier #undef VPrintf3 22*59cc4ca5SDavid du Colombier #undef VPrintf4 23*59cc4ca5SDavid du Colombier #undef VPrintf5 24*59cc4ca5SDavid du Colombier 25*59cc4ca5SDavid du Colombier #define AssertH(cond,errcode) \ 26*59cc4ca5SDavid du Colombier { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); } 27*59cc4ca5SDavid du Colombier #if BZ_DEBUG 28*59cc4ca5SDavid du Colombier #define AssertD(cond,msg) \ 29*59cc4ca5SDavid du Colombier { if (!(cond)) { \ 30*59cc4ca5SDavid du Colombier fprintf ( stderr, \ 31*59cc4ca5SDavid du Colombier "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\ 32*59cc4ca5SDavid du Colombier exit(1); \ 33*59cc4ca5SDavid du Colombier }} 34*59cc4ca5SDavid du Colombier #else 35*59cc4ca5SDavid du Colombier #define AssertD(cond,msg) /* */ 36*59cc4ca5SDavid du Colombier #endif 37*59cc4ca5SDavid du Colombier #define VPrintf0(zf) \ 38*59cc4ca5SDavid du Colombier fprintf(stderr,zf) 39*59cc4ca5SDavid du Colombier #define VPrintf1(zf,za1) \ 40*59cc4ca5SDavid du Colombier fprintf(stderr,zf,za1) 41*59cc4ca5SDavid du Colombier #define VPrintf2(zf,za1,za2) \ 42*59cc4ca5SDavid du Colombier fprintf(stderr,zf,za1,za2) 43*59cc4ca5SDavid du Colombier #define VPrintf3(zf,za1,za2,za3) \ 44*59cc4ca5SDavid du Colombier fprintf(stderr,zf,za1,za2,za3) 45*59cc4ca5SDavid du Colombier #define VPrintf4(zf,za1,za2,za3,za4) \ 46*59cc4ca5SDavid du Colombier fprintf(stderr,zf,za1,za2,za3,za4) 47*59cc4ca5SDavid du Colombier #define VPrintf5(zf,za1,za2,za3,za4,za5) \ 48*59cc4ca5SDavid du Colombier fprintf(stderr,zf,za1,za2,za3,za4,za5) 49*59cc4ca5SDavid du Colombier 50*59cc4ca5SDavid du Colombier #define BZ_SETERR(eee) \ 51*59cc4ca5SDavid du Colombier { \ 52*59cc4ca5SDavid du Colombier if (bzerror != NULL) *bzerror = eee; \ 53*59cc4ca5SDavid du Colombier if (bzf != NULL) bzf->lastErr = eee; \ 54*59cc4ca5SDavid du Colombier } 55*59cc4ca5SDavid du Colombier 56*59cc4ca5SDavid du Colombier typedef 57*59cc4ca5SDavid du Colombier struct { 58*59cc4ca5SDavid du Colombier FILE* handle; 59*59cc4ca5SDavid du Colombier Char buf[BZ_MAX_UNUSED]; 60*59cc4ca5SDavid du Colombier Int32 bufN; 61*59cc4ca5SDavid du Colombier Bool writing; 62*59cc4ca5SDavid du Colombier bz_stream strm; 63*59cc4ca5SDavid du Colombier Int32 lastErr; 64*59cc4ca5SDavid du Colombier Bool initialisedOk; 65*59cc4ca5SDavid du Colombier } 66*59cc4ca5SDavid du Colombier bzFile; 67*59cc4ca5SDavid du Colombier 68*59cc4ca5SDavid du Colombier extern Bool bz_feof( FILE* ); 69*59cc4ca5SDavid du Colombier 70