45 using std::ostringstream;
56 strm <<
"internal error in bz2 library occurred: " << errcode;
70 string err =
"Unable to uncompress bz2 files, feature not built. Check config.h in bes directory for HAVE_BZLIB_H flag set to 1";
73 FILE *src = fopen( src_name.c_str(),
"rb" );
76 char *serr = strerror( errno );
77 string err =
"Unable to open the compressed file "
85 err.append(
"unknown error occurred" );
99 bsrc = BZ2_bzReadOpen( &bzerror, src, verbosity, small, NULL, 0 );
102 const char *berr = BZ2_bzerror( bsrc, &bzerror );
103 string err =
"bzReadOpen failed on " + src_name +
": ";
110 err.append(
"Unknown error" );
120 int bytes_read = BZ2_bzRead( &bzerror, bsrc, in,
CHUNK );
121 if( bzerror != BZ_OK && bzerror != BZ_STREAM_END )
123 const char *berr = BZ2_bzerror( bsrc, &bzerror );
124 string err =
"bzRead failed on " + src_name +
": ";
131 err.append(
"Unknown error" );
134 BZ2_bzReadClose( &bzerror, bsrc );
140 if( bzerror == BZ_STREAM_END )
144 int bytes_written = write(fd, in, bytes_read);
145 if( bytes_written < bytes_read )
148 strm <<
"Error writing uncompressed data: "
149 <<
"wrote " << bytes_written
150 <<
" instead of " << bytes_read;
152 BZ2_bzReadClose( &bzerror, bsrc );
159 BZ2_bzReadClose( &bzerror, bsrc );