if(dst_size == 0)
return 0;
+ /* Read dictionary if it exists and hasn't been read yet */
+ if(use_dict && !zck->comp.data_eof && zck->comp.data_idx == NULL &&
+ zck->index.first->length > 0 && !zck_import_dict(zck))
+ return -1;
+
size_t dc = 0;
char *src = zmalloc(dst_size - dc);
if(src == NULL) {
}
}
if(zck->comp.data_loc == zck->comp.data_idx->comp_length) {
- if(comp_end_dchunk(zck, use_dict, zck->comp.data_idx->length) < 0)
+ if(!comp_end_dchunk(zck, use_dict, zck->comp.data_idx->length))
return -1;
if(zck->comp.data_idx == NULL)
zck->comp.data_eof = True;
return True;
}
-int zck_read_header(zckCtx *zck) {
+int PUBLIC zck_read_header(zckCtx *zck) {
VALIDATE_READ(zck);
if(!read_lead_1(zck))
return False;
if(!read_sig(zck))
return False;
- if(!zck_import_dict(zck))
- return False;
return True;
}