Fix hts_hfile() for compressed text_format files #1826
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
SAM and VCF files opened for write both start with
htsFile::format.format
set totext_format
, and then update it after writing the header. This means it's possible to open atext_format
file with compression, sohts_hfile()
needs to handle it in the same way as SAM and VCF.Noticed when
hts_set_opt(fpout, HTS_OPT_BLOCK_SIZE, BAM_BLOCK_SIZE)
failed insamtools sort
in the case where the output was a compressed SAM file. At this pointfpout
was atext_file
, so the wrong pointer was passed tohfile_set_blksize()
, which luckily bailed out and returned -1 before doing any damage to the incorrectly passed-in structure.