<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">
<h3>
Michael R. Crusoe pushed to branch debian/experimental
at <a href="https://salsa.debian.org/med-team/htslib">Debian Med / htslib</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1f1e3f633a9ce84bba3b60794b86853764626022">1f1e3f63</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-08-15T10:06:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge version number and soname bump from master
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1903fd40e65927df998700fc1276d9bd1165ee34">1903fd40</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-08-20T10:06:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Set explicit REF_PATH to make tests self-contained

Set REF_PATH to an empty value (but not the empty string, as that
produces the default setting), or in general to point within the test
suite, for tests that exercise it -- currently just test_view.pl.

This makes the test suite self-contained for reference areas, and
in particular prevents travis build testing from trying to access
the EBI reference server.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b6934ff8409c5452c2fc3223568477cebdf7c9fa">b6934ff8</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-08-26T11:20:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Force nul termination of the kstr holding the CRAM index so that
sscanf doesn't attempt to check beyond the bounds of the string
memory.

On correctly formatted indices it has no need to do this (but
apparently does), but the fix is necessary anyway in order to be
robust on invalid indices.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6c6c75b93daa5592233a1f4c3d36395a1367c165">6c6c75b9</a></strong>
<div>
<span>by dpryan79</span>
<i>at 2014-08-26T12:05:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make hts_idx_push no longer return 0 after the first unmapped read. This fixes idxstats
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3fe4cf8e5dfba634711dcc54751ed1e0f964f690">3fe4cf8e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-08-26T12:59:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure hand-made kstring is NUL-terminated

The kputsn()s used to load the file into memory do NUL-terminate (like
most other kstring functions), so we only need to ensure this by hand
for the hand-made kstring made from zlib_mem_inflate().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/89e267a405d3bfa84b3fa615a7841131f3653920">89e267a4</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-08-26T16:09:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure items to be installed are built and up-to-date

Fixes #125.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/546bfcb5c74944ea3835dc61b21073ca2377c838">546bfcb5</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-08-27T12:48:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: Output "." not "nan" in scalar INFO fields
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6af42b1557f20c018cabd3e8aec3d0e645566c70">6af42b15</a></strong>
<div>
<span>by Mauricio Carneiro</span>
<i>at 2014-08-30T04:48:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: separate header lookup from field getter

Create two alternatives to bcf_get_info and bcf_get_fmt allowing the
user to query the header id for the tag once and then accessing the
fields directly using index lookups.  Modified the two existing
functions to use the index lookups so we don't repeat functionality.

Added the following functions to the public API:
```c
bcf_get_fmt_id (bcf_t* line, const int id)
bcf_get_info (bcf_t* line, const int id)
```
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/410cf54d1af8ae4b6c55e7797724387b4d523846">410cf54d</a></strong>
<div>
<span>by pd3</span>
<i>at 2014-09-01T07:18:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #127 from broadinstitute/broad_header_lookup

vcf: separate header lookup from field getter</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ebbad4b7bb49372e19de97e3e4eb01db00ef5e37">ebbad4b7</a></strong>
<div>
<span>by pd3</span>
<i>at 2014-09-01T11:14:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #124 from dpryan79/develop

Make hts_idx_push no longer return 0 after the first unmapped read. This...</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/830ea7395a00e4e9ad9de04e31d4b6014b776546">830ea739</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-09-03T14:23:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">faidx API to access sequence stats
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/20558bc9e7591d5a6a246d45f59272d0b1d9c0c4">20558bc9</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-09-08T16:09:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_get_info_values: Return correct INT8 and INT16 missing value
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cf4eab095812a92fc94bb23b1c5f016be1854a50">cf4eab09</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-09-09T17:40:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor documentation update
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/575be1498bfd936fb5d1c9337b27f9d37da5231f">575be149</a></strong>
<div>
<span>by Joel Thibault</span>
<i>at 2014-09-09T18:59:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Correct reference lines
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3f308835e8041031d09ca0ea51cbfa2a5a0a7fa6">3f308835</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-12T13:34:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed the .gz, .Z, .sz etc suffix searching when looking for reference files.

These are a hang-over from the Staden Package io_lib
days, but did not function correctly in htslib anyway as we had
already removed the decompression code (plus it was inappropriate for
http requests to boot).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d25c678a49d9f107bd46b9295dbcfdf0c53fed38">d25c678a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-12T13:45:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove the | from the default REF_PATH.

Although this is still syntacally considered legal by the code, it has
no effect and so this may just lead to confusion by the reader.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/061cd10a218231758aa9e241c7fee46c698050ab">061cd10a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-12T14:29:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor speed increases to cram_byte_array_stop_decode_init and
GET_BIT_MSB macros.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6454bd4e18a32098c5d29fd4297db893c2c9bd5e">6454bd4e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-15T09:00:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a range coder (order 0 and 1) plus support for LZMA if compiled
in (no option for this at present).

Internally the choice of compression method is now a bit field
listing the various methods suitable.  To aid this, ZLIB_RLE is its
own method internally (although just ZLIB in the file format as it is
in the same ZLIB byte stream format), allowing better for auto-tuning
between fill ZLIB and RLE only variants.

This means we can specify as many encoding methods as we support and
get the code to auto-tune to the best methods available.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/94cf60ac82014d8d149c6fc3b3c705b47fb4bcd2">94cf60ac</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-15T09:12:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tweaks for specifying version number. Now accepting version 3.0, and
also correctly setting the globals.

FIXME: shouldn't be using globals!
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3d3f4001dbdac665d5f06eb830ba95a9d0599f99">3d3f4001</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-15T10:28:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Updated the version checks to lop off major/minor components rather
than using an exact == comparison.

Also fixed the EOF block for version 3.0.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/37f42cd49fd581ffed265140d892e2c82d56be1d">37f42cd4</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-15T10:30:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed BETA codec so that it honours beta offset value for zero length
codes.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1de851bb3756252df8e9b2cc7b4a85779ab03c69">1de851bb</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-15T10:52:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix to the external decoders. If there is an attempt to decode 0
bytes then it no longer matters if the block does not exist. (This
comes about when faced with silly CIGAR strings like "0S".)

Bug fix to cope with block searching during encoding where
slice->block_by_id is not defined.  Note this doesn't happen in normal
behaviour, but the change is for code validity.

Plus a couple minor spacing changes and commenting.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0d3945942408f882225dd73f9c40fc6ba468665d">0d394594</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-15T11:05:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added support for more codecs, as part of refactoring how data is
pushed.  These were in the V2.1 spec, but not used.

- EXTERNAL now access type char, instead of only for int.
- BYTE_ARRAY_LEN is now implemented fully for encoding allowing two
  distinct sub-codecs.
- BYTE_ARRAY_STOP is now fully implemented.

Both the _LEN and _STOP codecs can now be used as proper obj->encode()
style codecs, rather than assuming the calling code is manually
filling out the data in the appropriate format. (Although this is
still done by cram_encode.c.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/672f07989818e5d635b774b8bbf640bd0c5cd392">672f0798</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-16T11:35:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Major refactoring of the way CRAM handles external blocks.
We now prefer to output as many things as possible to their own
specific external block instead of utilising the CORE block more
often.  This has the impact that it is much easier to do a partial
decode.

- The C structs are now more array based, preferring ->block[DS_XX]
  instead of ->XX_blk and similar.

- Many more block types wil be external by default now. It
  auto-selects CORE vs external based on size.

- Selection of compression algorithm for external blocks is more
  advanced.  Every external block has a metrics array element. This
  now tracks more than 2 types of compression and it culls candidate
  methods if they repeatedly are unpromising.

  The upshot is the hard-coded selection of which method to use for
  which block is (mostly) removed in favour of auto detection.

- CRAM now has the option to ignore certain types of fields when
  decoding.  Combined with more external blocks this permits faster
  decoding for tools like scram_flagstat, potentially 2-3x faster.

- Auxiliary tags now get split up into multiple external blocks based
  on data type. We still aggregate many together, but tag strings,
  integers, sequences and quality strings now get their own blocks.

Also sped up the process_one_read() function when converting from BAM
packed sequence to base-calls.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8210cf35e19beaac6eca0a687a3930d4efb9ad16">8210cf35</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-09-16T11:44:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">htslib (1.0-2) unstable; urgency=medium

  Uploaded to unstable (see previous changelog from experimental).

 -- Charles Plessy <plessy@debian.org>  Tue, 16 Sep 2014 20:27:04 +0900
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/100f2d05f93ef33d60446efbd0a340d0b8bc421d">100f2d05</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T09:00:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removal of a couple memory leaks added in the restructing of the last
patch.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b73b5274aade795d89387578ac8ed3533f589274">b73b5274</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T12:41:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix of use of TAG_ID macro and k vs key in hash for auxiliary
headers.

Updated the encoding of auxiliary data itself to agree with the
headers (and with the latest Scramble updates).

Bug fix to encoding the 'd' (double) aux data type.  We've never
tested
this as it's not even in the SAM spec, but I added it anyway as
samtools seems to include it.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5a840dae955733223ca0e69023cc04d323a6e280">5a840dae</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T12:42:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Modified the thread pool to use as few threads as possible. The
intention is that when given, say, 16 threads but being I/O bound such
that 12 cores is enough to keep up with the I/O then we have 12
threads kept busy and 4 totally idle.

This is implemented by dispatching jobs on lower thread IDs in
preference and maintaining a queue of pending jobs in proportion to
the number of threads currently running, rather than instantly
dispatching.

Removed uninitialised memory behaviour (worse, freeing an
uninitialised pointer). This triggered crashes on SPARC/Solaris when
testing in multi-threading, but bizarrely never fired on intel/linux
not even under valgrind.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6929b9c7cc85ff3924837da2659f5401c694b75a">6929b9c7</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T12:56:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fixed scramble -x as it was not correctly setting the RI data
series for some tests.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ef7eeed612f4099e110c1020442d9027aab3b4b7">ef7eeed6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T13:36:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">A mishmash of changes for CRAM v3.0 (not yet the default output
format). Sorry it's munged together.

The 'b' and 'q' feature types have been implemented, allowing multiple
bases and qualities to be stored as a single feature. This greatly
speeds up scramble -x mode (referenceless) while also reducing the
file size.  Portions of this snuck in with the earlier commits; an
artifact of merging bit by bit with io_lib.

Added support for the BYTE_ARRAY_LEN encoder. It already existed in
decoder, but it is optimal for some cases to use as encoder instead of
the usual BYTE_ARRAY_STOP.

Bug fix to the external decoders. If there is an attempt to decode 0
bytes then it no longer matters if the block does not exist. (This
comes about when faced with silly CIGAR strings like "0S".) Changed
scramble to no longer output empty blocks.

Cram_dump: this now outputs the compression types used for each
external block as g(gzip), b(bzip2), l(lzma), r(rANS0) and R(rANS1).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a2542855d94198f7a055af9303147547db9c4ecc">a2542855</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T13:42:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor gcc warnings fixups.

Small speed increase - only attempt to compress the CORE block when it
is of sufficient size to make it worth while.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2e298614a0c78cc53a16ce41aa91697e16c46c74">2e298614</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T13:53:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added support for compressed SAM headers.

This involved removing the various #ifdefs for different types of
padding and instead coding it up with a variable that changes
depending on CRAM v2.1 or v3.0. (Cramtools doesn't allow for a second
padding block in 2.1, although technically it could fit within the
existing spec.)

Bug in the EOF block writing code. It was outputting
0xff 0xff 0xff 0xff 0xff instead of 0xff 0xff 0xff 0xff 0x0f for -1.
This caused the CRC to be invalid if you checksummed the raw data
instead of re-encoding it as Scramble does.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c7f8feec4ae768e52399e74d1069372969325cdc">c7f8feec</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T13:57:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Final part of Staden io_lib's commit r3686.

The BD:Z and BI:Z were already split up in this git version, but I
failed to initialise the BI:Z block.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6d01daaaf02efa49cd1a8cd6cdae1f90f5ce8ffa">6d01daaa</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T14:08:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Initialise refs_t ->ref_id in refs_load_fai().  This has no bearing on
Samtools/htslib, but this function is used within Gap5 and calling it
in this order gave arise to crashes unless this initialisation code is
here, so it is a good belt and braces approach.

In htslib for now this function is still static and unexported, which
is appropriate until we see a good use case claiming otherwise.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fa6011a55e03bc478b23d2345113f627f9b03f5c">fa6011a5</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-09-17T14:48:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bgzf: Write plain gzip files if is_gzip set
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/22718e5ee66f6b3870372936e4360e7c2e8a7d41">22718e5e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T15:38:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added CRC32 to the blocks and containers.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3ca319f5b0afb1c991e4d6c832f006f4682a7819">3ca319f5</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T15:42:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed the file format detection code so it handles CRAM v3.0 magic
number as a valid CRAM file.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/10958ff85d379ccc5ba453a450f3b0ccef0a607e">10958ff8</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T16:01:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Changed the hts_open code to support "C" as a format mode as well as
"c".  Both are CRAM, but "C" is version 3.0.  This is a temporary hack
while CRAM V3.0 is still undergoing work, but we will need a more
formal way of indicating output version numbers in the future.
Equally so the CRAM code itself for specifying versions also needs
improvements, to avoid global variables. Test_view has a -3 option to
use "C" instead of "c".

Also changed the compression formats (this is something else we cannot
yet expose to test_view) so that the rANS codec is used by default in
V3.0.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bf2d07c57258af777b4f0600acbaf48e3d8eada6">bf2d07c5</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-17T17:04:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed bam_construct_seq to cope with qual being NULL.

Moved the cram options and SAM field enums from cram_structs into
hts.h and added an hts_set_opt function to control them.

I'm not sure this is the correct location yet, but it is a start,
allowing me to test the rest of the functionality.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/efa6537a1f67ec56ee213b6ec56aed89db37e499">efa6537a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-18T09:03:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed the previous "c" vs "C" hack and added a proper option parser
to test_view.  We still need to decide where this API belongs
properly, but test_view is a good point to test it.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1965be21821b169440d74c7154ce856c1e174f18">1965be21</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-18T09:23:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed generation of MD and NM tags in cram_decode_seq() when using a
non-reference encoding. These cannot be stored or regenerated in such cases.

(Question: should we therefore explicitly store any MD and NM tags
when generating the CRAM if using non-reference encoding? Probably yes.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b56f540ed1cd207b4a0e41bc051e6ca8e6e9282f">b56f540e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-18T09:27:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a special case for setting the reference.  When converting from
SAM to CRAM we tend to think of the reference as an input property; if
it is not in the SAM headers (M5 & UR @SQ tags) then we want to
specify it, as an input property.

However the way the code works is we parse the input header and use
that to generate the output header, in doing so setting the reference
to use for the output.  Hence technically the reference is an output
variable (as in this example in=SAM and out=CRAM).

To make things sane for the user, if we set the reference for the
input then we also now apply that option to the output file too.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ad3c4c5633fce4613cca4295ce25801694a298cf">ad3c4c56</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-18T10:42:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cope with cram_compress_slice failing. We were unwinding the stack
returning -1 each time, but then called cram_close which attempting to
flush any remaining data (dying in the process). We now free the
current on-going container upon an error, to avoid this flush later.

Fixed the cram_compress_block code so it doesn't end up thinking a
failure to compress with bzip2 or lzma (say, because they're not
linked in) means the zero sized output is the best compression option
to use.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1ef04ee8241fb90445e290c16fd703941fd6a5c3">1ef04ee8</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-18T11:04:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed the need for -DSAMTOOLS when compiling CRAM.

The Io_lib and HTSLib sources are now divergent enough that there is
no need to try and keep common files between the two with #ifdefs.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b5ecdf7f20d8e005bffcc0353247c7e5227f7dae">b5ecdf7f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-18T13:38:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">(Commented out): ugly auto-configuration of HAVE_LIBBZ2 and
HAVE_LIBLZMA definitions.

These cannot yet go in place due to lacking a way of specifying
dependent libraries, when linking into samtools etc.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a223cae8c009a85c0b61b8c84d315023bb2046be">a223cae8</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-18T13:38:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added multi-threading support for reading and writing CRAM.

Note that the samtools command only calls hts_set_threads on the
output file descriptor, so only has multi-threading writing enabled.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4835f533a1a29c230565e272138bc5534fc40359">4835f533</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-18T14:19:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CRAM_OPT_VERSION now works (and only works) on an open file
descriptor, freshly opened before the call to sam_hdr_write.

This avoids the need for global variables and a requirement to process
the VERSION option at a different time to all other CRAM options.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f5aeebbba8a14dd7e9283ab14a4709ce5e5a459e">f5aeebbb</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-09-19T07:24:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bgzf_open(..,"g") for compressed gzip output, as opposed to BGZF
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ac13591d7071634c0f67ef78e4f1bab18a3c6223">ac13591d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-19T13:56:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added SAM_RGAUX as another column identifier to allow for tools that
need to use RG tag without other tags to perform optimally.

Sped up the calculation of MD/NM by approx four fold by replacing
sprintf with custom number construction (append_uint).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2f10ff9ecd4e07bfc20549a9d58d9f43241b9b95">2f10ff9e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-19T16:39:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed defunct comment.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0cdb7b1af59ea0e8ef7a064eb74d41f4aad27ac5">0cdb7b1a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-09-22T14:19:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor tidyups to prevent some clang warnings.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dcefe5b7b617d88a009a4ae8a5f8fddc782cc5c8">dcefe5b7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-09-23T14:36:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't install libhts.so.1 as a man page
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5a0ee032c4e94f5b2814c6f389278b404f439713">5a0ee032</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-09-23T14:39:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Release 1.1: various minor bug fixes
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f2080d5c07a9d6e412973ce783819971789f57b2">f2080d5c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-09-23T15:49:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge version number bump from master
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1357fbd69504d675cd31fd18f6256930cb85bb90">1357fbd6</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-09-24T12:10:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge tag '1.1' into debian/unstable

HTSlib release 1.1, various bug fixes
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/be365db83e37f03f63bf5600f10f98568a376020">be365db8</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-09-24T12:13:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream release, no new copyright nor license notice.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/87549cd9ed03e67714a8ca7f25133ee9adf90942">87549cd9</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-09-24T12:17:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Updated symbols file.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/873ea9b616d678647a4b566f9c868d00494edf9f">873ea9b6</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-09-24T12:21:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed orphan paragraph.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/49de2b98046745dfe4fdd121ea34413ebb42164e">49de2b98</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-09-24T12:21:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow parallel build.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7fe3bb5d5137eff0b299ab81232f0aaf766ef884">7fe3bb5d</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-09-24T12:23:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Normalise source package control file (VCS-Browser, Pre-Depends).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0e5e9e6266c16e07eb75638c486c5589721f5d2d">0e5e9e62</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-09-24T12:23:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Conforms to Policy 3.9.6.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/15eac2bd29eccdbabc429b0281e3f65e99a18859">15eac2bd</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-09-24T12:29:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">htslib (1.1-1) unstable; urgency=medium

  1357fbd Merge tag '1.1' into debian/unstable
  87549cd Updated symbols file.  One symbol is missing.
  873ea9b Removed orphan paragraph in machine-readable copyright file.
  49de2b9 Allow parallel build.
  7fe3bb5 Normalise control file (VCS-Browser, Pre-Depends).
  0e5e9e6 Conforms to Policy 3.9.6.

 -- Charles Plessy <plessy@debian.org>  Wed, 24 Sep 2014 21:24:11 +0900
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5b98adcd6c52cdabcf6f71877ca94d370edf5eb6">5b98adcd</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-09-25T09:18:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added regidx API which should replace bcf_sr_regions at some point
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f4b4b61757f6268dfa6ed100fc2ea650c350bbd2">f4b4b617</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-01T07:55:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Clean after regidx init failure; fixed build dependencies
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d27ae83d54980334df1ef1f0971fbead6e93da5d">d27ae83d</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-01T11:57:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix in bcf regions which in some situations would skip first

the first position on new chromosome in the loci list.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d2cb7bacc15bd20960e89cf46712551657512adb">d2cb7bac</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-01T12:15:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">regidx: simple file format autodetection
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eecc982ee860b52efa26d1c0aa1f07f7fdba8588">eecc982e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-01T17:09:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixes for handling range requests while also multi-threading.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d6cdff67521b50c27850cca5d56905c61a02b6bc">d6cdff67</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-02T08:52:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix for FSECONDARY reads; do not link into PNEXT/RNEXT.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c116e113fae598e81cb9ed9419d639cf459cb84f">c116e113</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2014-10-02T09:10:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">add new test-regidx binary to .gitignore
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a0e35e03aee6a0e1c5e26beb7f00811bea04993b">a0e35e03</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-10-02T09:23:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Formatting fixes for man page

There is no .R; replace badly-nested .RE with .PP;
use hyphens to introduce options rather than en dashes
(addresses samtools/www.htslib.org#5 for tabix man page).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/db774cc56c0cc8f2053c9fff49c9faa49c5e9c09">db774cc5</a></strong>
<div>
<span>by pd3</span>
<i>at 2014-10-02T09:50:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #136 from mcshane/feature/ignore_test-regidx

add new test-regidx binary to .gitignore</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9eb4bed06a56f7f7875b3990b99a0305ba8c4924">9eb4bed0</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-02T10:28:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed various small memory leaks.

The most major of these per 1 (empty) block per container due to block
DS_SC being allocated twice; once explicitly and once in the main
block creation loop.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/14a4a81f67a122f7bb2e87e5fa070aa270b0aec5">14a4a81f</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-03T07:15:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Return type of bgzf_getc is int, not char
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/56d50b27ec4aa94f908b2965b061fd96d3b7f472">56d50b27</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-03T07:15:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">regidx: use size_t, not ssize_t
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5ebf9b248d9c2a47590a45dbdf2a1551c2aa5e57">5ebf9b24</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-10-03T14:01:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix regidx.o dependencies and htslib.mk; alphabetise
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ac4c98ad382fad693029cc85095b1dcb1db95a91">ac4c98ad</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-10-05T00:34:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'develop' into debian/unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/97501235644584386682e107722cd50a8bf4c7a8">97501235</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2014-10-05T00:39:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Current changelog; not sure to upload or not.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/effc6fdf768781c50482d54101a218ffe661b08a">effc6fdf</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-10-06T10:15:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge man page formatting fixes
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/912a7d09854d6bc2c5da1b82a3dbf84f9ec79df3">912a7d09</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-06T19:02:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Support for Type=Character, in htslib same as Type=String
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/34f8089dda8ae83c05cf427c1bc1f40ab1c12e34">34f8089d</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-10T11:47:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">VCF header editing speedup for large number of ref sequences

- Don't sync the internals with each edit, just set a 'dirty' flag and call
  bcf_hdr_sync() when header is written.  This may have undesired consequences
  in existing programs which do not call bcf_hdr_write() or try to access newly
  added fields before bcf_hdr_sync() was called.

- bcf_hdr_add_sample() does not require NULL any more, but programs may
  continue calling it for backward compatibility.

Resolves https://github.com/samtools/samtools/issues/308
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9d01cd606342cd1a68222519d82620b6d435d659">9d01cd60</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-14T12:31:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New bcf_copy API
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/432a2240531f8abcddbc2f1337626ce6b3d3cde4">432a2240</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-15T16:38:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Split off the rans_byte.h portion of rANS_static.c back into its own
file, for reasons of copyright clarity.

Fixed the arguments to rans_uncompress and indeed the whole notion of
having RANS0 and RANS1 as two distinct codecs.  This was historical.
They got merged into a genric RANS codec during the CRAM3 discussions.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b5d11c3b5d0808c4a507fecbd387d5c84b038d09">b5d11c3b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-16T13:00:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added copyright notice.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/43f2d11184e890e9ee534bf03526cb839d016b30">43f2d111</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-10-16T13:11:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove -DSAMTOOLS vestiges

hclose() is always paranoid (it flushes, syncs, and reports errors),
and cram_FILE is now always hFILE.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/24c86999f77bcef1829e2f3c68eeb68e29c910a9">24c86999</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-10-16T13:29:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix cram/rANS_* dependencies
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/233e1592c45dfff30c3a92e9732e322172361ac1">233e1592</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-10-16T14:31:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge CRAM v3 updates (PR #132)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/abd1efb33960aa18bf132a8d42d944ccd8220b60">abd1efb3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-10-17T10:17:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add htsFormat and format-detection API functions

Adds hts_detect_format() that returns an htsFormat based on peeking
at the beginning of an hFILE, and hts_hopen() that allows hts_open()
to be replaced by hopen()...hts_detect_format()...hts_hopen() where
desired.

Followups will add functions deriving an htsFormat based on filename
extension or -O-style option, functions to return a human-readable
description or hts_open()-mode based on an htsFormat, and an htsfile
utility that uses them.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bf909d669d45cb137e7cab5b56db0fc60be48a1c">bf909d66</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-20T17:41:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed old hts_file_type() API and replaced it with the new htsFormat;

vcf writers and synced_bcf_reader to use the new API; bgzf set
is_gzip flag when reading; new tabix -i option;  check return
status of hts_close in test-vcf-api
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7c42dccd43355d050aeb4e67f4edfc039541113e">7c42dccd</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-21T08:19:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Clean up, is_compressed and is_cram no longer necessary
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eda497bd2af34d619762b9f6434817e9a8c72d90">eda497bd</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-21T09:05:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Do not use 0x80 & co for missing alleles
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3e24dfd2015a85df0f689cc75e4d9af9b7356a6a">3e24dfd2</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-21T11:45:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Do not load remote index if already exists locally

and be silent when testing the existence of .tbi or .csi.
Resolves https://github.com/samtools/bcftools/issues/121
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/529ca88071e775a488e4108945d5bd863a4190f0">529ca880</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-10-22T09:52:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use htsFormat to replace htsFile's is_foo flags

Add an htsFormat member to htsFile, readable via hts_get_format().
Use hts_detect_format() within hts_hopen(fname, "r"), and fill in the
format based on mode letters for "w".

The htsFormat settings are clearer than the old is_foo flags, so begin
recoding SAM/BAM/CRAM and VCF/BCF tests to use fp->format.format (within
htslib; hts_get_format(fp)->format elsewhere) instead.  However several
of the flags are used directly outside htslib (see notes in htslib/hts.h)
so even though they are unused within htslib they cannot be removed
unless/until libhts.so's soversion is changed.

The is_be, is_compressed, and is_kstream flags are not used in samtools
or bcftools and we assume they are not used in other third-party code,
so they are safe to remove (and is_kstream has been removed).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/41ab01b2f97083957c90a9e784db139f31b1d6b1">41ab01b2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-10-22T09:52:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add htsfile utility

Note that hts_format_description() may possibly need to change to return
a string that the user must free() before release.  Manpage to follow.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5dec96ba7097f4e74cd05a8a661e161580902c92">5dec96ba</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-27T12:36:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Amended the compression level checking code in cram_dopen() to follow
the same detection logic used in bgzf.c.  Previously changing the
compression level did not work for CRAM.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b0df3d153e6eb12a1188208e54b8a0a2dd3fadba">b0df3d15</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-29T10:12:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix in bgzf's gzip reading plus added a test for this
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9c510fb5a63abaf059fccd36e9972dd19a043556">9c510fb5</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-29T10:51:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_translate: Be aware of gaps in BCF headers
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b28efa4f64cf3c7141e9d8e42cf1960eb6d91423">b28efa4f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-29T16:50:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">In a bid to keep the DEBUG_printf line potentially printing up the
value of 'i', while also avoiding the complaints about 'i' being set but
unused, I changed the code to also handle potentially wide
characters.  (I haven't tested it works actually with wide characters,
but it'll be better than before and the main goal was the silence the
annoying warning!)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a98d88fd423ef0b52c69100315ca93e0073f5911">a98d88fd</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-29T16:57:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix a bug where hts_set_fai_filename() didn't pass this through to
CRAM.  It appears this bug has been long standing, since
https://github.com/samtools/htslib/commit/2402fc00fe1f2360cd9056173045f65bc0b683dc,
but was not detected due to the tests finding the reference via a UR:
@SQ tag instead.

Also amended the CRAM referencing handling code to handle bgzf at the
same time.  Ideally we would rip out a lot more code from cram_io.c
and replace it with more calls to faidx.c instead, but that can be the
subject of another update.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9e844e0be26875d29b6e2c853c2b4d02c4f1faa4">9e844e0b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-29T17:10:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix bug spotted by valgrind when running "./test_view -D
ce#unmap.tmp.cram".

Normally the header is nul terminated, but in this case the header is
zero bytes long, leading to malloc(0) and a later strlen() of that
block.  We now forcibly always allocate +1 byte and nul terminate the
buffer, avoiding the issue and better coping with a potential cram
corruption too.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7a13d8324c64e00c8ef24f38126021e3968e402e">7a13d832</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-29T17:13:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed an error found via valgrind of test_view -D c1#pad1.tmp.cram.

The extra_len field for bam_construct_seq didn't include the +1 for
nul terminating the aux string.  I am unsure why this didn't crop up
in other files.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dd08ee0a3887c5d8576f6b8866453e4d30bed363">dd08ee0a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-10-30T10:08:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reverting 9e844e0be26875d29b6e2c853c2b4d02c4f1faa4 and rewriting in a
better manner.

Passing +1 to the extra_length in bam_construct_seq causes the length
of data in the bam structure to be +1, and then causes bam decoding to
have issues in some cases.

The correct solution made here is simply to remove the nul terminating
of the auxiliary block.  It's a hang-over from the io_lib days and
isn't necessary.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/244dde883022b1cd8842b1fae823475f6675bc36">244dde88</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-10-30T10:14:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">tbx: Detect faulty tbi files
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b7f74f420bf325d34eaab7cc9971131666883b5f">b7f74f42</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-11-03T12:05:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge origin/develop, replacing htsFile.type by .format

Use the followups mentioned in abd1efb rather than the alternatives
via htsFile.type -- in particular, retain is_cram for the sake of
libhts.so binary compatibility.  The -i option added to tabix now
duplicates htsfile functionality, and can be removed in due course.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/845c515373b7b7992477c0d604d997aaa43108f3">845c5153</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-11-03T16:10:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Parse SAM aux 'i' values > 2^31 correctly

BAM can represent 'i' values from -2^31 and 'I' values up to 2^32-1.
Especially on machines where long is 32 bits, we need to consider
positive and negative values carefully and separately to parse this
whole range correctly.

Addresses samtools/hts-specs#36 -- even if the spec doesn't require
this (which may soon change), as a quality of implementation issue
htslib should support the same range in SAM and BAM.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/07c94ecb144f6fb147b9800f6c171436d6598836">07c94ecb</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-11-06T14:54:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Sped up cram_index_load some 200 fold by replacing sscanf with our own
number decoding.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b96a302071ae05c1cf3e58a897d0e7f5d994ac58">b96a3020</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-11-06T15:25:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed an incorrect EOF-style case when seeking multiple times.

When asking to fetch data for a specific chr:range, if the current
container entirely fits within the range but the next container is
outside the range then it sets the fd->ooc (out of containers) flag to
prevent subsequent containers from being decoded, to mark the end of
the sub-query.

However this then causes a subsequent cram_seek to also fail as the
ooc flag is still set. We now clear this on every new seek.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4d13ff04fa0aef0c7666ffa239ddfc973d3a0dcf">4d13ff04</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-11-06T15:28:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix of memmove bug in bcf_remove_filter()
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4aa494f6acf5c059ed65de58998b6d4ac31b8807">4aa494f6</a></strong>
<div>
<span>by reinders</span>
<i>at 2014-11-06T20:49:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Buffer overflow error in synced_bcf_reader.c

clearly, out is being accessed at location nout, so it should be at least size nout+1.</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c4043c5fe9c5baed4c5ec07fc0a52853ec60efdd">c4043c5f</a></strong>
<div>
<span>by pd3</span>
<i>at 2014-11-07T09:24:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #142 from reinders/patch-1

Buffer overflow error in synced_bcf_reader.c</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bd6f52aba9e9dde1ee49d5c2cd0edd8059b4f89c">bd6f52ab</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-11-07T14:25:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix compilation when ALLOW_UAC is not defined
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7838da8ee527f69b3f5a3461d860c2cebc5bb3c0">7838da8e</a></strong>
<div>
<span>by David Roazen</span>
<i>at 2014-11-07T17:47:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_sr_add_reader(): do not increment nreaders or perform any reallocs upon file open errors

This avoids a segfault if bcf_sr_destroy() is called after bcf_sr_add_reader()
when a file couldn't be opened.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/54618dd81c34397ed1a0ac0e7b8ea18007506a0b">54618dd8</a></strong>
<div>
<span>by pd3</span>
<i>at 2014-11-10T09:08:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #144 from broadinstitute/broad_bcf_sr_add_reader_segfault_fix

bcf_sr_add_reader(): do not increment nreaders or perform any reallocs upon file open errors</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ee7343edb9c0c4d34fe2155c48bb6b98a6bab173">ee7343ed</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-11-10T09:14:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_sr_get_header() macro for accessing the synced readers' headers
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/29305dd83380039180609bf5f3b26327d4992b40">29305dd8</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-11-10T10:43:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add IDX to hdr tags of different type, fixes issue https://github.com/samtools/bcftools/issues/141
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/83a4e30d7e9d403ee7c23b5f9447608218e9c236">83a4e30d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-11-11T16:44:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Amended/removed comments about scram_* API.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/089c900a4d0b3664c7270525ae88b6312e20f986">089c900a</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-11-13T11:57:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge short read() bug fix from upstream

See attractivechaos/klib@8d8d1a19f0c69b53d5ed8d9f6592dfa4b91c23f3
and lh3/seqtk#43.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3c4f33a705c48fb37d1954aaca84ce9eafe867a4">3c4f33a7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-11-13T14:46:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix ks_getuntil2() extra empty record at EOF bug

When the stream is an exact multiple of the buffer size, ks_getuntil2()
was returning a final empty record when it should have returned -1.
Fixed by moving the "EOF => return -1" check to after the read loop.

Fixes samtools/samtools#318.  See upstream PR attractivechaos/klib#39.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d8c03cf8f976ce230cd2d7dc80f9e1fde9789cd1">d8c03cf8</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-11-17T16:48:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_hdr_subset: Return NULL on duplicate sample names
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8916744b41b7477ab9fa41655ca48142c232db5a">8916744b</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-11-18T12:31:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Sanity check to detect broken GT fields in bcf_calc_ac()
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9a88137bb6d7e25e82c3cd64a0a54433585a2e4e">9a88137b</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-11-18T14:30:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add seq_nt16_int[], equivalent to the old API's bam_nt16_nt4_table[]

Also improve descriptions of the usage of all three tables.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bf7e0ecf896697e5945dd2234e11093eb76a1b29">bf7e0ecf</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-11-27T08:54:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_*hrec* functions: check for existing/multiple IDX keys
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4770a41055de6cea89eecd573b0c3045fa409438">4770a410</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-11-27T11:40:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed the generation of read names to use record_counter properly,
counting from 1, rather than slice:record-in-slice.

Also changed the record_counter to be 64-bit for CRAM v3.0 (change
under discussion). (I believe this to be invisible within the file
format though as itf8 0-2billion encode using the same binary values
as ltf8 0-2billion.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/876bfe4b4311d8e4ae25bc53809b0735d9c13a40">876bfe4b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-11-28T10:16:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replaced sprintf with a home-brew append_uint64 function.  This is a
sizeable speed increase to the read name auto-generation code.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/89bfcc4a49e883daa3151f46a7073fa8d03168f3">89bfcc4a</a></strong>
<div>
<span>by Martin O. Pollard</span>
<i>at 2014-11-28T11:44:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix comment in sam.h

Fix reference to bam1_seq to be bam_get_seq.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/32a43b27ceac1eb7ddfb15fd2bf9fea88125bb8d">32a43b27</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-11-28T14:42:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: skip empty INFO tags ";;". (Error might be more appropriate?)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8d921a5cd6d7f873911fe9a89818c7079badbf79">8d921a5c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-11-28T15:03:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Account for read buffering in hseek(SEEK_CUR)

These relative offsets need to be converted to be relative to the
backend's stream position, which is different due to buffering.
It could be done when writing too, as begin==end after flush_buffer(),
but it seems clearer to convert only when reading.  Fixes #152.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/57462fb729fd467cbfa43f4bccf67a0cdbc47496">57462fb7</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-11-28T15:08:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor improvement to binary searching in CRAM indices.

Sometimes it could pick a slice one before the optimal case, causing
one additional slice header to be fetched and decoded.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9da961af57b855650094a4c83e15d7a243470b72">9da961af</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-12-02T11:39:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_hdr_combine: Complain when trying to merge different types
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7a0fdf4e5c9322efb4ae02c4b8f19bff07d59c31">7a0fdf4e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-12-02T15:53:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Sanity-check tid in hts_itr_query()

e.g. if the headers given to hts_itr_querys() have more reference
sequences than the index, we'd rather return failure than crash here.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/10ed34e71197a9a8ffd9861f8dcaf915c586aa50">10ed34e7</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-12-03T11:18:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_calc_ac: Check for incorrect AC/AN counts
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cef706f6bd1d79f11343395a856281e481faeb68">cef706f6</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-12-03T22:32:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf_parse_format: Throw an error on extra FORMAT fields
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dfd67733e18c3f511694ec3ea7e35ef1bd116bbb">dfd67733</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-12-05T10:54:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: Propagate hdr_add_sample() error
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5e76b1ce4d644359cbc7c287e6c71f8e98c88ea8">5e76b1ce</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-12-08T20:48:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix alleles trimming with format Number=R/A/G tags

Resolves https://github.com/samtools/bcftools/issues/173
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/948a68c8bbdd632f055e5fa15e3675f11dc7cc24">948a68c8</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-12-09T17:21:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed spurious messages about missing EOF blocks in CRAM when
dealing with older versions of the file format.  It worries users to
see messages about lack of an EOF block (although technically true)
when reading v2.0 or earlier CRAM files.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ce1a547f0e01d32fbffb62efbcca51c6ddc77d34">ce1a547f</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-12-11T17:45:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Parse regions without begin/end as 1..MAX_INT rather than 1..2^29

Indexing now works with large chromosomes (longer than 2^29) both when
coordinates are specified ("foo:1000-600,000,000") and when they are
defaulted to the whole chromosome ("foo").

For hts_itr_querys("."), HTS_IDX_START ignores begin/end, so pass these
as 0,0 rather than a misleading 1<<29.

/<< *29/ no longer appears in the htslib source code.

Fixes part 2 of samtools/samtools#241.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e5a964e2e1e53349f62992df9b7fba818ca9b63c">e5a964e2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-12-12T13:30:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update khash.h from upstream sources

Updated to attractivechaos/klib@7163c2137856c22bebce87fd8f68a37fbb84a430
and its parents, in particular fixing new_flags memory leaks (cf #138).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/20238f354894775ed22156cdd077bc0d544fa933">20238f35</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-12-12T14:07:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix various simple memory leaks (cf #138)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fe88482d91c11470da9ab12ee34630aeb83e5439">fe88482d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2014-12-12T15:17:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added in the compressed length field to the rANS codec header.

Technically this isn't needed, but it adds a very small extra amount
of space and it allows for the internal rANS codec to be the same
format as an external block-based rANS codec, or to allow the rANS
codec internally to compress very large buffers using a smaller block
size.

This now brings this code into line with the Java cramtools
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ef59ef2d6425985732d41bf7389df569a2a14c0a">ef59ef2d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2014-12-15T14:04:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Deobfuscate memory allocations etc via sizeof()
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6ee481f2905a857bbfc641cdd4685237573bc559">6ee481f2</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-12-16T13:48:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf headers: Allow contig lines without length attribute. Resolves #155
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/547a3495d090096fcd97d615feb8d8421ee34b7b">547a3495</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-12-18T08:41:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">tabix: Remove bcf and bam from presets,

both formats are autodected, thus it is not necessary.
Resolves #158
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/21fbc8bed7cced0d609c6f65002649d3206318e6">21fbc8be</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-12-19T16:11:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: Abort on duplicate sample names, resolves #184
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ed3efe902d11a65a2f782bf40051e6cf06942fc3">ed3efe90</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2014-12-19T22:07:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New -R/-T options to tabix.

This requires caching of coordinates by hts_itr_next;
extended regidx API
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f3e1602196bbf03f426dfb363a4841932a042194">f3e16021</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-01-05T09:45:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix a typo, VCF contig length should be stored.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dcffda58fdd3af1469d2aaf27e9239cc158d0c94">dcffda58</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-05T12:42:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Two changes to cram_encode_container() related to efficient encoding
of name-sorted data.

Firstly, if we have multiple reference sequences packed into one
container, only pre-populate the relevant fd->refs[] array entries if
we're doing reference based encoding.

Secondly, a bug in this same code was that we pre-cached without
incrementing the reference count (but did decrement it at the end of
the function).  The practical upshot of this is that the reference
count added due to fd->shared_ref (enabled when doing multi-ref
slices) was decremented and consequentially caused reference sequences
to be reloaded every container instead of cached between them.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ca6f60e1f6a03ac20082069f251fc84df7bb7db4">ca6f60e1</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-05T15:11:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a memory leak when destroying a BYTE_ARRAY_LEN encoder.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f7caefc2d40c8b87cbea0b4e3b5f57784e00e5b7">f7caefc2</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-05T15:12:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a small memory leak where we didn't deallocate a cram_block that
we had created but later culled due to containing zero bytes.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cba1bf094d518e92b45d29f9c46115ccd7f940ab">cba1bf09</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-05T15:12:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed memory leak when trying to O1 compress a block <= 4 bytes long.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8ad2912678d08c5ba45eaaa9a7423dbd5b9bf6f8">8ad29126</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-05T17:08:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make the multi_seq parameter default to auto.  This is the default in
Scramble, but oddly not the default in the code (so scramble always
reset it from 0 to -1).

The effect of this is to allow the CRAM containers to switch from one
ref per container to multiple refs per container if it spots unsorted
data or lots of rarely used references.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2b31b7d880ae34ae4030d76b76bb062b8a2c34d2">2b31b7d8</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-06T14:19:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More ref and memory management fixes.

Fixed a logic error in the cram_ref_decr_locked function. It
shouldn'tset r->last_id to -1 ever, as with containers large enough to
fit the entire reference this caused it to end up alternating between
free and non-free of reference.

The set of -1 in cram_ref_incr_locked was already sufficient to
prevent repeated incr#1/decr#1/incr#1/decr#1 from freeing and
reloading.

Also only now create c->refs_used when multi_seq is enabled. This
prevents excess incr/decr calls.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ab238981b3483b4a677285545c26cb341bcc0c0d">ab238981</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-06T17:13:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reverted the cram_encode_container change to call cram_ref_incr and
added a ref incr in cram_get_ref instead. This better fixes the issue
of sharing references between containers, fixing decoding as well as
encoding.

Also prevented encoding from creating c->refs_used when multi_seq
isn't set.

Fixed ref count leak in cram_encode_container caused by not
decrementing the final sequence we ended up processing. (It has a
decr/incr loop every time we switch from one seq to the next, to cope
with packed chr-pos-sorted slices.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/11a33a611c72410e1f1aee4d7cc6a6fd5571a2a7">11a33a61</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-07T09:33:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #160 from jkbonfield/fix_unsorted_cram

Misc CRAM fixes (mainly unsorted data)</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5f7a4eab3f122a964e431f3dd047622ea7d98f4b">5f7a4eab</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-08T17:06:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a bogus warning about using 'cp' before initialised. (Bogus as
it's promptly reassigned again, so tidied up the code.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/25e8fac677c7f426f9157451995cffd05d2a766f">25e8fac6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-08T17:59:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor change to allow REQUIRED_FIELDS option to be specified in hex or
octal.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dd709640f67948906d1112aacfe416fe6b59dc29">dd709640</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-08T18:00:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Overhauled the cram_dependent_data_series function and associated
code.

Previously it contained

    if (hdr->data_series & CRAM_SEQ) hdr->data_series |= CRAM_CIGAR

but this is too permissive as it means even something like CRAM_BF (in
the CRAM_SEQ expansion) would cause all over members of CRAM_SEQ to be
brought in when they are not strictly needed by the code path.

Instead these have been replaced by more explicit dependencies,
analysed from the source code. This has been tested by producing
CRAM files with random mixing of data series and then explicitly
requesting single columns vs all columns to compare the results.

In doing so found and fixed a few other long standing data-series bugs
too, such as a dependence on CRAM_BF for more fields that it would
appear obviously necessary.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9b1cb948e78a51b93473fc1dbd5e05a9c5fddf8b">9b1cb948</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-16T10:33:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid aux.* filenames, which are invalid on Windows

Windows believes paths like aux.* refer to its AUX device and refuses
to create files with such names.  Hat tip Clare Venney.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/376870778c8f07b9b1a85ef4bf303bf0f56e3871">37687077</a></strong>
<div>
<span>by Matt Shirley</span>
<i>at 2015-01-20T14:25:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update faidx.h

Just a small misspelling the the `fai_destroy` docs.</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0ccc935a3f638600ba0ba39f0c568b999c8bfa65">0ccc935a</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-21T09:47:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add iRODS hFILE backend

Initial version, as per October 2013 feature branch.  The code is only
lightly tested, but hopefully feature complete.

Not yet activated in hfile.c or added to the Makefile.
This awaits a configure script and probably --enable-irods and/or
--with-irods=IRODS_HOME configure options.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8bc776da583e37baa57fa0a81287a302f4acf9e3">8bc776da</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-21T10:04:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add MIT/Expat license boilerplate
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/772ba54000b33ece0b823a1e2f446f34112d286d">772ba540</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-01-21T15:19:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow scientific notation when specifying regions,

for example 20:30000000-32000000 can be now given also as 20:3e7-3.2e7.
Replaced atoi parameter parsing with strtol to recognised user errors.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3ac7d00167c10ddb5809f3d1e5236c84b7bef2d4">3ac7d001</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-26T11:43:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add configure.ac script

Use autoconf to generate a configure script.  Checks that zlib development
files are available, and emits a hopefully informative error if not.

The inclusion of config.mk is carefully placed so that it can add to
prerequisites as appropriate when later --enable-xxx/--with-yyy options
need to add extra libhts objects and rules.

Rewrite INSTALL to describe configure usage.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e13b6901000190559a28ee2606c42a275c6aa58a">e13b6901</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-26T12:26:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixes imported from Staden io_lib revisions 3792/3795.

Bug fix the TLEN decoding sign.  It wasn't correctly handling the case
when two reads start at the same coordinate.

Overhauled the pnext/tlen/flags for detached reads.

Now when we find a second (or more) copy of a read within a slice, we
do not automatically mark is as non-detached.  We check whether the
derived fields match those found in the file and if not we emit a
"detached" read causing these fields to be written verbatim.  We also
do this if the data is supplementary, as the meaning of that flag is
poorly defined.

This is particularly useful on bwa-mem output where there is currently
a disparity between bwa and io_lib on the interpretation of
supplementary/primary.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2ac7a8263014a8cf56d54e409d556ee1fb58d1f7">2ac7a826</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-26T15:37:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add notes for building from a Git repository
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c360ce47a68b4c3f84a14f5b1bc39f302f622114">c360ce47</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-27T10:28:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Enforce the use of a local cache (use home dir if not defined)
whenever we automatically fall back to using the EBI reference
sequence server.

It is still possible for a user to manually set REF_PATH to the EBI
while not manually setting REF_CACHE, but in such situations the user
is taking responsibility for manual control.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/77cdbec6b7bdff3463250cef3fdfc15f419ebfce">77cdbec6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-27T13:57:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use TMPDIR and if not set TEMP (common on Windows) environment
variables as the location of temporary files, in preference to a hard
coded /tmp.

Also changed the home directory path from .cram_cache to
.cache/genome-ref, as per linux base-directory standards.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0c74c7544099c25a40ca22332131f00793ade02a">0c74c754</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-27T14:14:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Stylistic code change: !*ptr vs *ptr=='\0'.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8c80202af6f8b5a1d75bfc28bded5153ae69adcc">8c80202a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-27T16:51:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Additional comments.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/83f1dbc7590600776daec2d75b546ebb2a5b0595">83f1dbc7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-27T17:00:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge iRODS hFILE backend

This merge commit adds --with-irods[=DIR] support in configure.ac
and config.mk.in.

Addresses PR #146 with the exception of test harness iRODS support.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7bd8c08fd93de1afe508683104c4df1ab5c37bdf">7bd8c08f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-28T09:36:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #161 from jkbonfield/cram_dependent_data_series

Improved the data-series interdependence analysis</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ef3bd19435f98b1081d39c611cd4a45c7a203a0a">ef3bd194</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-28T11:50:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Document ./configure --with-irods
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/91a471d8feb8268cab32f37d38645c9f13cce1c3">91a471d8</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-28T14:13:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed unnecessary FAI building.

Bug fix a98d88fd423ef0b52c69100315ca93e0073f5911 added, amongst other
things, code to build the FAI file with the incorrect assumption that
this is only done when the file does not already exist.  It now
performs this check itself.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/97a79332d2f8089507b9f32aa31d5b95e72fad00">97a79332</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-28T14:14:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix to refs_from_header().

The patch to hts_set_fai_filename() caused a new failure mode in this
function. If given a .fai file with sequence records that are not in
the same order as the @SQ lines in a SAM header, the code to parse the
@SQ header and potentially add new records that aren't in the original
.fai file was failing, returning -1.

We now do a better job of merging the references together.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0ad99655e4f399bb876917802604681ede4e1cdb">0ad99655</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-28T14:20:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add hisremote(), and convert faidx.c from knet to hFILE

Now that we have another remote hFILE backend (hfile_irods.c), we need
an hisremote() helper to test whether a file is remote and would benefit
from caching locally, rather than just using /^http|^ftp/.  For now
hisremote() is a simple check for several known schemes, but eventually
it should become another entry point within the hFILE backend.

Use hisremote() in hts.c and faidx.c's index file downloading/caching.

Rewrite faidx.c's download_and_open() using hFILE, so that it works with
other remote protocols.  _USE_KNETFILE no longer appears in HTSlib, and
config.h is used only by bgzf.c.

See also babaaf3381719904d328a7624c3d17de78633347 which converted
hts.c's similar index downloading to hFILE.

(Addresses one small aspect of PR #164.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cf4811a69182792b4267c21ec710e0af0d6920eb">cf4811a6</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-28T17:14:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Set resource when writing to iRODS

(Fixes part of #168.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/519e0e76f96b0857d004934f25749066e2318ce2">519e0e76</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-29T10:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add htsfile(1) man page
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b2cfe4e8e5faebdebd2891cdd2445bacabd9f891">b2cfe4e8</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-29T10:48:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove tabix -i, which duplicates htsfile functionality

See b7f74f420bf325d34eaab7cc9971131666883b5f.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/61a79f11ef81fef3a953202ba137d6b27a49ca25">61a79f11</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-01-29T14:30:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Better index bugfix

Fixes samtools/samtools#341, index crashed for unmapped (via flags
and tid = -1) records with filled-in CIGAR.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/22442633b8ffdebf0c2dfa606b9730c2f5599765">22442633</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-30T09:49:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Detect file format versions in hts_detect_format()

Adds version fields to htsFormat and removes bcfv1 from htsExactFormat
(even though it's really a separate format, this way is less confusing).
As htsExactFormat and htsFormat have not yet appeared in an HTSlib release,
changing these types' layout now is not a compatibility problem.  But soon
it will be, so also adds compression_level and [format-]specific fields, to
be used by an upcoming hopen(filename, "w", &format) open-for-write call.

hts_format_description() now builds a more accurate description string
based on all the format fields.  The string it returns must now be freed
by the caller -- cf htsfile.c, to which we also add --version and fix -?.

(Addresses #149, include compression info in htsfile description output.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0ec1bb14a3a90ff0cdf46244566d12308017314d">0ec1bb14</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-30T09:52:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Temporarily avoid rcDataObjFsync() [workaround]

Work around #168 (rcDataObjFsync() always fails and seems unnecessary
anyway) while we figure out what's going on here.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3ec78c15ec33da8c9c4d449d40322e1c769d9bda">3ec78c15</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-30T10:27:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improved the CRAM stats array usage.

Read-pair detection during encoding now has a saner view, with
better commenting, of the hoops to go through to keep the cram_stats
arrays up to date.  A few bugs were detected here, potentially leading
to suboptimal Huffman trees, by instrumenting the ->encode() calls
and comparing them to cram_dump_stats() outputs.

Passes tests, real world data files and struggled to find manually
constructed torture cases that cause it to fail.  It's still hairy and
complex though!
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/92a01290347bc2fc0c2da9e354ddcff21043f272">92a01290</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-30T10:30:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge CRAM TLEN updates (PR #165)

Fixes imported from Staden io_lib revisions 3792/3795.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/32b534fa0c31f6dd6c6777d380e81d0ee8ceacac">32b534fa</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-01-30T11:13:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added support for XDG_CACHE_HOME.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1493ea07c99d0811cd7e25f7a02da2b3ca73035c">1493ea07</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-30T12:01:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid hiding under .cache in temp directories

If we end up falling back to $TMPDIR/$TEMP/tmp, the cache directory
should be visible as $TMPDIR/hts-ref rather than under a hidden
directory in $TMPDIR/.cache/hts-ref.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6c6f02e5774014de2f67234cae591afdf6cce4ce">6c6f02e5</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-30T12:07:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge default local reference cache (PR #166)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/af9768db12647fa712d9dcc0c0743a49f5ef3424">af9768db</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-30T13:21:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rationalise include guard macro name

See also dde9bdbe4174728f99d1bbe7326ffd631539bef6.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9ecdaaec43817abe7a452dac687b5c2f169cf165">9ecdaaec</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-30T13:28:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Move remainder of config.h to bgzf.c and remove it

The remaining configuration #defines in config.h are used only in
bgzf.c, so move them there where they can be switched on/off in place.

Now that we have a configure script, having an unrelated config.h
could have led to confusion.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/38d93e22b78de5f64ea6dca2333ee86265e3bc09">38d93e22</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-30T14:52:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reinstate faidx_fetch_nseq() alongside faidx_nseq()

(See #156 for background).  To re-establish compile-time and binary
compatibility, reinstate both functions -- they're trivial anyway.

At our leisure, we can deprecate and remove the faidx_fetch_nseq()
declaration, and eventually remove the implementation too (probably
when we bump the soversion).

Add trivial test case that just exercises both functions.

Fixes #156.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/38b537435a917ee262c92bdfc49c0887eb850c9b">38b53743</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-01-30T15:12:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Formatting fix for HTML man page
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/09d86177502551fc76ae8013be86c769e0df7fd9">09d86177</a></strong>
<div>
<span>by Martin O. Pollard</span>
<i>at 2015-02-02T12:50:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add macro for deprecating old APIs

Add the HTS_DEPRECATED macro to mark APIs that are going to be removed.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/139317e2830b8edf530983c5374866b55f203a05">139317e2</a></strong>
<div>
<span>by Martin O. Pollard</span>
<i>at 2015-02-02T12:50:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Deprecate faidx_fetch_nseq in favour of faidx_nseq
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3839b529b008013299801ed9f24a45c297516475">3839b529</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-02T13:36:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add hts_parse_decimal() to parse scientific notation as int

Add a function encapsulating parsing either integer or scientific
notation and returning int.  This allows integer items such as regions
to be given in scientific notation if desired, while ensuring that when
given as integers they are unequivocally parsed accurately as integers.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bff5efb85c581efc42d9f3483aa919161906ad0a">bff5efb8</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-02T14:52:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Release 1.2: various bug fixes, htsfile utility, CRAM improvements, etc
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b0742b0b3a816c40b4bbdf2da13952c70506159d">b0742b0b</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-02T16:16:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge version number bump and NEWS file from master
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d963c7d85416305ab6de851c3be94ed08fd72e97">d963c7d8</a></strong>
<div>
<span>by Martin O. Pollard</span>
<i>at 2015-02-02T17:38:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add c++ name mangling protection where it's missing

regidx.h
vcf_sweep.h
vcfutils.h

are missing their:

#ifdef __cplusplus
extern C {
#endif
// functions
#ifdef __cplusplus
}
#endif

Anti-name mangling measures. Also vcf.h has some of the inline functions outside the extern C bracers.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/849ac47e74484b8889067288b866902c1796fd82">849ac47e</a></strong>
<div>
<span>by pd3</span>
<i>at 2015-02-03T08:06:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #173 from mp15/cpp_mangling

Add c++ name mangling protection where it's missing</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5d93cf1733079674a190b11ecec7fd25e0eba54c">5d93cf17</a></strong>
<div>
<span>by pd3</span>
<i>at 2015-02-03T08:07:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #170 from mp15/deprecation

Add support for deprecation and deprecate old faidx_nseq API</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7ebc5ae7dc5e37f62e38526e7803e0fa51c06e8e">7ebc5ae7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-03T15:37:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reinstate deprecated hts_file_type() and FT_*

Reinstate hts_file_type() for ABI compatibility with htslib 1.1 and
previous.  Reinstate FT_* macros for source compatibility.  Both are
deprecated and will be removed in a future HTSlib release; calling code
should migrate to hts_detect_format() and friends instead.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/26229a368e3045a827f04fc03f3879e25f110ba3">26229a36</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-03T16:22:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Release 1.2.1: patch release over 1.2, reinstating hts_file_type()
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/94d13ce0d780780140c913459a5f7ad2e0d680a0">94d13ce0</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-04T09:54:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge hts_file_type() patch release from master
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a233385648d1b7f2490106a5b6e09c0baa53abd4">a2333856</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-09T13:52:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GCC added __deprecated__(message) in version 4.5

Fix breakage with GCC versions 3.1 to 4.4.x, which only implemented
__attribute__((__deprecated__)) without any message parameter.

Introduce macros to aid in these compiler version checks.

For GCC, use HTS_GCC_AT_LEAST(3,0) as an approximation of since forever;
releases before that (2001) are old enough to be considered pre-history.

Clang has had __has_attribute() since release 2.9; versions prior to that
are old enough (2010 or before) that losing these annotations there is
acceptable.  Clang's __deprecated__ attribute has taken a parameter since
at least that release.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/90525e00acb218a6b047eff08473c92f2ef3ec6e">90525e00</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-10T15:47:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add $(htslib_kfoo_h) make variables for htslib/k* headers

These variables are needed after all, so that they can be empty
when samtools (or other third-party software) is compiled against
an installed system htslib rather than a development htslib.

Also it is no longer true that they don't include other files; see
for example khash_str2int.h.

Building HTSlib always uses its own headers, so this Makefile doesn't
itself need to use $(htslib_k*_h) variables for the first reason.
However the second reason still applies, so change them all in case
any other k*.h headers acquire #includes of other headers.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d1eef2850be5ae2b65b380152aa46c64509dc820">d1eef285</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-11T11:45:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix dependencies

Added htslib/faidx.h prereq missed by 139317e2830b8edf530983c5374866b55f203a05
Added vcf.c prereq missed by d8c03cf8f976ce230cd2d7dc80f9e1fde9789cd1
Added cram_io.c prereqs missed by a98d88fd423ef0b52c69100315ca93e0073f5911
Added tabix.c prereq missed by ed3efe902d11a65a2f782bf40051e6cf06942fc3
Added test-vcf-api.c prereq missed by b0df3d153e6eb12a1188208e54b8a0a2dd3fadba

Fix test/test-regidx.o alphabetisation.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0ec5202de5691b27917ce828a9d24c9c729a9b81">0ec5202d</a></strong>
<div>
<span>by Nathan Weeks</span>
<i>at 2015-02-11T17:00:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Include unistd.h & exec bash instead of /bin/bash

Explicitly include unistd.h in cram_io.c, as it declares several
(fsync(), getcwd(), and access()) and the symbolic constant R_OK, and
may not be included by any of the other included headers in cram_io.c.

In test.pl, use exec('bash', ...) instead of exec('/bin/bash', ...), as
bash isn't guaranteed to be in /bin/ on all platforms (e.g., FreeBSD),
or the user may want to specify a different version of bash via their
PATH environment variable.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e5a01245872d96f6d47fbd1a39b455ef2ac80c6f">e5a01245</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-12T15:26:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hard clips no longer add to the number of mismatches for the NM tag.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/11cee578b9cba8ea0eacb7b936cd1843fd2b8a65">11cee578</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-13T11:34:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed .crai loading of local irods:... caches.

For .bai files on remote protocols we download the .bai locally and
use the local copy.

The previous .crai implementation just used hopen so it opened the
remote end and never cached it.  We now follow the same procedure used
in hts_idx_load for bai.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/83190e9076ac8ce0ec51de2688a8845844df2ad3">83190e90</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-13T15:29:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a function to compare @SQ headers against the .fai file.

If the @SQ lines differ in length, then use the .fai ones in
preference as it is the actual .fa file which we use for performing
delta encoding. This avoids reading off the end of buffers.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1f3ef0ae24bca8116b85adb8e584f1e497786687">1f3ef0ae</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-13T15:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Consist with calmd for undefined MD/NM tag behaviour.

MD and NM tags now handle the cases where edits are off the end of
a reference.  SAM is undefined in this situation, but these should be
operating in the same manner as samtools calmd.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/477e31e0c5064dc1de149201ce03c4101d619c50">477e31e0</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-17T15:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Moved hts_idx_getfn() into a newly created hts_internal.h.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/24e0337ceab663dd4480756902357cae2f7e6504">24e0337c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-17T16:53:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed additional prototype gaff.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/694ff3f26dab487d82abc01b2a0bb7289d4bd35a">694ff3f2</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-17T17:31:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed Makefile dependencies for hts_internal.h.

Also added include of it into hts.c so it sanity checks its own
external prototype.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b84734937560d50c221ad6f3ec3c2fceaaab87b2">b8473493</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-18T10:26:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removal of now-defunct commented out code.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/38b5cfd5c84e77351063d967d71425f3c561954a">38b5cfd5</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-18T10:27:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed faked up @SQ headers.

For the sake of brevity, the reference sequences have been truncated
in the test data.  The newer cram_io code now spots the disparity
between the .fai file and the @SQ header, issuing a warning.  The
tests worked, but this change removes the unnecessary warnings.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a8f2afe6830d19e3ba9cbef566325696a06b4f00">a8f2afe6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-18T14:43:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Moved the cram/md5.[ch] code up a level to the public API and renamed it.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/18ac533ed7c02994d6b5692d9607bb5d47b4898b">18ac533e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-23T12:26:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Switched to using sam_* functions over bam_* functions so that index
querying works on CRAM files too.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cc02b2e75e3fbda306c8a08e0fbf06348ad3665d">cc02b2e7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-23T15:01:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge fix to caching of remote .crai indices (PR #178)

Fixes #176.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/73e0eb7fc91d54b555b222fc86436e4bb50f3f0e">73e0eb7f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-23T17:54:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Changed the htslib MD5 interface.

The hts_md5_init function now returns a pointer to an md5 context,
which must be freed with hts_md5_destroy.  Various other utility
functions have been added at the same time to keep things efficient.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b255985f020a4f92b8ef3f5132a481fcba3829f8">b255985f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-24T09:39:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed cram header-ref parsing.

Silly i vs j bug, but only causing issues when the .fai file
mismatches the SAM headers so not detected earlier.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/47a2046aafa848354706a3f03b41089eed5a5fe2">47a2046a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-02-24T10:08:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added error checking for failed "-t file" option.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/889ee0114656bdfad43c8447b63d896f7a6f2328">889ee011</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-26T09:15:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Configure fixes

Propagate @CPPFLAGS@ from configure.  Hat tip @ghuls, fixes #183.
Now all 5 current "influential environment variables" are propagated.

Rebuild affected objects if configure is re-run.  Hat tip @jrandall.
The alternative is '$(LIBHTS_OBJS) $(EVERY_OBJ_THERE_IS): config.mk',
but that seems annoying if you made only localised option changes.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c5521eea0fa29d4ad704972298664d7fa73e983b">c5521eea</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-02-26T16:50:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tidy up header #ifdef __cplusplus / extern "C" wrappers

cram/string_alloc.h had the #ifdef/}/#endif outside the multiple
inclusion #endif, leading to unbalanced-brace syntax errors in C++
on the second and later inclusions.  Fixed; hat tip thorfinn.

Canonically headers should be of the form:

    /* boilerplate comments */
    #ifndef GUARD_H / #define GUARD_H
    #includes
    #ifdef __cplusplus / extern "C" { / #endif
    declarations etc
    #ifdef __cplusplus / } / #endif
    #endif /* GUARD_H */

(See http://stackoverflow.com/a/16087609 and nearby.)  Tidied up headers
to adhere to this form.  Fixes #172.

Added extern "C" wrapper to: hfile_internal.h, hts_internal.h, kfunc.h,
cram_samtools.h (lower than usual due to intermixed type decls/#includes),
pooled_alloc.h, rANS_static.h, thread_pool.h, zfio.h.

Changed multiple extern "C" wrappers to a single one in: hts.h.

Lowered extern "C" to below #includes in: cram_codecs.h, cram_io.h,
cram_structs.h, cram/sam_header.h, string_alloc.h.

Removed extern "C" wrapper from cram.h, which contains only #includes.

Lifted extern "C" to the top of: bgzf.h, faidx.h, regidx.h, sam.h,
synced_bcf_reader.h, tbx.h, vcf.h, vcf_sweep.h; and lowered } to the
bottom of: vcfutils.h.

(Left most htslib/k*.h files as is, as they track upstream klib.
Most contain only #defines and static inline functions, so are probably
correct enough.  Those that have non-inline functions have extern "C"
wrappers around those function declarations.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2ff3610d1f682f2d32f06bbc3802df940aac7a38">2ff3610d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-03-03T14:11:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improvements to handling CRAM slices with multiple references.

For claimed genome sorted data (SO:coorindate), we no longer drop back
into unsorted mode for slices containing multiple reference sequences
with the AP (assembly pos) delta encoding disabled.  This avoids high
memory usage on very small files where a single slice can have
mappings against all chromosomes, and yet is still sorted.

Also avoid excessive mutex locking when processing a slice with mixed
reference IDs. If the record level reference ID doesn't change from
one record to the next, don't attempt to query the new reference.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/57a10151d548ae9f11f1a816e483b1e3dd81265a">57a10151</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-03-06T16:47:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Protection against various CIGAR/seq issues.

1) During encoding, if the cigar string is too long or too short for
the sequence then we produce an error and bail out.

2) During decoding, if the cigar string maps off the end of the
sequence and our sequence was "*" then we now have better bounds
checking when copying from the reference sequence.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fbb9e25cc47f60ef1d034d310b24891414034b4d">fbb9e25c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-03-10T14:36:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix for unmapped reads with "*" sequence.  These were defaulting to a
sequence length of -1 instead of 0 (it's unknown really), causing an
attempt to extract -1 bytes.

Also fixed NM and MD handling for sequence "*".  In this case we
cannot derive it as we have nothing to compare against, so we store
any values verbatim.  The same bug has been fixed for CRAM_OPT_NO_REF
mode.

The change is quite complex as it now also checks which of MD and/or
NM tags are already present (now that we case sometimes omit them
verbatim) in order to avoid creating duplicate tags.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f83dfd233af3459e3b638fcb6379beb4c67b7c10">f83dfd23</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-03-10T15:05:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tests of mapped and unmapped data with "*" sequence.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3af49b48d2b96e02dc744f13826a612baa12f609">3af49b48</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-03-12T17:09:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added mmap support for references.

This greatly reduces memory usage when many jobs are running on the
same machine as the references are then shared between processes.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/be6bd1e92c2d8ddb4f1aef4fcb49466c85a7674d">be6bd1e9</a></strong>
<div>
<span>by Joshua Randall</span>
<i>at 2015-03-15T10:38:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adds handling of corrupted BAMs to bam_index()

bam_index will now fail if bam_read1 returns an error
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0555cd5cda2be3dde09f18b164b91b6b8cceb04a">0555cd5c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-03-16T17:17:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Changed hts_md5_hex args.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3accd1934472e2bdd501404f4c1a2e570f868cd1">3accd193</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-16T17:43:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge addition of MD5 API (PR #180)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/67c074ead6f9323def2d0404648aaba006d07614">67c074ea</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-17T15:16:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Canonicalise md5.c whitespace

Leave the Openwall parts of the file as is (and move the non-Openwall
hts_md5_init() to lower down), for ease of synchronisation with upstream.

Canonicalise the remainder by expanding tabs as spaces.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6f64ca3fa264beaa71c3f469e27fd9c9d5ef3c92">6f64ca3f</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-17T15:22:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Const fixes; define hts_md5_context instead of adding hts_md5_ctx

Add two const fixes, one of which fixes -DHAVE_OPENSSL compilation.

Define the hts_md5_context struct and use it, avoiding lots of casts
and keeping the MD5 code more similar to upstream.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8cb307b22a03bf91c74a44a382b20566506edcab">8cb307b2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-17T15:33:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update md5.c from upstream sources

Updated to Openwall md5.c rev 1.13 tag Owl-3_1-release (previously we
had rev 1.9 tag Owl-3_0-release):

- Help the compiler detect a common subexpression between steps in round 3
- Applied a trivial patch by Werner LEMBERG to make md5.c compile with g++
- Renamed the local variable "free" to "available" [avoiding free(3)]
- Added const qualifiers where appropriate
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8ca328a177f27508bf214da11267d85d52d04c83">8ca328a1</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-17T15:39:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge minor MD5 API fixes
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/56f0640896a25fe12a7a204d1dd548fad7c09107">56f06408</a></strong>
<div>
<span>by Adrian Tan</span>
<i>at 2015-03-17T17:17:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">updated documentation for hts_open for uncompressed bcf.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9affea053daacfa58789b6709415ae0cb4c88157">9affea05</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-19T11:14:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check hts_verbose before printing various VCF warnings

In particular, enables control of the message that led to ga4gh/server#253
and ga4gh/server#255.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5ffc4a200a28c40da7b3d181dd948633f47aa84a">5ffc4a20</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-24T09:45:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevent klib unused function warnings

Recent versions of Clang warn about unused static inline functions
in .c files (though they suppress this warning for such definitions
in header files).  Definitions via KHASH_INIT etc are effectively in
the .c file, and it's impractical to make these inline other than
static inline; so add attributes to suppress these warnings.

See upstream PR attractivechaos/klib#47.

(One warning about ks_getc() remains; htslib's use of kstreams is
a disaster area of clashing types that needs further surgery.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4b4349a60cc18e38ef78ec1344311a6a8f678c22">4b4349a6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-03-27T17:52:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed the broken "special case" in index querying.

The binary search due to the comparisons may yield a value 1 bin too
low when the position asked for precisely matches the start coordinate
of an index bin. The intention of the special case is to correct this,
but it did so without checking whether the current bin returned
actually did overlap the requested range too.

This therefore lead to starting to decode too late into the file,
giving fewer overlapping sequences than desired.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6b403236286db3521c0cbe9711242f505aba0bef">6b403236</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-30T09:45:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow commas in hts_parse_decimal(), simplify hts_parse_reg()

Parse digits by hand in hts_parse_decimal(), allowing integer parsing
of integer or scientific notation possibly with commas (before the decimal
point), and allowing possible future expansion to "3Mbp" and the like.

Add doxygen-style documentation, noting that warnings will be produced
for invalid input.

Rewrite hts_parse_reg() to take advantage of hts_parse_decimal()'s comma
abilities and validation.  Return NULL (instead of suggesting the sequence
name is the whole region string) when the region cannot be parsed.

(Changing the "*beg > *end" test to ">=" fixes the off-by-1 aspect
of samtools/samtools#353; returning NULL provides the opportunity to
improve the error message.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/62e4541d8cbfb4e8250eb42d454e714da9d369d5">62e4541d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-30T10:12:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge hts_parse_numeric() and hts_parse_reg() scientific notation (PR #171)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/767cea0f267eaace9403abd89049258292329cd1">767cea0f</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-30T10:22:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rearrange hts_itr_querys() more comprehensibly [minor]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5f5aa02bfeb3857e8671f12a85787404ef9fa799">5f5aa02b</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-31T16:44:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Set configure #defines via config.h

While using GNU Make target-specific variables to provide configuration
values only where they are needed is superficially attractive, doing so
introduces the risk that they may be accidentally omitted from some object
file that needs them, leading to inconsistencies.

(Compare for example 750f564ef5a65ec70cc7688519af734b05d595bb.)

So it is better to ensure that everything sees the same configuration
values by setting them via a universally-#included config.h header instead.

Add #include <config.h> to all .c source files except test/*.c, which
act as client code, and klib's upstream k*.c source files.  Add config.h
dependencies to these objects in the Makefile.

Add a Makefile rule to generate an empty config.h to preserve the ability
to make without running configure without needing -DHAVE_CONFIG_H command
line noise (hat tip @daviesrob).  We may make running configure required
in future.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4cbbfe90b349c4b707a7d19e66695e9d12472482">4cbbfe90</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-03-31T16:48:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge mmap() support for CRAM reference sequences (PR #187)

Check AC_FUNC_MMAP in configure, but note that this invokes a bunch of
tests for standard headers etc, which is not ideal in 2015.  We use
AC_CHECK_HEADER carefully to avoid it pulling these tests in and perhaps
we can do something similar for AC_FUNC_*.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3524f63ec5fee7bb65dab1e62b67c6a74bc5e38f">3524f63e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-07T10:57:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unneeded system #include

The need for <sys/select.h> disappeared along with is_ready()
in samtools/tabix@33faf18d012d8e6e3ff68b9a348139be54129de8.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7a13faab3703070d2f3a23b49a96fb1caffe56ef">7a13faab</a></strong>
<div>
<span>by Joshua C. Randall</span>
<i>at 2015-04-07T12:56:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">fixes typo in perror

sam_hdr_read -> bam_hdr_read
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f79fc6a740f20ec118b422215ac99c424d9311ab">f79fc6a7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-07T15:21:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge bam_index() corruption detection (PR #189)

Check return value of bam_read1() in bam_index().  Refactored from
@jrandall's proposed code; in particular, avoids printing an error
message from this library routine.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/45c14cc37c65577a75d4043562f832cece38e13f">45c14cc3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-07T15:27:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use malloc(32K) rather than getpagesize()/valloc()

These functions are not portable and have been obsoleted and removed
from POSIX.  (getpagesize() typically returned 4K.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d620a7350995d34ac546c69af4382d59fabc30ba">d620a735</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-08T15:41:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added support for CRAM_FLAG 0x8.

This is an indicator that the sequence started of in life as "*" and
so should be decoded as such.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/40a401b9cb97e69d9b0f851c01f594bf5a498449">40a401b9</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-08T16:32:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tests now use both CRAM v2.1 and v3.0.

Added a supplementary read test. (These worked for our 2.1
implementation, although technically only had formal support in 3.0.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/48e3b2ff0c6dedaf046a7cc0f0081c968b5661f8">48e3b2ff</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-09T10:14:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check CRAM->CRAM conversion works
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4c8fb6661f375690aa8ec85278fba830c302b3bb">4c8fb666</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-09T10:15:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improved error handling for when we have no bases at all due to
cr->len being zero.  This is a specific case triggered by
the torturous xx#minimal.sam.

Also removed an incorrect assertion that sequences with zero length
cigar strings are unmapped.  The specification states cigar of "*"
simply implies the unalignment is unavailable, but it could perhaps
still be mapped. (Eg due to a rough and ready hashing algorithm.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e86391feb2ea5c34c6bb56a1d5e3caf30182cf9e">e86391fe</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-09T14:51:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid -Wundef warnings in compiler detection

Check whether compiler-specific macros exist before testing their
values: undefined macros decay to 0 successfully, but with a warning
when -Wundef is used.  GCC (of course) does not define __clang_major__,
and with -no-gcc icc doesn't define __GNUC__ either.

Hat tip @noporpoise.  Fixes #197.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/93621010219130a547276c64468603e24fea46c4">93621010</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-15T12:42:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Convert relative hseek(SEEK_CUR) offsets to absolute SEEK_SET positions

It turns out to be preferable to convert to SEEK_SET rather than to adjust
the SEEK_CUR offset, as some backends (e.g. the upcoming libcurl backend)
may not track their current physical position and would prefer not to
implement SEEK_CUR.  With this change, we send only SEEK_SET or SEEK_END
to the backend.

Compare glibc's fseek(), which uses lseek(SEEK_SET) for everything except
in unusual circumstances.

(Ideally we'd check for imminent overflow without actually overflowing, but
that's non-trivial in the absence of an OFF_T_MAX or a known file size.)

Refixes #152.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f0aaf9a42719c229d472e3b9240ac512b0b963e0">f0aaf9a4</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-15T13:33:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Handle local "file://" URLs directly

(The upcoming libcurl-based backend uses curl_easy_pause(), which doesn't
work for the "file" scheme.  So implement this scheme directly rather than
risk the libcurl backend claiming it.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/85bbb17ec9093094247eb8ad955880b604cc100a">85bbb17e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-16T09:13:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use -include rather than sinclude [minor]

It appears that an upcoming revision to POSIX will accept -include:
see http://austingroupbugs.net/view.php?id=333
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2c0ea5142db3e917af5234ece3fa2600dc5b9aa6">2c0ea514</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-16T15:38:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add libcurl hFILE backend

This code is a reworking of Heng Li's kurl.c (PR #164) into an hFILE
backend.  Improvements include leaving buffering to the existing
buffering in hfile.c, full error checking, and some bug fixes.

SEEK_CUR is not supported as the current file position is not tracked:
possibly it could be derived from CURLINFO_SIZE_DOWNLOAD and the most
recently-set CURLOPT_RESUME_FROM position, but this is probably more
trouble than it's worth.  (Currently hseek(SEEK_CUR) results in a
backend SEEK_SET, so this is not a limitation.)

The single shared curl.multi might be more trouble than it's worth.
If checking nrunning proves to be unreliable or having a single CURLM
causes multi-threading trouble, we may need to have a CURLM in each
hFILE_libcurl instead.  (If there were a form of CURL_WRITEFUNC_PAUSE
that caused curl_easy_perform() to return early, we wouldn't need to
use the multi interface at all!  However this is unlikely as it's a
significant change to how curl_easy_perform() works.)

Soon to follow: writing; handling of s3://bucket/filepath URLs.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0d0909a2c74946d20f6c1461735f3d7f144aeb1f">0d0909a2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-17T13:21:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement libcurl hFILE backend writing/uploading
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6de7b82dc5675b139d7d2e5928c110b7bd3735f8">6de7b82d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-20T10:13:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rewrite libcurl timeout calculation

A more careful reading of curl_multi_fdset(3) shows that when it returns
maxfd == -1, a short fixed timeout should be used and curl_multi_timeout()
should not be called at all.  (The previous code worked with libcurl 7.22
but with 7.30 resulted in select(2) with no fds and a multi-minute timeout.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/aeb3c0a32fd0aab540bda8728aa20e7436c33b7d">aeb3c0a3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-04-21T08:20:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add another error translation

Not supporting range requests is like seeking on a pipe.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1a2e234e3b8befd150c468ff8bbe95b76790d4db">1a2e234e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-23T16:28:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added C/Java cross-validation script for CRAM.

This isn't yet part of our automated test harness, but it is useful to
have a copy in git for periodic manual checking.  Also improved the
compare_sam.pl with an option for comparing B-type auxiliary tags as
the Java code changes sign and also changes H to B.  I am unsure if
this is valid, but it helps if we can hide the known differences in
order to spot unknown ones.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6185ab748034a2ddff010ab6a2aef94f2fea363e">6185ab74</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-23T16:31:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix to the CRC32 checking for Java/C integration.

The block and container header CRCs check sum variable sized data.
The old method was to decode the structure and then reencode to a
block of memory that we can compute the CRC on.  Unfortunately there
is more than one valid encoding for the same numerical integer value,
and even more unfortunately Java and C implementations differ.  This
gives rise to false CRC failures.

The new code computes the CRC as it goes using the actual bytes being
decoded.  This isn't as quick, but the measured difference in speed is
under 1%.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/35746af65362d13c9d5ea2d99a2991098e0aa097">35746af6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-24T09:13:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a Java/C integration failure.

When c1#bounds.sam is encoded by Java and decoded by C the additional
bases overhanging the end of the reference are encoded using feature
'X' and an assumption that the matching reference is 'N'. (This C code
uses feature BA to store the base directly instead.)

Changed the code here to omit the warnings about going off the end of
the reference and to treat out of bounds reference as N.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7725a7470ed02b3ec7f48ab89d57fb51faaa644b">7725a747</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-28T15:36:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Changed default quality value when unable to decode to 255. This then
gets converted to "*" within BAM format.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ccd0a6b00b4fcc96bdc337a6622302a8cf94fd80">ccd0a6b0</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-29T08:34:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">C/Java validation testing updates.

Reduced the number of exceptions passed into compare_sam.pl so we can
catch more differences.

Expanded the set of test files to be all data rather than a more
restricted subset as we're now approaching agreement.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b8720d00fc8ae32f867a1e5dd1d7ac78fed45459">b8720d00</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-29T11:44:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed buffer overrun in MD tag calculation.

This occurred where the CRAM container/slice header is shorter than
the alignments held within it.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7e59273e5a9351c2748f9907bcb98a9e33c0e193">7e59273e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-29T13:56:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't create MD/NM tags on records with seq "*".

Also added more test cases for checking pileup output (untested here)
and TLEN sign/size checks (spec vs picard).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2be9f9f1cdea3672820c5e486196375df2b466ea">2be9f9f1</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-29T13:58:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed compilation sign warning.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3eb77b8935f9562e42a64c72ee4cc46f0dc27257">3eb77b89</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-29T14:19:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added missing test file. Sorry!
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b79f40a7c84470c5a9ad0f34e04fd8a225ba874a">b79f40a7</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-04-29T14:24:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added missing test file. Sorry!
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4d707943c77585ecf1547f87747e19c5925cd857">4d707943</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-01T16:05:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added ~ files and patch .rej/.orig.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eb357efd51408009945f80169248028c3deda4b4">eb357efd</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-01T16:07:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Moved cram option setting into htslib from test.

Specifically the tools for processing command line arguments are in
htslib now. These were originally in test_view only.

Renamed cram_option to a more general hts_fmt_option so we can use it
for controlling verbosity, number of threads, compression level, etc.
This is still a work in progress as for now it is still only honoured
by the CRAM I/O code.

The main API is via hts_opt_add during CLI parsing, hts_opt_apply to
apply options to a file descriptor and hts_opt_free to deallocate
memory.  Additionally for programmers the hts_open mode string can now
take comma separated options, like "wc" vs "wc,version=3.0,embed_ref".
(I am unsure if this latter bit is worthwhile keeping.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/15c92bfadff5374839502e63721e6e0b4b1d4a07">15c92bfa</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-05-07T14:54:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: New bcf_add_id() function

bcf_add_id() - adds to the ID string checking for duplicates
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/30fb9eee41953958923c56f7ea0af5a5b0376b94">30fb9eee</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-05-07T15:02:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">allow underscore and dot in keys for structured header lines

We were forcing alphanumeric-only characters in the keys for structured
header lines. From the spec, INFO and FORMAT ID keys should match the regex
`^[A-Za-z_][0-9A-Za-z_.]*$`. It is unclear about keys for other
structured header lines, but this would apply the same restictions.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/41f1193845d0f75d92256c56fbf523add0265800">41f11938</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-13T16:56:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added hts_open_opts() and an htsFileOpts struct.

Rejigged the opening code so that we don't have to open a file and
then apply options.  Instead we reuse the htsFormat structure as a way
to control output formats, along with the hts_opt list.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1f626c13d929f618dc4cfe4047c7cb099d8f606f">1f626c13</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-14T11:26:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed requests to output SAM when the default mode is "wb".
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b68937672140bcdb21a3f607fe28e3f5a1417793">b6893767</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-14T11:27:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added htsExactFormatString() to convert enum to string.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/431aafed4dabc336636a148635b9b039bd00fe3d">431aafed</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-15T08:39:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow the nthreads=N option to control BAM encoding threads too.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7a4f7e27b4b63c5828b55b93f761f6e99f52564d">7a4f7e27</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-15T10:40:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a -N INT option to stop decoding after INT reads.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/56f3d78d7d89177acad218394be52cedc98b82c9">56f3d78d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-15T10:40:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added more decoding error detection.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/15a3be522b07c9e5c31fdd523c0d05779a59a4c5">15a3be52</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-15T10:41:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed error handling in CRAM.

A bit of a howler: closing a file when we're not at EOF is not an
error!  We can legitimately open a file, read 10 of 100 records, and
then close.

Improved sam_read1 return values so that it can distinguish between
eof (-1) and error (-2 or lower).  This is done by using cram_eof and
checking that a -1 return value is due to eof rather than something
else.

These two combined essentially move the onus of error detection away
from hts_close to sam_read1, as per bam I/O.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6011a93df8b528524581e2a2f56ffd8b74514c66">6011a93d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-15T11:49:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'develop' into output-fmt-option

Conflicts:
        test/test_view.c
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a419848d8e86ee159f74683eff5558f9dc512ed0">a419848d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-15T14:54:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use htsFormat instead of htsFileOpts struct for opening.

htsFormat now uses the void*specific field for storing the options,
rather than having an htsFileOpt structure with options and htsFormat
as sub-fields.  I'm not entirely convinced on this as the void * is
messy, but it's a start.

Renamed hts_open_opts as hts_open_format.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7579577f51112c56c3bd9954c2fd1ec80910c8c4">7579577f</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:02:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add and use safe_itf8_get() to avoid more buffer over-runs.

Add new static inline safe_itf8_get, to replace the old itf8_get macro.
It takes a pointer to the end of the buffer so it can test if it has run
out of data.  If it fails to read a complete integer it returns 0,
otherwise it returns the number of inout bytes consumed, as for itf8_get.

Change lots of uses of itf8_get() to safe_itf8_get().  Also add some
other checks for running out of data.

Make cram_decode_slice_header uncompress the slice header block if it
isn't of type RAW.  This goes beyond what the CRAM specification says,
but there's no real reason why it can't be compressed.

All this fixes several bugs found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2c20ba3d4cae14b1058d0d99f42b7c2f68d8b812">2c20ba3d</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:02:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add more codec sanity checks.

Add, or fix, checks for running out of input to get_zero_bits_MSB,
cram_gamma_decode, cram_huffman_decode_char0 and cram_huffman_decode_int.

Ensure trying to decode a null (i.e. zero symbols) huffman stream returns
an error.

Catch attempts to use cram_byte_array_stop_decode_init on anything other
than a BYTE_ARRAY or BYTE_ARRAY_BLOCK.

Prevent an invalid read if cram_decoder_init is given an out of range codec
number.

Fixes more bugs found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/62ad41196acb2b154caf9d94a2a98ac4439baf2e">62ad4119</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:02:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevent running on after decoding errors.

Bail out of cram_decode_slice, cram_decode_aux and cram_decode_seq faster
if errors are detected.  Prevents use of uninitialized values.

Fixes more bugs found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3954acee8966db631ecbc86f84d91f6abdfa1f7d">3954acee</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:02:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rANS decoder error checking.

Make rans_uncompress check that it has enough bytes for the decoder to start.

Make cram_uncompress_block check for rANS decoder failures.

Fixes bugs found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e33a6feb142b5f1ef34cdd3d820b01877398ef06">e33a6feb</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:02:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make cram_get_seq loop round straight after calling cram_next_slice.

There would be an out-of-bounds array access if the next slice contained
no records.  This is fixed by looping around again so that it detects
there are no more records and calls cram_next_slice again.

Bug found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a30f9069c83eb6904f5205d497dbb6d14813e636">a30f9069</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:06:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix various reference related bugs in cram_decode_slice

When using embedded references, ensure that s->hdr->ref_base_id is in
the valid range for the s->block_by_id lookup table.  Also check that the
block decompresses correctly.

Don't try to call cram_ref_decr on embedded references.

For multi-reference blocks where the RI information was missing or not
decoded, use -1 (i.e. unmapped) for the reference id instead of 0.

Check that the refernce id is within the range of refence ids in the SAM
header.

Fixes bugs found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/83a500149a895e3dd49c85c544f0c5365f6fb8bf">83a50014</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:06:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure last read group name is not NULL before trying to strcmp it.

Fixes bug found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/876e71d56fa349b8de63702ed3b4091b92b9847d">876e71d5</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:06:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Catch slices with no data blocks.

The specification says that a slice should have at least one data block.

Fixes bugs found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c1c890926aef4aa876536923a845a3852a0ab705">c1c89092</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add more checks to cram_read_SAM_hdr

Ensure that the block decompresses successfully.

Check that header_len >= 0.  The specification allows a signed value.

Fixes bugs found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fb91924baeba729e6a4f9edcdea8392f568a19cb">fb91924b</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change assertion in cram_decode_slice_xref to if (...) return -1.

Make cram_decode_slice_xref return int instead of void, and change the
assertion to return -1 instead.  Also add a check to catch out of bounds
array access if mate_line is outside the valid range.

Check the return value of cram_decode_slice_xref in cram_decode_slice.

Fixes crashes found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dee9260861b73419645f626f6249130fe918a00c">dee92608</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure header_len >= 0

Prevents malloc(0) if header_len == -1.

Bug found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f7be681ffb7594636f6f9f6550548e5388c5a883">f7be681f</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make cram_byte_array_len_decode return errors from sub-codecs.

If either len_codec or value_codec fail in cram_byte_array_len_decode then
it will return non-zero.

Fixes bugs found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/81d6ea651fc32c346361c351ab26b07a9f4cd893">81d6ea65</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix buffer over-runs in cram_decode_seq for sequences starting beyond the ref

Incorrect handling of sequences that started beyond the end of the reference
sequence could lead to memset writing past the end of the seq array.  Add
code to handle this case correctly.

Fixes bugs found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3a2ddb847f59643451709ecba0c2667b6acb6390">3a2ddb84</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Catch negative length in cram_byte_array_len_decode.

Fixes bug found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b43e9b7bda14a6336fe08c68d65cc6ea2fe11bac">b43e9b7b</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Pull code to lookup external blocks into cram_get_block_by_id function.

Add a new static inline cram_get_block_by_id to lookup external blocks.  It
includes checks to ensure looking up via the slice->block_by_id array
doesn't go out of bounds.

Change code that looked up block ids to use the new function.  This fixes
a fixme in cram_decode_slice, so embedded references should work for any
block id, not just those below 1024.

Fixes bugs found during american fuzzy lop fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f2863494a4f8d09f75c0c41f29fa7f66636236d4">f2863494</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Re-order test for end of input in cram_byte_array_stop_decode_block

Make it check that it has not reached the end of the input data before
trying to dereference the pointer.

Fixes bug found during "american fuzzy lop" fuzz testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8013558f187d9217856d8698910eeebd82652d23">8013558f</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Better sanity checking when reading content_ids in cram_decode_slice_header

hdr->num_content_ids is passed to malloc, so ensure it has a reasonable
value.

Bail out of reading block_content_ids as soon as possible if it runs out
of input.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/05cd2fad5f334e75cacb429b4d4863661d715ee6">05cd2fad</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Various fixes in cram_decode_seq.

Ensure read features don't start before the beginning of the read.

Fix check for which data series are required when decoding soft clips.  Should
check for CRAM_SC and not CRAM_IN for version 2+ CRAM files.

Convert abort on unknown feature code to return -1.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ca1bcefe38981b749cab78299f9042cc227a5f18">ca1bcefe</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add more sanity checks to cram_decode_slice.

Error on reads with apparantly negative length.

Error on alignments with position <= 0 and no unmapped flag.

Fixes problems found by "american fuzzy lop".
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/93094c709c827dbc0491cb3f039cdfb4ec4112ee">93094c70</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Better tests for bit-based codecs running out of input.

"american fuzzy lop" found a case where the checks for running out of
input added in commit 1ee139e86b failed.  This happened due to the result
of in->uncomp_size - in->byte being unsigned rather than signed, so the
check failed when in->byte was greater than in->uncomp_size.

The checks are pulled into a new static inline cram_not_enough_bits.  This
has been checked with frama_c to work as long as:
   0 <= blk->bit < 8
   0 <= blk->uncomp_size
   blk->uncomp_size, blk->bit and nbits are of type int32_t
   blk->byte is of type size_t

Instances of the old code are replaced with cram_not_enough_bits.

get_one_bits_MSB gets the same checks for running out of input as are already
in get_zero_bits_MSB.

cram_subexp_decode_init gets a check to ensure subexp.k >= 0 and
cram_subexp_decode checks for i >= 0.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6e3f665af038731188df1be23ec6afa0b895f6f2">6e3f665a</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make cram_subexp_decode_init use safe_itf8_get.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/509b77208c6ab89f2b58dc47ba814a5fde914d42">509b7720</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Set sub_size to -1 to catch cases where it doesn't get set.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e7c1102670a8aa8b33ea6c46d096a0a6ef6efd8f">e7c11026</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:08:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove redundant code from cram_byte_array_stop_decode_init.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4299ea1e98e8d68d4e51cdff187fe08f8b3eb9d3">4299ea1e</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-18T11:35:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid possible integer wrap-around in cram_read_SAM_hdr

Add some casts to size_t to avoid (header_len + 1) becoming negative.

Put in checks for positive c->length and len so (c->length - len) always
makes sense.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bbd137300c17aeafb6c89ebcbf06f9b0199937a0">bbd13730</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-18T12:40:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #207 from daviesrob/afl_1

CRAM fuzz testing bug fixes</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/06fc1d05e416e20b199ba3a20df4a1a43232e75a">06fc1d05</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-19T16:01:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Protection against crashes when given broken data.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/de59127578c8845b5090f44d03a59ed13642b2d0">de591275</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-19T16:02:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improvements to inline documentation.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cd83252ad88cdde9e2b203786939463a6002557e">cd83252a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-19T16:02:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed quality values from the CRAM_SEQ macro and added a CRAM_QUAL one.

This is an optimisation so that, for example, bam2depth, doesn't
decode quality values unnecessarily.  Note that due to the existance
of some combined feature codes such as 'A' (base and score) and 'B'
(read base) that access both BA and QS data series, it may be that
decoding a sequence explicitly requires fetching from the quality
stream too.

In this situation, there is explicit ds&CRAM_BA and ds&CRAM_QS so only
the half of the data series needed will be decoded.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/590a3527f52a04e170f75d402ceabeedc279d3d5">590a3527</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-20T15:31:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improvements to htsFormat handling.

hts_open_format() now automatically sets the file type based on
filename suffix.

hts_parse_format() no longer clears the "specific" field.  This means
that using --reference x.fa --output-format cram works. (Previously it
cleared the reference setting again.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0dbb3b8bf9afaf5778d2dad6467c7bde477ea834">0dbb3b8b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-21T08:29:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed unused variable caused by hts_set_opt migration.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0662716ffdbffe1d3606a8182a0ce33f4edd81c0">0662716f</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-05-25T02:44:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge tag '1.2.1' into debian/unstable

HTSlib patch release 1.2.1, reinstated hts_file_type()
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4fc92f5aab173eedbefacef6a2514a5c2d903449">4fc92f5a</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-05-25T03:40:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update symbols file.  Note that there are missing symbols.

 #MISSING: 1.2.1# cram_byte_array_stop_decode_char@Base 1.0
 #MISSING: 1.2.1# cram_external_decode_block@Base 1.0
 #MISSING: 1.2.1# cram_external_encode@Base 1.0
 #MISSING: 1.2.1# download_and_open@Base 1.0
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e047ee4353bc0305db1db1c3477c3162c3ec9142">e047ee43</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-05-25T04:00:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream release; no new copyright nor license statement.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/084f27db8fe9132424e2c40db38f6abee253dfe9">084f27db</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-05-25T04:05:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Install NEWS as upstream changelog.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/316fb961360707c2683cd5fc9a34b0582d13bcbd">316fb961</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-05-25T04:25:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Override a Lintian false positive.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/33636795f14d13134d121af3ce4061e7aabfcc49">33636795</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-05-25T04:31:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Clead test directory.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/69bf167de34bc0c8a192add5f6748fe8d8888ab6">69bf167d</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-05-25T04:33:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Corrected a typo.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/12251926b9d0265738d701bb0add6fe9d070ccb3">12251926</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-05-25T04:56:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">htslib (1.2.1-1) unstable; urgency=medium

  0662716 Merge tag '1.2.1' into debian/unstable
  084f27d Install NEWS as upstream changelog.
  316fb96 Override a Lintian false positive.
  3363679 Clean test directory.
  69bf167 Corrected a typo in tabix description.

 -- Charles Plessy <plessy@debian.org>  Mon, 25 May 2015 13:35:03 +0900
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7b0edf5586a3556b36998dd55d4be7cc74e5e7c6">7b0edf55</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-05-26T08:21:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[make] Add maintainer-clean as a synonym of distclean
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4854ee6688593c6d66f2886af1f878c1c855fc92">4854ee66</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-05-26T11:10:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[faidx] Warn if duplicate sequence names are encountered

Add only the first sequence of each name to the faidx_t and .fai file.
An alternative would be to uniquify subsequent duplicates by changing
their names to "<NAME>_<N>" or something, but there's a risk of introducing
further clashes -- better to leave the user to sort it out.

Fixes samtools/samtools#380.  An upcoming samtools documentation change
will note that subsequences retrieved are from the *first* instance of
duplicate-named reference sequences.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f9577275015eee20fa6c6d834b56d8a9950855f3">f9577275</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-05-26T14:18:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use bam_endpos() to fix bins for unmapped reads

In sam_parse1() we can't use bam_endpos() but we now do the same
BAM_FUNMAP test as bam_endpos() would do.  (Add "no CIGAR operations"
parse error so that we can assume that n_cigar>0 here.)

Hat tip @dpryan79.  Fixes #206.

Also deobfuscate one more memory allocation via sizeof() (cf ef59ef2d6425985732d41bf7389df569a2a14c0a).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/949840b04f920e56a771453bf2f32ac5722bb69c">949840b0</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-27T13:55:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fixed cram_load_reference().

When given NULL as the filename it is meant to, and indeed does, just
load the reference by extracting the @SQ headers.  Unfortunately it
returned -1 as it also reuses fn to go from .fai to .fa and detects
NULL as a failure to process the .fai.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2e7a222353f8e226c8c26fa88bcd029925d550ff">2e7a2223</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-05-27T16:16:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add more checks to beta codec.

Add missing check for enough bits to cram_beta_decode_char().

Ensure that beta.nbits is within the valid range in cram_beta_decode_init().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a1d2bb5cf9071af5a51cfb0ca87cf7128979b446">a1d2bb5c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-27T16:37:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #212 from daviesrob/afl_2

Add more checks to beta codec.</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ec7151a2d18229ae7cee6d6fb383465fb8d2b33a">ec7151a2</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-28T10:29:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a -B (benchmarking) mode to test_view.

The purpose of this is simply to be able to run benchmarks of format
decoding only, without requiring other analysis to be run (eg samtools
flagstat, etc).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7e3add3f004202a4c49449e7c88b256aeb09a012">7e3add3f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-05-28T10:30:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'develop' of github.com:samtools/htslib into develop
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e2743e6a6316c57928fc327e262f38ee92a8a732">e2743e6a</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-05-28T11:48:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add missing entries
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7c1de4ba73fc63122173c6c787e3772f1392cbf5">7c1de4ba</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-05-29T08:13:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add rule to generate config.h

Usually config.h will be made by running configure, but while we have
the Makefile-makes-fallback-config.h approach (and until samtools et al
get their own configure scripts that call htslib's configure) we need a
rule here to invoke it.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b5a15369295685b1067c78acfaaf1026dd8d6807">b5a15369</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-05-29T12:29:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add support for S3 pseudo-URLs

Rewrite S3 pseudo-URLs to http/https URLs, adding Date and Authorization
headers for Amazon S3.

At present, access keys may be specified in the URL (in the usual URL
authority "[id:secret@]bucket" way) or via the usual AWS_ACCESS_KEY_ID
and AWS_SECRET_ACCESS_KEY environment variables.  It remains to add code
to read them from config files -- probably just ~/.aws/credentials and
~/.awssecret.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d8172f91d7783274f7d4a3d7d4e9a54021452111">d8172f91</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-06-01T10:40:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Made v3.0 the default version of CRAM (was 2.1).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d75ed7a5f40e9adc3c823cc753830c7f1678234e">d75ed7a5</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-06-02T16:13:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CRAM ref of "*" bug-fix.

The bug was that ref seq '*' was being converted to '\n' due to
'*' & ~0x20.   A quick test shows it's ~1% time saving on a low depth
(~10%) chr20 cram.  Hence this is just a case of over-optimisation.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1980e5859251741f7905e754c07112a0fe3ec3e5">1980e585</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-06-03T06:46:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve faidx blank line handling

Multiple sequence FASTA files shouldn't have blank lines before subsequent
">" headers, but we mostly support that so we need to support it in the
case where all sequence lines are the same length too.

Fixes http://seqanswers.com/forums/showpost.php?p=172494&postcount=6

Probably other bugs are lurking here; this incomprehensible state
machine could benefit from some rewriting...
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/826454f815672f29635630fb4c9c8663a59ea98c">826454f8</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-06-04T13:53:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[make] Add distdir hook for Automake superprojects

We would prefer clients to build against an already-installed separate
htslib; but we'll also grudgingly enable "make dist" when we are bundled
as a subdirectory of an Automade project.

(See info automake "Third-Party Makefiles".)

Also build tags with either "TAGS" or "tags" targets.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d72ce03afefcd75a4ebf9afc254cde683fa0c0fa">d72ce03a</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-05T14:05:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add extra checks on input data and memory allocations to bam_hdr_read.

  Check that all calls to bgzf_read() return the expected number of bytes.

  Check all malloc return values for NULL.

  Ensure h->l_text won't wrap around when 1 is added to it.

  Check h->n_targets (n_ref in spec.) is not negative.

  Check that h->n_targets isn't so big that it is not possible to allocate
memory for the h->target_name and h->target_len arrays on 32-bit platforms.
Also ensures that there will be no problems with integer overflow when
working out how much memory to allocate.

  When reading the list of references:
    Check that name_len (l_name in spec.) is >= 0.
    Check that h->target_name[i] (name in spec.) does end with NUL.  Add one
if it doesn't, ensuring that the length of the resulting string won't
overflow an int32_t.

If anything goes wrong, clean up ensuring that all memory allocated by the
function gets freed, and return NULL.

Calls to calloc have been replaced with malloc.  Checking the bgzf_read
return values ensures that all allocated memory will be filled using data
read from the input file, so zeroing it first is a waste of time.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5f5a7aea1c329dee17a5b64c5f627207c20f4ed9">5f5a7aea</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-05T14:05:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add HTS_RESULT_USED for bam_hdr_read() and sam_hdr_read().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/14831e1299cf12e2e08aa841471fdae230988e84">14831e12</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-09T16:59:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make view_sam set status to EXIT_FAILURE if it fails.

Put in a check for sam_hdr_read() returning NULL in view_sam.  It
turns out that view_sam didn't have a way of returning a failure code,
so add that as well along with some other missing error checks.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8380601fc7f6288363f04352577e9676facfb529">8380601f</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-09T17:07:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add check for bam_hdr_read() returning NULL to bam_index.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9de542c6c919b96ba3fe0f44fc8aa06cb1c3307c">9de542c6</a></strong>
<div>
<span>by Afif Elghraoui</span>
<i>at 2015-06-11T09:32:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix various spelling errors

Debian QC tools complained about spelling errors in the source
code. This patch corrects them.

[Applied pysam-developers/pysam#122.]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/10c4920894eeba6911413e13e59a3cc574f48346">10c49208</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-06-11T13:47:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix in VCF header parsing

bcf_hdr_append() followed by bcf_hdr_write() should not make a
subsequent bcf_read() call fail if tag IDs remain unchanged, as
in the issue #213
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a89f22f6e3cab7468fa8ac871e91239a534cd953">a89f22f6</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-06-11T13:53:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_hdr_remove: NULL to remove all records of the given type
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/adec4d334d7960fb90e28b7f62bbe4138a8a477a">adec4d33</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-15T10:05:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure SAM query name length fits in a byte.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a03a15fdc8e7ecb42f45596e8b7568687e5617c8">a03a15fd</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-15T11:32:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure names are present for @SQ/@RG/@PG lines in sam_hdr_update_hashes

sam_hdr_update_hashes goes through the tags on a header line that it's
interested in, filling in values in a SAM_hdr_tag struct as it goes.
One of these is name, which is set to a copy of the SN tag for @SQ lines
and ID for @RG and @PG lines.  These must be present according to the SAM
specification, so ensure that name has been set after going through all
the tags for the line.  This means anything using the name field (notably
refs_from_header) can assume that it isn't NULL.

Fixes a crash found by the Americal Fuzzy Lop fuzz tester.

Also fix some potential memory leaks that could happen if realloc
fails in this function.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e1a67ee3fe2479e9b29f806cba4c6e06d4e74193">e1a67ee3</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-16T08:28:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Stop gzip header code from reading too far in bgzf_read_block.

When working out how many bytes to skip, make it compare to count (the
number of bytes read) instead of BGZF_BLOCK_SIZE.  This prevents it from
reading uninitialised memory if the file finishes part way through the
header.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/76f64dac0bcc4467b75c1e4f279553c414d15845">76f64dac</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-16T15:33:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix check on return value of sam_write1.

sam_write1 returns the number of bytes written on success for bam and sam
so the check for failure needs to be < 0 and not != 0.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ad122a7ab871350432895dfa47aa0e39bffcc6b0">ad122a7a</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-16T16:03:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make view_vcf set status to EXIT_FAILURE if it fails.

Change view_vcf in a similar way to view_sam so that it will set status
if it detects a failure.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ea63c205742c31317563d90143a466106a844eb9">ea63c205</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-16T17:09:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix handling of zero-bit beta codec case.

Using the beta codec with nbits=0 is valid, but confuses
cram_not_enough_bits() as it's possible to have no input data in
this case so cram_not_enough_bits thinks it has run out.

Move the calls to cram_not_enough_bits inside checks that c->beta.nbits
is non-zero to avoid the problem.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9853332bc3a0f173c012895cc19d3ec4146d1d15">9853332b</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-16T17:26:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow cram_not_enough_bits to return 0 if no bytes left but nbits is 0.

If the caller isn't going to use any bits then it's acceptable for the
input data to have been completely consumed.  Fixes an odd edge case
in the beta codec (and possibly others).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e51893d03f78096b9f112c64b4c95d325e596227">e51893d0</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-17T13:21:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure sam_hdr_parse doesn't run off the end of the string it's reading.

When looking for @SQ header lines, search for "@SQ\t" instead of just @SQ.
This ensures the term q = p + 4 points to either a NUL byte or more string
and not past the end.  The spec. says there should always be a tab after
@SQ so this should be OK on valid files.

Add extra checks for NUL to the loops that iterate through the string.

Fixes a crash found by the American Fuzzy Lop fuzz tester.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6eff52575bbb415163550ac6a9f666e423af2a3d">6eff5257</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-06-17T15:19:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Convert status to a global variable.

John wrote:

"It's a simple little self-contained program, we should just make status
a global alongside mode and show_headers and these functions can set it
to EXIT_FAILURE themselves."

So make view_sam and view_vcf set global status instead of taking a pointer.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/53a752884fb08c51cb94c943c30fb4e2f158db65">53a75288</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-06-19T16:40:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge fuzz fixes (PR #218 and #223)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/36bb0b6659dc146e4f0d7a9e71aeb7c551016dd9">36bb0b66</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-06-22T15:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Renamed int32_{get,put} to int32_{get,put}_blk.

This is so they match the naming used by the externally visible
itf8_get_blk function.  Added these to the external cram_io.h so they
can be used by the Samtools cram_reheader branch.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/93ae5c675daca0090a4c985d5600dfc1b6e03839">93ae5c67</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-06-23T14:04:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed bugs in CRAM header manipulation.

Exposed by sam_hdr_add_PG(), the khash-ification of the original
io_lib code introduced some not so subtle bugs.  Also fixed an overly
assertive assert statement.  Oops.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/633a4eb197dec3052f0501fbc261e6f710d53a14">633a4eb1</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-06-23T14:17:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Specify signedness for bit-fields explicitly

Plain int bit-fields technically have indeterminate signedness, and in
particular 1-bit signed bit-fields are unexpectedly entirely sign bit,
producing warnings on "s.foo = 1; /* should be -1 */" assignments with
gcc -Wsign-conversion and copious warnings on the struct definitions in
the headers with NVIDIA's nvcc.  Fixes #225, hat tip @nsubtil.

The changed hFILE fields are in (semi-)opaque structs so changing them
brings no compatibility concerns.  Some BGZF fields are used by client
code, so we are careful not to change the struct's layout.  The 2-bit
bit-fields are in fact used as booleans, so are presumably 2 bits as
an inferior sign bit workaround.  We've left them with the same sizes
so as not to change their layout.

(There remains one plain int bit-field in htslib/kseq.h.  We may fix
that later in conjunction with klib.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fe11d21158e200e8434a26bb23f7e4c482777b36">fe11d211</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-06-24T16:00:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added an external CRAM API to htslib/cram.h.

Note that this file contains duplicates of function declaration from
cram_io.h and sam_header.h along with incomplete types copied from
cram_structs.h.[1]

Any duplicated code can lead to errors, so to stave this off the
internal cram/cram.h also includes the external htslib/cram.h to check
function declaration compatibility.

I could of course move instead of copy the function declarations, but
also leads to untidyness with half of the functions in cram_io.c being
listed in cram_io.h and the other half being listed in a header file
in a totally different directory.  Neither duplication nor
distribution are particularly elegant solutions.  (More elegant would
be #ifdef CRAM_INTERNAL to have all in the same file, but that poses
more questions over the cram vs htslib subdirectories.)

[1] To allow gdb to still view the completed versions, I added struct
names to cram_structs.h too.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5c51f8401462a507a090978a529dc94e08280bf6">5c51f840</a></strong>
<div>
<span>by David K Jackson</span>
<i>at 2015-06-26T11:08:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Always link with -pthread [minor]

Regularise linking options (except for OS X-specific dylibs etc, where
pthreads are in libc); even test/hfile needs it when built with iRODS 3.3,
whose rcConnect() can be configured to use pthreads.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d8f5fa6064e01bc155afec709df7f6186125c23d">d8f5fa60</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-06-29T16:40:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Detect index format in hts_idx_load_local()

hts_idx_load()'s format parameter is really for deciding what suffices to
try adding to the filename.  Index files (except perhaps CRAI, which can
be identified by being associated with a CRAM file) have magic numbers
that we can use instead.

hts_idx_load_core() now reads only from BGZF*, so idx_read() can disappear.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e9b7db4474ee82fc33c883cc906985ec56b32802">e9b7db44</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-06-30T15:21:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add index build/load functions with explicit index filenames

hts_idx_load2() takes no fmt parameter as hts_idx_load() only really
uses it to choose what filename extensions to try.  Conversely,
hts_idx_load2() is the only one of these new functions that does not
accept fnidx==NULL to look alongside fn.

Change hts_idx_save() to return int so it can signal errors.  It now
checks bgzf_open()/fopen() and returns -1, addressing samtools/samtools#312
except that the error message from samtools is misleading.

Provides functions required for pysam-developers/pysam/issues/87 and
samtools/samtools#199.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3a95a67feb9c0e1a983441307a67dfbab5490dc9">3a95a67f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-06-30T16:48:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a bug in CRAM container num_blocks field when dealing with
multiple slices per container.  It was counting the compression header
per slice rather than only once.

Oddly this didn't cause any decoding issues for scramble, samtools or
cramtools.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1201e419d4c4b190d9bc555ee724f9ed93ce8e74">1201e419</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-07-06T09:36:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #220 from mcshane/feature/bcf_hdr_remove_all

bcf_hdr_remove: NULL to remove all records of the given type</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/acc250497b7c79889f4f70ffa35260cc2a787b1e">acc25049</a></strong>
<div>
<span>by Ryan Wilson</span>
<i>at 2015-07-06T11:21:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Increase size of max format string size from 2^16 to 2^32.

Fixes the issue of integer overflow when a VCF format string
contains a large string (in our case, nucleotide sequence).
2^32 should be a large enough number of characters (> 1 GB) such
that its an acceptable upper bound.

Closes #204, closes #221
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a151ef02a39ae7e72648a61b5ae47871636320da">a151ef02</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-07-06T11:52:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #191 from atks/develop

updated documentation for hts_open for uncompressed bcf.</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/58358e1514a1d7317a5f8296c1837685a19a467d">58358e15</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-07-06T14:29:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">warn if no BGZF EOF for VCF/BCF files

see samtools/bcftools#220

bcf_synced_reader will warn if the BGZF EOF marker is missing
when adding a new file. Error is added to bcf_sr_strerror so it
could be used. However, we don't fall over, just warn. We want
to be able to, say, view a BCF file while it is still being
written. Samtools also just warns when EOF missing from a BAM.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2bb9370f5a24938d8a2dc56f404e584661bf413f">2bb9370f</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-07-06T15:24:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">deprecate bcf_hdr_combine in favour of new bcf_hdr_merge

This is a htslib-side fix for samtools/bcftools#208
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1f45b1944cc5a9d9132328252c3a99aa259f4df6">1f45b194</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-07-06T17:05:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #236 from samtools/feature/idx-filenames

Add index build/load functions with explicit index filenames</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b32afba7a4c4d173480a85737e1a028d291f98fb">b32afba7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-14T10:13:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fall back to path-style S3 bucket access if necessary

Check whether bucket names are DNS-compliant according to the rules at
http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
Fixes part 3 of #232, hat tip @DonFreed.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3fcf7c9026b3dff17ab20893b8019eaf4f3bb675">3fcf7c90</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-07-17T12:05:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: Case-insensitive detection of the variant type

htslib side changes to make variant type detection case
insensitive. See samtools/bcftools#285
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/897a34f93e4bf8aba48b175a6d9d5a7f8d337b60">897a34f9</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-07-17T12:11:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #244 from samtools/feature/vcf_type_case

vcf: Case-insensitive detection of the variant type</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0d947909eea84318a573c001ddb617271a48ca2c">0d947909</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-07-20T16:58:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make failure of bam_hdr_init in bam_hdr_read print an error if verbose.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ac4f829659a2e2f66d4952a11b164d8c50fdf1e7">ac4f8296</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-07-21T15:09:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'afl_2' of github.com:daviesrob/htslib into develop
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/26d2504c0b7c92d7fcb7fead6360db5c70b308f0">26d2504c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-07-21T16:10:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Further improved Rob's PR (#215) with error checking on reads.

I haven't added checks for BCF reading as it doesn't appear possible
for the library to generate any (another issue entirely).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f1875405b9caa48ab94a28e0a27745eb94026384">f1875405</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-23T12:14:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove HTS_RESULT_USED from bam_hdr_read() and sam_hdr_read()

This annotation is pointless as the result is always *used*; the desired
check would be __attribute__((warn_result_not_checked_as_nonnull)), but
of course such an annotation doesn't exist.

This reverts commit 5f5a7aea1c329dee17a5b64c5f627207c20f4ed9.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/061c8599c541f81f678ebe9a80fb13550a8feee2">061c8599</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-27T11:19:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check bam_hdr_read() mallocs without warnings

Checking a uint32_t against SIZE_MAX causes tautological comparison
warnings on platforms where sizeof(size_t) is more than 32 bits.

Instead check whether l_text+1 overflowed directly, and for the
multiplications revert to using calloc(), which (is specified to)
do this check itself.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/90cf5c4b90b5f94471ff85db43874fdd7cf37a33">90cf5c4b</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-27T12:26:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remerge daviesrob/afl_2 (PR #215) with several fixes
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1af175eaed178cb7a236ff04b88310e622e46f84">1af175ea</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-27T12:28:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add kgetline() to kstring.c/.h

Similar to BSD's getline() but omits the \n terminator and manages the
memory as a kstring.  Call with "(kgets_func *) fgets" to read from stdio,
or implement an fgets()-style function to read from other streams, e.g.,
a wrapper around gzgets() that reorders its parameters as per fgets().

[Cherry-picked attractivechaos/klib@cbcfcabc8f9b7f0ca14c6dce2ee5644e4e80e5e4.]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d4dbf8d886899adb6d13d80b2073da94801947a7">d4dbf8d8</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2015-07-28T10:06:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add README.source to explain the workflow of this Git repository
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/04d85d9d1cf0e25e41a3b606b2bb5f819943654c">04d85d9d</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2015-07-28T10:13:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">In this repository the 'v' in front of the version number needs to be left out ...
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c313725745601640a33acde668d4fd08fb6c4123">c3137257</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-07-28T14:03:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed the ordering of enum so that the old CRAM_OPT enums stay
constant.

Also added a #define for compatibility of renaming cram_option.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eca68e8e2e4ccd75eb523bbccdf3127268f43f8e">eca68e8e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-28T14:16:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert .gitignore additions

Whether to ignore .rej/.orig/backup~ is up to each developer's taste.
Those who wish to ignore them can do so via .git/info/exclude or
core.excludesfile.

This reverts commit 4d707943c77585ecf1547f87747e19c5925cd857.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a4aa7b3f985ef865d8e13fef759e41a17d59547f">a4aa7b3f</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-28T14:39:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge hts_fmt_option, hts_open_format(), et al (PR #233)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a902f2957b1d9df69dfbce493257401d5c3c2c5e">a902f295</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-28T15:29:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update dependencies and *.mk variables
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/23c8f2e85f79fa187ae5a3c1fd95fa11bf33c357">23c8f2e8</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-28T15:45:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change to MIT/Expat license for this public header

As agreed with James Bonfield and GRL.  The licenses are equivalent,
this just maintains the convention for public headers in htslib/.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3edc3a3088ba460965ce36e540d96abae0f17cf1">3edc3a30</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-07-28T16:02:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge initial CRAM public API (PR #235)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e399970f7eac5abb2fc95331e6a2c5a3ba60e4c7">e399970f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-07-29T08:03:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added support for samtools cat, along with some CRAM API improvements.

- Sanitised bye_array_len structures so the encoder and decoder both
  use the same terminology (value vs val).

- Added cram_codec_decoder2encoder function.  This is a bit messy, but
  it is needed because cram_decoder.c fills out different internal
  structure elements than cram_encoder.c (for efficiencies sake).  So
  if we're reading from one fd and writing to another fd we have to
  fix up a few internals.

- Similarly (re-encoding a decoded struct) improved hdr->AP_delta vs
  container->pos_sorted and avoid a memory leak of the preservation
  map.

- Fixed typo in reheader branch for cram_minor_vers.

- More external CRAM APIs: detecting empty containers, chaning RG
  values in compression headers, copying slices, and various block
  handling functions.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8872c10996c6789c25b96dab9ef037da1d1da685">8872c109</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-08-04T12:51:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge bcf_hdr_merge() addition (PR #238)

Fix dependencies.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4c82a74420393b253b34f6a8dfd28d190a1b7579">4c82a744</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-08-05T08:12:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">tabix: fixes --only-header option so that it now works!

Fixes #249

[NEWS]
* tabix --only-header works again (was broken in 1.2.x; #249)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f79045536b9bb89666bedf7ee665503a0d9bad2a">f7904553</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-08-07T13:20:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Constify hts_open_format() parameter and don't parse filename

Don't override mode based on the filename extension, as this level of
intelligence is not desirable by default in a low-level open() function.

Constify fmt parameter, as it is naturally input-only (if the detailed
format as opened is desired, it should be queried via hts_get_format()).

(Note that hts_open_format() documentation needs updating.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4494fa66822f0fad7f9715ed6925939295f3e87a">4494fa66</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-08-10T16:50:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change rANS O1 codecs to allocate large arrays on the heap.

rans_compress_O1 needed about 1.25 Mb of stack for a couple of 256x256
arrays.  This caused problems on MacOS X when running in threaded mode
due to running out of per-thread stack.  The default stack size for
threads on MacOS X is 512 K.  For details, see:
https://developer.apple.com/library/mac/qa/qa1419/_index.html

This changes rans_compress_O1 and rans_uncompress_O1 to use malloc
and calloc to allocate the arrays instead of using the stack.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/778653c5935e1a7ded2305db8eb8d9b2b027f6d5">778653c5</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-08-17T12:13:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge CRAM public API additions for samtools cat (PR #237)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/23ba31e625abe185d3d1e46e911f9c8fd8a0963b">23ba31e6</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-08-17T16:18:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove debug printf [minor]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d75415141386bd7af4a3b0c18ce9c72b58c0895e">d7541514</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-08-18T16:40:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix for CRAM index querying when the query sequence has zero
entries in the index.  It was accessing element -1 in a NULL array.

Also fixed the code so that searching on ref id -1 (unmapped data)
works.

Fixes samtools#454
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a17f23c7fdb7519e3aa449a2b06518cb02ada867">a17f23c7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-08-19T09:06:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update Makefile dependencies [minor]

In particular, add cram/cram_external.c header prerequisites
and make it #include config.h.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a72be23ffea4737add392d25d992c140b4f14047">a72be23f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-08-19T13:20:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Force safe_itf8_get to zero *val_p when failing, to simplify error
handling elsewhere. (Eg in cram_transcode_rg)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/47da392939b43c9761454278de5f457119c94297">47da3929</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-08-19T13:51:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixes https://github.com/samtools/samtools/issues/455

Added an is_md5 flag to the refs_t structure.  This is used to
indicate where a reference filename has been identified via the M5
tag.

Previously for newly observed refs it looked for M5 and then rolled on
fasta loading, but for previously used refs (load ref 1, then 2, then
1 again) it had the r->length field as non-zero so fell passed the
MD5 opening code and straight onto the fasta loading code, causing the
observed error.

This commit also fixes an inefficiency in loading of MD5 seq files if
they are found via REF_PATH but not via REF_CACHE.  For local files we
no longer bother to use open_path_mfile to load it entirely into
memory.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8eba63af0298a496ec39b7321c985e04281b3311">8eba63af</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-08-19T16:40:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed bug with non-reference base CRAMs and indexing.

When using --output-fmt cram,no_ref the reference sequence is not
loaded into memory, causing the "ref_end" container field to be
unset.  This in turn meant that the code that clipped the container
header start/end fields (pos+span) to the actual reference length, to
work around buggy aligners that positiong data off the end of the
reference, was itself buggy.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/42734f62192c9fdd920183b2c34d78c1eebd8547">42734f62</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-08-20T10:54:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improved the efficiency of reference loading again.

Commit 47da392939b43c9761454278de5f457119c94297 included a change to
use bgzf_open and read a local file rather than relying on
open_path_mfile if it was found via REF_PATH as a local on-disk file.

It turns out this is only beneficial if we don't have HAVE_MMAP
defined, which by default isn't on in the Makefile (but likely will be
if using ./configure).  With mmap the mfopen becomes a trivial
operation.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c50bfe05663020c2d8f73ef2c862ee74078d578e">c50bfe05</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-08-20T11:31:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Further improvement to index querying.

Now instead of returning an index entry close to the one asked for,
when querying a reference that has no data aligned against it, we
instead return a different error code (-2) and let this get treated in
the same manner as HTS_IDX_NONE.  Far cleaner and likely more
efficient.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6d2810cdbbbe4646dcf7a4fab1003aa99319c55a">6d2810cd</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-08-24T11:41:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reduced memory for CRAM decoding.

This is particularly important during merging or multi-file mpileup.
The changes involve reducing the block size in pooled_alloc (saves
SAM header memory), freeing loaded disk-blocks immediately after
decoding rather than when freeing the slice, and reducing the memory
usage of the decoded arrays to the exact size needed rather than an
auto-growing array (which at worst case is 50% larger).

It also attempts to automatically predict the size of the sequence,
quality and read-name memory blocks instead of auto-growing.  This is
both a performance improvement and potentially a reduction in heap
fragmentation.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5b0bb75ca6171c67a309165c061dcdfe183e4dfe">5b0bb75c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-08-24T16:34:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added checks to return value of hts_opt_apply.

Also made cram_set_voption set errno using a couple appropriate POSIX
error codes, to avoid confusing "Success" error messages.

Fixes #452
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/82203a27cf312af2e1734995869b6718e238147b">82203a27</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-08-24T16:38:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix whitespace [trivial]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/306664a776435a1c86d7263f16deb43b30db55fd">306664a7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-08-25T09:15:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow initial whitespace in FASTA ">" headers

Fixes samtools/samtools#449.
Also ensure an empty name works; fixes #258, hat tip @mtmorgan.

Add test/faidx.fa test cases, with unnamed sequence, extra whitespace,
and tests for previously-fixed blank line-related bugs fixed in
1980e5859251741f7905e754c07112a0fe3ec3e5.

Fix memory leaks introduced by 642783e2aa8a0697fb7352dde6f359cd74593437.

[NEWS]
* fai_build() and samtools faidx now accept initial whitespace in ">"
  headers (e.g., "> chr1 description" is taken to refer to "chr1")
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e7e2b3dd7e524f6562269f365c757d97b551c09e">e7e2b3dd</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-08-27T21:51:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add "all-htslib" target for third-party code
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b82f5efc7c6e6c15a913880bab20053bd721ce41">b82f5efc</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-08-29T09:08:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add sam_parse1() "empty query name" warning
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f859e8d2f99d615d1d877f771d43ef608c9d385b">f859e8d2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-09-02T16:00:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add hts_parse_decimal() flags parameter and HTS_PARSE_THOUSANDS_SEP

hts_parse_decimal() has not yet appeared in an HTSlib release so we
can still change its signature.  We may in future add other parser
flags and/or an hts_parse_region() with a flags parameter alongside
the existing hts_parse_reg().

Use HTS_PARSE_THOUSANDS_SEP in hts_parse_reg() (for historical reasons)
but not in regidx.c/synced_bcf_reader.c which are used in a list argument
like "REGION,REGION,REGION".  Fixes samtools/bcftools#309.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/81b173e6b0c1801d7330118041799dbe29fdf8e8">81b173e6</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-09-04T10:09:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hts_idx_destroy() now actively frees CRAM indices

CRAM indices are stored within the cram_fd (see 655edabb50d6da6a6be1e474e371ab325be19461)
so previously hts_idx_destroy() just destroyed the fake hts_cram_idx_t and
left the real index to be freed when the cram_fd was eventually closed.

But cram_index_free() exists, so hts_idx_destroy() should be calling it.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0004f1a19de77cf86d9b16c3cce5cc28194aa918">0004f1a1</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-09-10T11:23:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixes bug that appeared with commit ca1bcefe.

The commit fails to check whether we have requested the AP data series
to be decoded, so causes a failure in samtools flagstat.  However this
failure then triggers another bug when running in multithreaded mode;
it attempts to flush any remaining blocks during close, even when
decoding produced an error.  This crashes due to an incomplete
container.

Fixes #265
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eb4dcaeff88f6da22b82e1bc193dcd2df242d833">eb4dcaef</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-09-10T16:32:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Increment line number
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4c66fe0124e47733f1558cdde6901e95e4ec7d4a">4c66fe01</a></strong>
<div>
<span>by Cristina Yenyxe Gonzalez Garcia</span>
<i>at 2015-09-11T13:30:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Function bcf_hdr_parse_line now ignores trailing spaces. #248
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2c89e84e523b68ad1afaf6b7fd6c52a979af58f2">2c89e84e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-09-14T10:19:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check bam_header_to_cram() return value

In general, cram_set_header() can accept NULL to remove a header;
but within sam_hdr_write() we expect bam_header_to_cram() to succeed.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d2c31ce54bf47eeb2673a53af0592fde863dad57">d2c31ce5</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-09-14T12:34:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add NUL-padded BAM header CRAM conversion test cases

Most tools write BAM l_text/text headers without any NUL padding, but the
specification allows for any number of extra NULs.  The CRAM conversion
code is not currently expecting this, as these test cases demonstrate.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/04997f6de9b3f47f1f4a5d471b0fb4b517a8716e">04997f6d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-09-14T16:04:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow NUL-termination in sam_hdr_add_lines()

Most tools write BAM l_text/text headers without any NUL padding, but the
specification allows for any number of extra NULs.  Allow for such padding
the CRAM conversion code.

Merge test cases.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d71004b751ecb56638363a83d6b813b8a6d5235b">d71004b7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-09-14T17:02:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge VCF header trailing whitespace fix (PR #267)

Use htsfile -c rather than bespoke test program.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2b486ed9e4580dc3abdeb5f10ac21a82234c2aaf">2b486ed9</a></strong>
<div>
<span>by Adrian Tan</span>
<i>at 2015-09-14T18:45:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">changed bcf_id2int to bcf_hdr_id2int.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8197cfdfa076d1c3ed5fd8428cf6c8c62c3d1d31">8197cfdf</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-09-14T19:52:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update to reflect bcf_hdr_id2int() renaming (PR #269)

The previous bcf_id2int() was renamed in bc86c107dd89d4909cfe8548774ded5542551559.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a017f92725588b81ae06faa3aa8e7757373cd8d3">a017f927</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-09-25T13:30:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: Symbolic allele <*> is not a variant
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/852650c571ef9fe672d4bdcef6e2ec3d26e778db">852650c5</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-09-25T14:00:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_gt_type: Count "./1" genotypes as missing
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0697d01ca4c53f36bbea9544d7ddefaa220b44c5">0697d01c</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-09-25T14:01:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix in vcf filtering:

filters which were not defined in the header were misinterpreted as "."
by the synced reader.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5c6b71bf4804924c7cee79d7edd1281d9d431705">5c6b71bf</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-09-25T14:03:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: Prevent segfault when querying freshly removed tags
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/663830890b290cf75195cf7a41a14d37d6173131">66383089</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-09-25T14:09:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update bcf_translate() accordingly to reflect the bcf_hdr_merge commit 2bb9370f5a24938d8a2dc56f404e584661bf413f
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/53ca19d89fa98f17443f2f03f06d80dc60d8599a">53ca19d8</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-09-25T14:19:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf: update rlen when when adding/removing END tag

* update reference length from END tag, no need to set rlen manually anymore
* unset rlen when removing the END tag
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/57d8aba2cbadf85344af1c79a2512674df3c450b">57d8aba2</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-09-25T14:26:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow a legitimate use case in bcf1_sync:

INFO can be dirty while ID is not unpacked, consider bcf_write followed
by bcf_update_info.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/297ac3078ee10b56002857f6524c222e6497bd45">297ac307</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-09-25T14:42:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">add bcf_sr_swap_line macro

* free fname after synced reader is done
* do not crash if the buffered lines buffered lines have been swapped (as vcfmerge may do)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1e2ed48935a58845cecb64880e8cf7553c7db852">1e2ed489</a></strong>
<div>
<span>by Isaac Turner</span>
<i>at 2015-09-28T09:28:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed typo in vcf.h documentation</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d4482eb578aada0080eb30239ff57e9f6a6de93b">d4482eb5</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-09-29T13:21:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Define bcf_empty() to match its declaration in vcf.h

Previously we declared bcf_empty() but defined bcf_empty1(), so the
function in the public header was unusable (and there was no public
declaration for the function that did exist).

Correct this by adding a bcf_empty1() alias macro for consistency with
similar functions, and defining bcf_empty() to match the API function
declaration.  Deobfuscate bcf_init() and bcf_destroy() definitions,
which previously appeared to be defining bcf_init1()/bcf_destroy1()
but were not as the alias macros act on these definitions too.

This constitutes adding bcf_empty() to the API.  There is no ABI
breakage due to removing the bcf_empty1() symbol from the library,
as bcf_empty1() was not declared in the public header files so is
not part of the API.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8f3b53b444f3d18a94020ec90b32dddd48d57897">8f3b53b4</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-09-30T16:44:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix handling of BCF string dictionaries

Gaps in IDX blocks were causing incorrect tags on output.

The allocated size of the dictionary block in use is added to the
bcf_hdr_t typedef.  It has been added to the end of the struct to
preserve the structure layout, and a note added recommending allocation
via bcf_hdr_init().

Fixes samtools/bcftools#317.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/628eb5bc112dea3c3522129f5cff22265e69712c">628eb5bc</a></strong>
<div>
<span>by David K Jackson</span>
<i>at 2015-10-01T09:01:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Always link with -pthread [minor]

Regularise linking options (except for OS X-specific dylibs etc, where
pthreads are in libc); even test/hfile needs it when built with iRODS 3.3,
whose rcConnect() can be configured to use pthreads.
(cherry picked from commit 5c51f8401462a507a090978a529dc94e08280bf6)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d2ed7e6e5597ba3fc560386f301f5de4477ca3e5">d2ed7e6e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-01T10:38:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix incorrect asserts

Fortunately both of these inadvertent assignments were either
to dead variables or immediately overwritten.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/66fbb28b76b416216fc37ad85a11efa2ea7254ae">66fbb28b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-10-05T11:12:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a bug with CRAM compression level >= 6.

We could attempt to compress the CORE block twice, yielding corrupted
data during decode.  Note, this was not possible to trigger from
samtools, but could be triggered from test/test_view -l 6 or from
coding directly against htslib API.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9f6fa0fca7f77444d20ccbbd578ba758e3c3f08d">9f6fa0fc</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-06T13:46:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add 'x' (O_EXCL) and 'e' (O_CLOEXEC) open mode letters

Also document them for hopen() and hts_open().  (Write the latter's
regexp with excess spaces (to avoid */ terminating the comment) rather
than with [letters]+ because zero extra letters is to be accepted.)
Fixes #245.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1cdbbcd008b366b8820a75bcee96927b55058f70">1cdbbcd0</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-07T13:59:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">"make tags" should always remake the tag file
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/91d4872628d5338952de053d99b1900ea5e30330">91d48726</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-07T16:42:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add bit set data structure

See upstream PR attractivechaos/klib#59.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4c35976a90223302350cb6a8ebe2d2a400f74aff">4c35976a</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-10-09T13:16:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_write: sync dirty header before writing

* const has been removed
* Fixes samtools/bcftools#332
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1a7fdc53c5a3b895063ea9d6742dc3722260828e">1a7fdc53</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-10-12T10:05:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed sam_hdr_add_PG to avoid va_copy requirement.

Also documented sam_hdr_vadd better to indicate this.
Fixes samtools/samtools#477
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/34c3e59f2af03db3cb83e22a523b0dbf5355eac4">34c3e59f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-10-12T14:12:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed sam_hdr_add_PG to avoid va_copy requirement.

Also documented sam_hdr_vadd better to indicate this.
Fixes samtools/samtools#477
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/636d70436bc67ae234510caaaafc22a1339ce3fa">636d7043</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-10-12T14:12:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcfutils: add bcf_remove_alleles_set

* new bcf_remove_alleles_set function to the new kbitset.h api to indicated alleles
  to be removed. This avoids overflowing the old integer bitmask in bcf_remove_alleles
  when there are more than 31 alleles
* bcf_remove_alleles updated to use the new bcf_remove_alleles_set
* Fixes samtools/bcftools#319
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c700fb166ecc465841e3b87befc0c03155223a60">c700fb16</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2015-10-12T14:17:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #287 from samtools/feature/fix.332

bcf_write: sync dirty header before writing</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1e5c377721ee0a9162b1f4013f4f8120cbf0713a">1e5c3777</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-10-12T15:45:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #285 from samtools/feature/fix.319

vcfutils: add bcf_remove_allele_set</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f91da3c603b40caa0beed66917c66473b8e2bc4b">f91da3c6</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-20T20:44:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove obsolete -i/--file-info option from tabix man page

This option was removed in b2cfe4e8e5faebdebd2891cdd2445bacabd9f891,
as it duplicates htsfile functionality.

Fixes (the main part of) #291.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fa07527e23acb365d977cb5a81e5f59ec4c9bd75">fa07527e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-21T10:05:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add generic plugin infrastructure

PLUGIN_PATH is set in the makefile (rather than config.h) as it likely
contains installation directory variables, which need to be expanded
and ought to be alterable at "make" time.

Moved "ifeq $(PLATFORM)" etc to below "include config.mk" so that it
can act on the config.mk-modified $(PLUGIN_OBJS).

This way of adding -rdynamic is something of a hack, but it seems
desirable to do this alongside -ldl.  (TODO) The eventual plugins
themselves don't want to be linked with -rdynamic -ldl.

Document new configure options (including --enable-libcurl already added).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/df3fcad84004434a9092c599aa0b1fe44c9e731a">df3fcad8</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-10-22T08:21:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevent segfault on empty data files

This resolves https://github.com/samtools/bcftools/issues/339
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0e2bc689f3640efd8a7321a29301facf863f6cbf">0e2bc689</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2015-10-22T08:53:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">fix type in bcf_remove_allele_set doc (minor)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/823274d342ec5e10c73604e19949e2516bf361a8">823274d3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-28T14:17:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make plugin handling API slightly less generic

For HTSlib, we will have the convention that each category of plugin has
a well-known symbol that the plugin must provide, and load_plugin() both
opens the plugin and finds that symbol.  This simplifies plugin-loading
code for the usual case of having one extern symbol, and plugin_sym() is
available for any subsequent extern symbols.

We consider failure in plugin loading to be a case of missing optional
functionality, so also put the dynamic loader error reporting here at a
verbose log level (hts_verbose >= 4).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/07d3be74a76b0616b2ae512d2d192a5a5f4f52b1">07d3be74</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-28T17:16:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add hFILE plugin interface and pluginise irods/libcurl backends

Define an hFILE plugin interface based on plugins supplying a function
hfile_plugin_init(), which calls HTSlib's hfile_add_scheme_handler()
to register an interest in handling URLs based on their URL scheme.

On the first request for an URL-like filename, $HTS_PATH or the built-in
path is searched for files matching hfile_*.{so,bundle} (as appropriate
for the platform), and all are loaded.

Put -lcrypto in @CRYPTO_LIBS@ rather than @LIBS@ so that it appears only
where -lcurl appears; don't check for it on OS X, as where we have CCHmac()
we don't need any additional libraries at all.

Convert hfile_irods.c to register a destroy() function rather than use
atexit().  (TODO) Both hfile_net.c and hfile_libcurl.c should also be
converted, but may require further rejigging of their global initialisation.

(TODO) Add -rdynamic and -ldl as appropriate to htslib.pc.
(TODO) Add some way to enumerate the active plugins, beyond the logging
produced when hts_verbose >= 5.

[NEWS]

* HTSlib can be built to use remote access hFILE backends (such as iRODS
  and libcurl) via a plugin mechanism.  This allows other backends to be
  easily added and facilitates building tools that use HTSlib, as they
  don't need to be linked with the backends' various required libraries.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fe1f08a3a80b8a5a17fa56b3fc1808ab2ac25d63">fe1f08a3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-29T09:54:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge libcurl backend and hFILE plugin infrastructure

[NEWS]
* Files can now be accessed via HTTPS and Amazon S3 in addition to HTTP
  and FTP, when HTSlib is configured to use libcurl for network file access
  rather than the included basic knetfile networking.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ccc2cac50bae3d4c830089edfb7638eea2dd7b6d">ccc2cac5</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-29T13:39:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make hFILE_backend::flush() optional

Only call it (in hflush()) if it is non-NULL, and remove pointless
no-op backend flush() methods.

For iRODS, rcDataObjFsync() doesn't work on 3.x and doesn't exist on
4.x (irods/irods#2499), so remove irods_flush() entirely.  Fixes #168.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/44d6cfc0babde525ddfa33085f75e52b6f71a6d4">44d6cfc0</a></strong>
<div>
<span>by Isaac Turner</span>
<i>at 2015-10-29T14:14:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf.h macros should wrap args in brackets

Wrap macro arguments in brackets to avoid bugs in e.g.: bcf_gt_phased(x == 2)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c3881750e2aa0ad6e7e4c90c24839da09e2c972e">c3881750</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-29T14:46:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[Makefile] Rename LDLIBS to LIBS

Rename LDLIBS to LIBS; it seems that LDLIBS doesn't particularly
exist outside GNU Make's built-in rules.  Instead LIBS is configure's
conventional variable for the purpose, so is the right thing to use
for a user-visible variable.

(See also 889ee0114656bdfad43c8447b63d896f7a6f2328 and #183.)

[NEWS]
* HTSlib's configure script and Makefile now fully support the standard
  convention of allowing CC/CPPFLAGS/CFLAGS/LDFLAGS/LIBS to be overridden
  as needed.  Previously the Makefile listened to $(LDLIBS) instead; if you
  were overriding that, you should now override LIBS rather than LDLIBS.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2e4226f169e4823e63e532565bb84e4ae48578c0">2e4226f1</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-29T17:20:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[libcurl] Set User-Agent header and optional verbosity

Always add a "User-Agent: htslib/<version>" header.  Fixes #295.

When hts_verbose is 8 or more, set the voluminous CURLOPT_VERBOSE.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7e4d2b1153d6080805c2b4047323457e1709fe9c">7e4d2b11</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-10-30T15:09:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix plugin installation rules

With plugins disabled, 'test -n ""' is false but we need to ensure that
the exit status of the entire recipe line is success.  D'oh.  Fixes #296.

It might be nicer to have new installdirs-plugins/install-plugins rules
that are activated by config.mk, but that too would need to handle the
case of --enable-plugins with no plugins actually being built -- which
would make it not so nice.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/360b67c3dbd6d199cd20bd587b7ecc3e101364dd">360b67c3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-11-02T13:41:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Override iRODS 3.x/4.0.x's misguided SIGPIPE handler

Prior to iRODS 4.1, rcConnect() (even if it fails) installs its own
SIGPIPE handler, which just prints a message and otherwise ignores the
signal.  Most actual SIGPIPEs encountered will pertain to e.g. stdout
rather than iRODS's connection, so we save and restore the existing state.

Fixes samtools/samtools#350; see also irods/irods#1970 which removed the
installation of iRODS's SIGPIPE handler, from iRODS 4.1.0 onwards.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/00080ba2208a18a79fb29e4d2cd4573085576aa7">00080ba2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-11-05T16:00:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[iRODS] Set User-Agent and verbosity; basic iRODS 4.x support

* Set a User-Agent for display by ips
* Propagate hts_verbose (>= 5) to rodsLogLevel()
* Decode some more iRODS status codes
* Source code changes for iRODS 4.1+: add header no longer included by
  other headers; work around the change in clientLogin()'s arguments
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fa6ed9acc9f90252d0f25401407d75523f42b409">fa6ed9ac</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2015-11-06T10:18:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">synced_bcf_reader: _regions_match_alleles exit with an error when payload is not available

Prevent errors such as reported in samtools/bcftools#346 and samtools/bcftools#239

Closes samtools/bcftools#346 and closes samtools/bcftools#239
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/20725273401e6a3654de7f3218a59503b131d796">20725273</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-11-19T12:00:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add system includes and extern "C" to public cram.h header

Ensure that "#include <htslib/cram.h>" works even when it is not
preceded by any other #includes; needs various system headers,
and hts.h for enum hts_fmt_option.  Hat tip Ivo Palli.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a2656aa0762e9e0d98dab78237708d49645017c2">a2656aa0</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-11-23T10:27:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add htsfile -v option to increase hts_verbose

Adds a simple way to see e.g. plugin debug logging.

Remove the previous "hts_verbose = 2" -- the default htslib log level
is already 3.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d9e9e3a9cfba7b3048e9d0f79273d23832b0e86f">d9e9e3a9</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-11-26T16:03:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix error return value typos and clamp zfclose() return

Ensure that cram_index_build() returns exactly -1 when zfclose() fails.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6462e349d16e83db8647272e4b98d2a92992071f">6462e349</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-11-26T16:09:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Distinguish sam_index_build() file opening and can't-index failures
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e9fcc5733f7c0bb2d0c7003e54c0ba76bbc95a19">e9fcc573</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-11-30T10:36:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Support S3 config files and temporary credentials

Extend the URL authority part parsing to "[ID:SECRET:TOKEN@]BUCKET".
The latter fields are optional, and if only a username is provided,
interpret it as the profile to look for in the configuration files.

Check the conventional AWS environment variables for session token,
profile, and credentials config file location.

Pick up credential settings from ~/.aws/credentials (standard shared AWS
credentials file), ~/.s3cfg (as per s3tools), and ~/.awssecret (as per
Tim Kay's aws and Heng Li's kurl.c), in that order.

Check for $AWS_SESSION_TOKEN etc and propagate any temporary credentials
found to X-Amz-Security-Token header.  Hat tip @DonFreed.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a3567461b29eb695f87b3db6a9bdd1e35f2d709b">a3567461</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-11-30T17:08:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Register a plugin destroy() method rather than use atexit()

Move curl_global_init() etc to the plugin init routine.  This only
allocates a little memory -- no sockets or connections are started.

Add libcurl version to the User-Agent string.  Remove TODO re HTTP being
disabled; in this unlikely case, we'll translate s3[+*]: to an http[s]: URL
and return CURLE_UNSUPPORTED_PROTOCOL => EINVAL, which suffices.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b8204c12e1a474cf4b3ed845e0323f71a12c0cda">b8204c12</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-02T17:31:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Eliminate bgzf_fdopen() from tabix and bgzip

Use bgzf_open("-", "[rw]") as appropriate instead.

Refactor write_open() into confirm_overwrite(), as one invocation now
uses bgzf_open() rather than open() and locallising the error handling
at the two call sites improves the error messages.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/82bdc9f02d905916dd70774ee98770e7d425a489">82bdc9f0</a></strong>
<div>
<span>by Isaac Turner</span>
<i>at 2015-12-07T17:49:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make bgzf_compress() a public API function

Change function parameter types to size_t as elsewhere in bgzf.h, and
const void *src as it really is and as next_in is in zlib 1.2.6+.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bbd333429e900bf8c3277cfcaddacb3a7aec81ed">bbd33342</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-07T18:53:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Restore open(O_CREAT) mode arguments [minor]

Fix oops from b8204c12e1a474cf4b3ed845e0323f71a12c0cda.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cb6642a99e4306fa9f3d3291f33c609be0f45600">cb6642a9</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-09T11:40:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow for n_targets==0 in bam_hdr_read() malloc checking

The malloc()/etc functions might return NULL when asked to allocate
zero bytes.  The clearest way to avoid the collision between this and
NULL-meaning-ENOMEM is to be explicit about n_targets==0 implying that
target_name and target_len will be NULL.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5fb0d2db2c057243309f5d80e502af04ebfc963c">5fb0d2db</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2015-12-09T15:43:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Define PATH_MAX
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/57b6def36eb632fb547a182b7858a08ac88eed94">57b6def3</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2015-12-09T15:54:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More verbose description vor -dev and -test package
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c1eaca0fbae93fe7515728670acae76a256fa641">c1eaca0f</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2015-12-09T15:59:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix lintian override
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eb12aa09b789e0e4cd22b00d02eda97c614ac66e">eb12aa09</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2015-12-09T16:00:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Verified Mayhem bug report which is solved in this version
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e6d7e9d1b42d164f3e74b0b903a30a9286f1f29b">e6d7e9d1</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2015-12-09T16:00:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d341aaf886ba4b9be8af06be50f6e93184a6c52f">d341aaf8</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2015-12-10T11:18:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More fuzz-detected BAM file input checks

(Squashed from PR #217, and partly tweaked by the committer.)

* Add missing test for running out of data to sam_format1.

Makes the code to handle B-type tags check that it has at least 4 bytes
available before reading the number of items.

* Ensure c->l_qname >= 1 in bam_read1.

qname must have at least a NUL in it, so the minimum possible length is 1.
Prevents a possible wrap-around in sam_format1 which uses the value
c->l_qname-1.

* Fix test for enough bytes left when converting B-type tags in sam_format1

The check wasn't strict enough as it did not take the size of the array
elements into account.

The test for enough bytes in sam_format1 has been arranged so that it
doesn't try to work out n * sub_type_size.  This avoids the possibility
of overflowing an int32_t.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fe8b2100a743c2b8ff8daf872d0d66512cdb4843">fe8b2100</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-11T10:34:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Set binary mode on stdin/stdout and improve Windows/MinGW compilation

Implement the longstanding TODO re setting Windows binary I/O mode when
operating on standard input and standard output.

Define fallbacks for undefined errno values.  Use Windows <winsock2.h>
instead of POSIX networking headers (non-MinGW may also need to #include
<io.h> explicitly).  Just avoid struct stat::st_blksize for now (we may
want to implement a native Windows equivalent in future).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2b2239a8525e3f86912142df27e105f31b713b82">2b2239a8</a></strong>
<div>
<span>by Jason Piper</span>
<i>at 2015-12-11T18:24:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Enable multithreaded BGZF compression in bgzip command

(Squashed from PR #272.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/449b20af16131b0493a9bf942d1760c5fd39cd10">449b20af</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-15T13:11:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add "plugins-htslib" target for third-party code
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b72566753f33c84a45c581c86d28814ec0575a49">b7256675</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-15T13:35:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Configure should fail when HMAC() cannot be found
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0f6c185276b1408766363118a1df9511a82fabf1">0f6c1852</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-15T14:09:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Explicitly define HAVE_HMAC

...decoupling it from -lcrypto and HAVE_LIBCRYPTO (which is no longer
defined with the move to AC_SEARCH_LIBS).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/87141ea6ec0ee34db0748b2ae6a5840c456f5a02">87141ea6</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-15T16:34:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Release 1.3: plugins, libcurl, CRAM v3.0, many bug fixes
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c72ae908e605edf2d8f7c070227bafb266253b22">c72ae908</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-15T23:11:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge version number bump and NEWS file from master
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/68e6f6c1b6dd413a13f61eb8ca174a503da8e394">68e6f6c1</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-12-24T04:14:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge tag '1.3' into debian/unstable

HTSlib release 1.3, plugins, libcurl, CRAM v3.0, bug fixes

* Files can now be accessed via HTTPS and Amazon S3 in addition to HTTP
  and FTP, when HTSlib is configured to use libcurl for network file access
  rather than the included basic knetfile networking.

* HTSlib can be built to use remote access hFILE backends (such as iRODS
  and libcurl) via a plugin mechanism.  This allows other backends to be
  easily added and facilitates building tools that use HTSlib, as they
  don't need to be linked with the backends' various required libraries.

* fai_build() and samtools faidx now accept initial whitespace in ">"
  headers (e.g., "> chr1 description" is taken to refer to "chr1").

* tabix --only-header works again (was broken in 1.2.x; #249).

* HTSlib's configure script and Makefile now fully support the standard
  convention of allowing CC/CPPFLAGS/CFLAGS/LDFLAGS/LIBS to be overridden
  as needed.  Previously the Makefile listened to $(LDLIBS) instead; if you
  were overriding that, you should now override LIBS rather than LDLIBS.

* Fixed bugs #168, #172, #176, #197, #206, #225, #245, #265, #295, and #296.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b333524c104fff71e2683a9f8408fb5f061ebbb7">b333524c</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-12-24T04:17:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream release; corrected path to a copyright statement.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d6a8f091a26f6511b0aafb5b8a8fcd1409aa5df3">d6a8f091</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2015-12-24T04:20:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upstream does not prefix tags with 'v'.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ae4c86a17c950925a2861a5ad38c5e8552cd838c">ae4c86a1</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2015-12-31T02:22:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid POSIX Issue 7-specific errno value [minor]

(FreeBSD and derivatives apparently don't have ENOTRECOVERABLE.)
Bugs in our callback routines are a "can't happen" scenario anyway,
so falling back to the default EIO suffices.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0382edf813e345e83133372b811a2d901590d061">0382edf8</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-01-02T20:31:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use getopt.h's descriptive constants in long options array
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/70bfd53042902d53c7ef2358aeb85dc80c4bc63a">70bfd530</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-01-02T20:38:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Happy New Year

Add --version options to bgzip and tabix.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/df4a80e9c387bb1d84cdb47c02e44e77b0f57770">df4a80e9</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-01-04T10:55:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Free all in-flight pileups in bam_plp_destroy()

Fixes #299.

Write bam_plp_next()'s node-deleting loop more clearly, using a pointer
to the pointer-that-points-to-the-node rather than an obscurely-used
dummy node.  Write list-is-empty tests more clearly.  Lift the call to
overlap_remove() out of the loop in bam_plp_reset(), as it is idempotent.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ab9e80d4dcebbea6073add61a2f995eb6078039f">ab9e80d4</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-01-14T12:20:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a CRAM encoding assertion failure on repeated templates.

If we have a complex template where more than 2 reads exist and we
have valid pnext/tlen fields between each successive pairs, the code
was erroneously removing the statistics for the tlen(etc) values
multiple times instead of just once.  Test data included.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a6e48836b781270e22bac5d895334a4795a12a18">a6e48836</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-01-20T13:50:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ignore .exe and .dSYM extensions

We remove *.dSYM in "make clean", so we should ignore it ourselves too.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4c0c448f902b76e6886963c8a28c9f59e5455606">4c0c448f</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-01-22T15:16:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Clarify misleading code formatting [minor]

Prevents GCC 6 -Wmisleading-indentation warning.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/92654ef705687e9d5f02ac9dd345f03c1575d290">92654ef7</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-01-26T14:21:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed crash in CRAM generation with cigar ops > 2^27 in size.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c789bed77a5f8df158351041483c98c4a0cd13ab">c789bed7</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-01-27T11:19:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Force detached read-pairs if they span references.

Previously it was possible for a read-pair aligned to different
references to still be claimed as an attached-pair if they were in the
same slice and their 5' to 3' size was as listed in their (broken?)
tlen fields.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f1327a703583bf61e2e7ffd11198487fee2a8422">f1327a70</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-01-27T14:00:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add AC_SYS_LARGEFILE test so 32-bit systems can access 2GiB+ files

Defines _FILE_OFFSET_BITS in config.h as appropriate.  Hat tip @trifud.

Now that config.h has ODR implications, add #include <config.h> to
absolutely all *.c source files (cf 5f5aa02bfeb3857e8671f12a85787404ef9fa799).
Most k*.c files differ from their klib upstream versions due to #include
path-related trivia anyway, and knetfile.c in particular needs to see the
newly-added definitions.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/72cb247f0da6fff117a56b3a18cc3b4d7c2a8e68">72cb247f</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2016-01-27T17:16:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">allow spaces in vcf header lines

* allow spaces between keys and values when parsing in header lines
* these spaces will be dropped when writing out the header

e.g. `##reference=<ID=hs37d5 , Source=blah>` and `##reference=<ID=hs37d5, Source = blah >`
     will become `##reference=<ID=hs37d5,Source=blah>`

Fixes samtools/bcftools#266
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3fac82bc743e57bf34d3e8d1954e850db6cf2a8e">3fac82bc</a></strong>
<div>
<span>by Artem Tarasov</span>
<i>at 2016-01-27T17:49:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">remove code duplication from thread_pool.c
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/406c7d0a1790e9c0d7393696be06c3e6d0653a2d">406c7d0a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-01-27T17:54:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Squash a duplicated conditional into a single one.

It was already done this way in the original t_pool_dispatch()
function, but apparently not in the non-blocking variant.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1d38e31f80051b2fc2c01cb5bbde87441e9f950e">1d38e31f</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-01-30T12:18:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">use secure Vcs-Git
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6cd8493c1fe0330cc448feed2ae877dec70676c3">6cd8493c</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-01-30T12:18:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">update symbols file
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9eb53943ec8ad6df3633d82a5e7a737c0b940b03">9eb53943</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-01-30T12:18:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ignore metadata different between tarball and git repo
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3e3d9a2cbd5e73c45d7fe94b2bd06a131f9a69af">3e3d9a2c</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-01-30T12:18:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">update d/changelog
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6c3a0f563a37c855b28500f33a9b7343ba9af320">6c3a0f56</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-01-31T11:36:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">set release distribution to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cc07c669426dba9be0149e5f1c8345098887268c">cc07c669</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-01T13:21:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Silence faidx_fetch_nseq() deprecation warning in test suite

To test ABI compatibility, test/sam.c calls faidx_fetch_nseq() to check
that it still exists.  The deprecation warning is just noise here.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2805ae8041f2d49b889d0b4f54c53070e4791dbb">2805ae80</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-02T09:46:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix compilation with ancient libcurl (7.18 to 7.21.x)

CURLE_NOT_BUILT_IN was introduced in 7.21.5; hat tip @AndreasHeger.
In theory we should test for this with configure, but libcurl maintains
good records of when things were introduced, and life is short.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4f98dcd2aa61fde9988d6d021ce8ae6cf78f94a4">4f98dcd2</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-02-02T14:38:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improved robustness of fai_build_core.

Fixes samtools/samtools#131
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f8441c3bd57ad1201d502cfe32f300db399b0c6f">f8441c3b</a></strong>
<div>
<span>by daviesrob</span>
<i>at 2016-02-03T16:32:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #312 from samtools/cram_stats_fix

Fixed a CRAM encoding assertion failure on repeated templates.</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1e94726d14d5efebae737b05d8a48d4bb727ee0d">1e94726d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-04T11:23:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make local vcf_parse_format() function static [minor]

This means the _vcf_parse_format() symbol no longer appears
in libhts.so, but that was an internal function private to the
library, so affects neither API nor ABI.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cad00ea01b5c3e22fa5804c28ff355a39bc84ea2">cad00ea0</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-04T11:35:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix format string length computation

Add test case.  Fixes #325.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ed35e415fbcfd27f3c697e7f88d5bad8662afb8e">ed35e415</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-05T14:32:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Detect non-numeric characters in numeric format fields

Stop reading on characters-other-than-comma rather than when we see
the expected colon or end-of-field.  Fixes #321, fixes #322, fixes #323.

At present prints an error message and aborts parsing.
TODO We may need to add a new BCF_ERR_* value to |= into v->errcode,
and we need to consider whether plain "return -1" is appropriate.
(Adding a setting to reduce this to a warning would facilitate adding
the reported example VCF records as test cases in test/formatcols.vcf.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/67634efa61e785c5d1f5a722d51a806d8313d239">67634efa</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2016-02-06T11:31:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Introduced EDAM annotation for TABIX
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e25e9710527e2391076eaf9b34b339ca855fe8fe">e25e9710</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2016-02-06T11:34:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Newly introduced Tabix index file format
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5632d5d445d77e7dead3b95103113979a47a4c4b">5632d5d4</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2016-02-06T11:37:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tabix index file format, longer form
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/59917d4f15b76213acf32f33fed9bb1e95a92b39">59917d4f</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-02-08T16:01:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">add upstream's patch for largefile issue
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/87e9cf5611f41579709e0b24d98ee938a26513d1">87e9cf56</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-02-08T16:34:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">add patch to run configure
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a0b324148c86b362e4182e12f439d31e76cf2b36">a0b32414</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-02-08T16:35:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">run configure step before build
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/00bd24c6605c400099abed1d43dac5253608edae">00bd24c6</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-02-08T16:35:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">update changelog
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/231557d378815709369d8d304f8e9b64399b425a">231557d3</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-02-08T16:46:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'debian/unstable' of ssh://git.debian.org/git/debian-med/htslib into debian/unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/388bb16abffcf5f34e8743c86386f0982a339b2f">388bb16a</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-02-08T16:46:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">dch -r
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/48353e1753735d35b5af30e73e6e0fe091d48ac6">48353e17</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2016-02-08T16:52:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">move around team upload notice
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/acc0763df469723660b5c40ca904ef1c3a1cc7e5">acc0763d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-02-09T14:59:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adds a warning about RNEXT fields with no matching @SQ record.

Also see samtools/samtools#489
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7c84a4aaad9d7d7beb3fb3915cf72fda6c89ac6e">7c84a4aa</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-02-10T15:11:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">File format strings can now be specified uppercase or lowercase.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d7ecf685f686541c6e2badd100594f2134206c92">d7ecf685</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-02-12T15:14:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Extra validity checking when caching a local copy of the reference.

A broken network connection, tested by using our own proxy, causes a
truncated reference to be cached followed by (continued) breakage on
decoding CRAMS.

We weren't checking for errors from hread() in find_file_url(), so
added them.  However this actually makes no difference as recv() on a
socket closed by the other end just returns 0 - same as EOF. Therefore
a second more robust check is to validate the md5sum of the returned
buffer matches the requested md5um.

[Diff reviewed and approved by Rob, so doing a direct commit.]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/62ed90a97b7b7f8899f183ca3e6e8e4e64dac662">62ed90a9</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-12T16:32:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge file format string case insensitivity (PR #337)

Add scan_keyword() helper function, which could also be used in hts_opt_add().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eb3481f93bbdb309997236b08c1dea916c879743">eb3481f9</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-02-18T16:51:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix to CRAM required_fields option.

(See also io_lib SVN r4003.)

Initialise cram_flags when required_fields indicates it is not
needed.  This avoids valgrind error in
valgrind ./test/test_view -i required_fields=0x3f foo.cram

Changed default sequence length to 0 instead of 1.  I've no idea why
it was 1, but it causes seq to come out as "N" instead of "*".  The
former breaks samtools as seq is a different length to the cigar
string.  The change now means that omitting sequence entirely is
possible and still yields a valid BAM stream.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fc9aeb6f77668afed412119701c5c58b0fca8091">fc9aeb6f</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-19T10:52:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add internal isdigit_c()/etc functions for plain chars

Using `char c; ... isdigit(c)` is technically incorrect (as the
<ctype.h> functions expect an int such as is returned by fgetc()) and
produces a warning on Windows.  See also CERT STR37-C's explanation.

Add our own *_c() functions operating on plain chars to hts_internal.h,
which also allows us to in future reimplement them directly to make them
immune to locales.

Use *_c() instead of casting to unsigned char in hts.c and vcf.c.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a918794d0d2235b301f9efc8ad09100fa8335fd0">a918794d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-19T10:52:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Interpret digits directly in parse_version()

The buffer is not NUL-terminated, so using atoi() may be problematic.
Consider e.g. "##fileformat=VCFv4. -1" which contains delimiters for
/[0-9]+[.][0-9]+/ but ordinary characters for atoi().  Hat tip @daviesrob.

(Valid format versions will have at most a couple of digits, so we are
not too concerned about overflow here.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/091c89ca23dfa928cc088f8cd5f13efa7fa29855">091c89ca</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-19T11:35:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid tautology warning [minor]

Rather than being malloc()ed, ch->codecs is an array so is by definition
not NULL.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f4718299f7e4514a9790dfcd091a9066cc1fc2b2">f4718299</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-02-24T11:55:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Wrap load_hfile_plugins() in a critical section
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/64b788f6d3f3b7d773d3795feacb7e5558850833">64b788f6</a></strong>
<div>
<span>by jenniferliddle</span>
<i>at 2016-02-26T09:47:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid unnecessary warning on unknown sort order
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ecdc3489e5f5c488e569e522dfd9f6db38229214">ecdc3489</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-01T12:04:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed build with -DTEST_MAIN.

This enables a little main() function for standalone testing, which
apparently hasn't worked in a while.  It's purely debug only and has
no impact on the library usage.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/30fb013df2f32034fb032e41fa8743be863f48d5">30fb013d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-01T13:44:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Simplify hts_idx_save_core() endianness handling

Use idx_write_[u]int{32,64}() functions to abstract endianness handling
away from hts_idx_save_core(), removing the need for two separate code
paths.  (Fixes n_no_coor big-endian bug.)

Use "wu" to open BAI files as uncompressed BGZF files.  With this,
hts_idx_save_core() writes only to BGZF*, so idx_write() can disappear.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3b2de7b717baddc18009fee070d210d9f3de7a94">3b2de7b7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-01T15:10:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Incorporate test_view.pl into the test.pl harness

Interrupting the tests with <Ctrl-C> now works.  The previous test
harness used Perl's system(), which ignores interrupt signals.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/820689c4a6437bc6675fc2b5fe27094f429220d1">820689c4</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-01T15:32:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Write failure messages to stderr

No difference by default, but enables highlighting the failures or
capturing them by redirecting stderr.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c5187a88cb25348f293695b2b79d6114e3c894e2">c5187a88</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-03T11:31:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tidy up hts_idx_save_core() / hts_idx_save_as() code

Clarify loops; lift bgzf_open/bgzf_close out of the per-format code.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/26b3085c1c21c8437cbab0c5e4a72fe19cc9dd61">26b3085c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-04T11:26:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Constify cram_encoding2str() and remove duplicate function [minor]

This returns a string literal, so const char *.  Remove codec2str()
which just duplicates it.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dd69d7a411a4eee46ba43148d9a39be529df3180">dd69d7a4</a></strong>
<div>
<span>by kirkmcclure</span>
<i>at 2016-03-07T11:23:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Report zlib error codes in bgzf.c
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c32590a43a0c883e6e370a2c9a7bc8d09919cc8c">c32590a4</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-03-08T09:21:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove abort() and improve multi-threaded worker error handling

Get rid of the calls to abort() and return error codes instead.

Make worker_aux() give up in a cleaner fashion if it spots an error.  In
particular, after setting its error flag and tidying up, it ensures that
w->mt->proc_cnt is incremented so that mt_flush_queue() won't get stuck
in an endless loop waiting for it to finish.  It then returns 0 so it
will be called again, where it can wait for done to be signalled in
the normal way.

Ensure that mt_flush_queue() only writes data if no errors were reported
from the threads (otherwise the output would have missing blocks).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6d5124b5a179c2940699f00bb61c513b049400b4">6d5124b5</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-03-10T11:21:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add HTS_RESULT_USED to some function prototypes and fix resulting warnings.

HTS_RESULT_USED is __attribute__ ((warn_unused_result)) on gcc and clang.
Add it to some functions that return error codes as an int, to ensure they
are checked.  Notable exceptions are *_close functions, which lead to too
many false positives due to them being called in error clean-up code.

The warnings are fixed, along with some other obvious cases where errors
are not being handled properly.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fc9c7bde8acb160c11e52c21b70ba4e4e52f8702">fc9c7bde</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-10T13:44:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix warnings; don't mark bgzf_mt() as HTS_RESULT_USED

bgzf_mt() is mostly advisory, so don't mark it as HTS_RESULT_USED.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/52204884eb1b4d195f9655dc0abdae591b8d7754">52204884</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-03-10T14:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tidy up error reporting and fix possible memory leaks.

Turn bgzf_zerr into a function that returns strings instead of having
it write to a file directly.  Also don't export it any more as it isn't
very useful outside bgzf.c.

Improve error checking in bgzf_write_init.  Put better clean-up code in
bgzf_write_init and bgzf_index_load to avoid memory and file leaks.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/aef535cab4712499d1f284973c1eb78c83dc86fe">aef535ca</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-03-11T09:03:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Makes bgzf_zerr return the z_stream msg parameter where useful.

Unfortunately zlib doesn't set msg for every possible error return, so
this only uses it in the cases where it might be set to something that
is better that the static messages in bgzf_zerr, and not likely to be
a stale message.  In practice this is mainly when inflate returns
Z_DATA_ERROR.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/27d1c805c396643d8ba262f945198ad8cd6dd14a">27d1c805</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-11T14:53:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Simplify bgzf_index_dump() / bgzf_index_load() endianness handling

Use f{read,write}_uint64() functions to abstract endianness handling
away from the main functions, removing the need for two separate
code paths.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5523a23bf4a4075b83d6951b97880c6b55681f1a">5523a23b</a></strong>
<div>
<span>by Martin O. Pollard</span>
<i>at 2016-03-14T16:52:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix tabix man page CSI option

-C --csi had duplicate of previous line. Add proper CSI mode
description (Fixes #348).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fc93dfc1f9e0e701bccba69838bcbb21ef1d1328">fc93dfc1</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-15T14:06:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More efficient index loading.

There is no need to load all the unmapped slices in the nested
containment list as a nested list.  All being the same size doesn't
imply containment in this special case and it's more efficient to load
them as a normal linked list instead.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b2f29c861df33b139250de1502353269d6c73ee7">b2f29c86</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-16T09:55:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor fix to lzma error message.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3ea35c93266c701843aac54bdf93a3378d3af2f7">3ea35c93</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-16T14:52:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a safe_ltf8_decode function to go along with the itf8 variant.

Also fixed a potential speed issue when doing multi-threaded
encoding.  This was fixed in io_lib svn r3956, but for some reason not
duplicated here (unless there was a reason it didn't count, which
escapes me if so).

Plus a couple harmless/tiny code tweaks to improve diffing against
io_lib.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c62d1ff00ce983f0d63ee6677b846a5f9faac0f2">c62d1ff0</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-16T15:01:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed multi threaded partial decoding. (Eg quitting after N reads)

This triggered a bug where the decoding cram pool was flushed during
closing, attempting to write a container (to a file descriptor opened
for read, leading to crashes due to missing buffers).

See io_lib r3988.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f1eb18ddfda42a649336f59170b9c34b724d0964">f1eb18dd</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-16T15:12:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a bug where we weren't setting fd->first_container on V2.x or
V3.x files (io_lib r3789).

This doesn't have any impact yet, but will once if make the index work
on a file read from a pipe (io_lib r3790).  I'm not sure that's so
useful though; better is to index on-the-fly during creation.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/22ef71524faeb32cfc466335a372fb4f3d090711">22ef7152</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-17T11:48:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Code changes to synchronise cram_encode.c (mostly) with io_lib.

- Various minor formatting changes, to make diff easier.
- Bug fix cram_compress_slice compression of block zero.  Generally
  nul effect, but now done explicitly.
- A few assertions are now returning error codes instead.
- New cram_update_curr_slice function (svn/3976,3978), fixing issues
  with explicit flushing part way through encoder.  (Not done in our
  code, so nul effect here, but it's tidier code.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/66079072726a60e377890385a37dbc883d87556d">66079072</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-17T12:48:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merged in several cram_codecs changes from io_lib.

- Cache the cram_block in the codec.  This makes lookup efficient when
  the content_id is high (produced by cramtools / scramble aux tags).

- Fixed various AFL identified issues with reading past buffers during
  decode (see r3920, 3928, 3929).

- Better error reporting.

- Sanitised "value" vs "val".
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/99f112c12e5090f66ed7f21c5c60eeaaa4ae005a">99f112c1</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-18T10:45:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improved error checking, copied over from io_lib.

Also some minor changes of no consequence; removal of dead code and
signed changes, purely to make the code easier to diff against
io_lib.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1a050b4fc9d429a821b2ed7085b5d68a0b7fcc51">1a050b4f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-18T14:11:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed memory allocation issue when decoding CRAM.

This bug has existed a long time, but is now more likely to trigger by
6d2810cdbbbe4646dcf7a4fab1003aa99319c55a due to making it more likely
to overrun the buffer.

The issue is caused by zero length sequences ("*") with a CIGAR
alignment.  A full bullet-proof fix will require more work to use the
...decode_block() codec variants, but this fixes the common case of
length 0.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c6187714d321737f695b0eadf27dc3ce3cb9f82a">c6187714</a></strong>
<div>
<span>by Isaac Turner</span>
<i>at 2016-03-20T21:20:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcf.h:vcf_parse() add documentation

Add a comment to vcf_parse() to document that the input line must not end with a newline character.</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5ff6cf00003ac684c4389604f038fc519688075c">5ff6cf00</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-21T15:34:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a few prebuilt CRAM files.

These are from Staden io_lib, which exposed the buffer overrun fixed
in 1a050b4fc9d429a821b2ed7085b5d68a0b7fcc51. The CRAMs have been made
by a version of Cramtools-3.0.jar and are designed for
interoperability testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ad6fa248a7a4abedd367f18630211357b10cbc17">ad6fa248</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-21T16:13:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Set Git attributes for BAM and CRAM files in the repository
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5af1b932e1377f1d7332c095a8e6bfcce27a8b47">5af1b932</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-21T16:34:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change test output filenames

...to match the patterns are already git-ignored and cleaned by
"make testclean".
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1dee8d5a6fb6b10debd7562bf0abd6f5869693a3">1dee8d5a</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-21T16:40:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge CRAM decoding memory allocation fixes (PR #357)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/103f55a76a3337c77beb63e40ff8ede9ab5758dc">103f55a7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-21T21:03:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change test output filenames [minor]

Output SAM files use "*.sam_" to avoid being picked up as input
files by test_view()'s glob().  Oops.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a061cc2163e47f04dec96cdcbd3a59339ba89400">a061cc21</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-22T12:08:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a BASES_PER_SLICE hts option.

This is used in CRAM to set an upper limit on the number of bases per
slice in addition to the sequences per slice.  The default value is 5
million, equiv to 10,000 reads (the default seqs per slice) each 500bp
long.  Note adjusting seqs_per_slice does not automatically scale
bases_per_slice.

The reason for this is to prevent excessive memory usage when encoding
or decoding long read technology data (eg PacBio or ONT).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/385787568f1f2aa63f1032c105cd60714dbc09e0">38578756</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-22T14:05:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add BCF_ERR_CHAR bcf1_t::errcode and improve diagnostic

Show the exact invalid character for unprintable characters too;
improves error messages such as in #358.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/53c064cd93ec2f396647f89e099188acef556a8f">53c064cd</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-23T10:53:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check dummy header IDs can be retrieved

When we cons up a dummy header for unknown contigs and tags, ensure
that the user-supplied ID is sufficiently syntactically-correct that
the resulting header can be parsed and the same ID retrieved.

Fixes #324 and several test cases by @daviesrob.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ee98182c18ae180df97aa76b99e32bb7ff8d3541">ee98182c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-23T14:12:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CRAM encoding now puts auxiliary tags in their own blocks.

This makes it easier and faster to pull out some aux types while
omitting others.  It may also have a small improvement to compression
ratios.

-rw-r--r-- 1 jkb team117 6074896 Mar 23 14:15 /tmp/_new.cram
-rw-r--r-- 1 jkb team117 6094754 Mar 23 14:14 /tmp/_old.cram

New cram blocks ("cram_size" tool output):

Block content_id      32, total size       22432    rR TL
Block content_id 4279619, total size       14811 g  rR AMC
Block content_id 4342618, total size        7744 g     BCZ
Block content_id 5330010, total size      102272     R QTZ
Block content_id 5459267, total size       14223 g   R SMC
Block content_id 5779523, total size        7562 g     X0C
Block content_id 5779539, total size         272 g     X0S
Block content_id 5779779, total size        8193 g     X1C
Block content_id 5779795, total size         417 g     X1S
Block content_id 5783898, total size       59925 g     XAZ
Block content_id 5784387, total size        1063 g     XCC
Block content_id 5785411, total size        3198    r  XGC
Block content_id 5786947, total size       23071    r  XMC
Block content_id 5787459, total size        2729    r  XOC
Block content_id 5788737, total size        5825     R XTA
Block content_id 6370115, total size        1007 g     a3C
Block content_id 6383683, total size          89 g     ahC

Old cram blocks:

Block content_id       1, total size      104953 g     SMC AMC X1C X0C XGC XCC XOC X0S a3C ahC X1S XTA XMC
Block content_id       7, total size      102272     R QTZ
Block content_id       8, total size        7744 g     BCZ
Block content_id       9, total size       59925 g     XAZ
Block content_id      32, total size       22432    rR TL
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/68867eaa14b2c8dc1875e09e7db411d7cf1e8a3d">68867eaa</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-29T10:15:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Miscellaneous VCF parsing fixes

When scanning header field values, be sure to stop at the end of the
line.  Fixes  ##FILTER=<ID=i"<">  test case.

When scanning quoted header field values, skip the terminating quote
only if it's present.  Fixes devious  A,B="C  CHROM column test case.

When removing trailing spaces, don't trim past the start of the value.
Fixes  ##INFO=<ID=BADNUM,Number= ,Type=Integer>  and  FORMAT-spaces-only
test cases.

Parse FORMAT columns until the end of the input kstring_t.
Fixes valgrind-detected bugs when there are (invalid) NUL characters
in the FORMAT columns.

Fix loop condition to stop on unbalanced '>' characters (i.e., when
nopen goes negative).

Hat tip @daviesrob for the test cases.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1afaf0c70fe3f2f7df216b41fea5ee5ff4a97945">1afaf0c7</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-29T14:02:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Also escape quotes and backslash in dump_char() [minor]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/370c1ed7ba2897edf2c50544e4b1480bc208b9fa">370c1ed7</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-30T11:36:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add prototype for cram_update_curr_slice to avoid warning in cram_io.c.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8f782d120433eb0321a1c0db6ee49e6bc838563e">8f782d12</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-03-30T12:05:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">VCF GT parsing fix

Also allow for omitted trailing GT FORMAT fields.  Compare 5c65920de10f3068802b6d4df1be86cfcd2ce5cd.
This is not valid VCF (in particular, because GT when present must
be the first sub-field), but we shouldn't write out-of-bounds if we
encounter it.  Hat tip @cryptoad.

Add test case, in which the non-last GT fields are misprinted as "2,4"
because the gt_i code in vcf_format() cannot handle multiple GT sub-fields
(which is invalid anyway).  Integer arrays and GT are represented the same
way in memory, so fortunately this does not have OOB reading implications.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7bf85c257f5a4e8fad32f20bf0793693beac2dff">7bf85c25</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-03-30T12:54:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Sped up rANS decoders by 6% (O0) to 10% (O1).

This is largely achieved by reducing the size of the ari_decoder
struct.  It had a lot of temporary data there which was needed to
create the lookup tables but not needed during decoding.

The R[] array is also no longer calloc/memset as it's entirely defined
by the decoder and can therefore start off uninitialised.

Also slightly reordered the decoding code as this seems to give a
small improvement to speed.

The aggregate change to samtools as a whole when decoding CRAM is
around 5%, mostly achieved through a reduction in frontend cycles idle
from 36 to 35%.   This is still too high for my liking though.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/653f45ef31d3bc485ff00aa67f3154904ee0a5ad">653f45ef</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-04-04T10:21:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Catch negative IDX tags; treat like other IDX parse failures.

Fixes an invalid read error triggered by negative IDX values.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/55ff37c39f54511d0e5c67fea88694784e47ad67">55ff37c3</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-04-05T14:26:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Correct constant passed to bcf_hdr_id2int in bcf_hdr_check_sanity.

Change BCF_HL_FMT to BCF_DT_ID when looking up GL header id.
The GL check can't have worked correctly, and using the wrong dictionary
caused odd things to happen if you used GL as a sample name.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/33de0e93da504a30f6a2de52c484d4ef28305762">33de0e93</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-04-06T11:12:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Limit number of FORMAT items to maximum allowed by bcf1_t n_fmt field

bcf1_t n_fmt is an 8 bit bitfield, so can only store values up to 255.
vcf_parse_format didn't check for overflow of n_fmt while counting
the number of FORMAT items.  This could result in allocation of an
under-sized array, followed by invalid writes when storing the format
information.

To fix this, replace an alloca call with a fixed-sized array (as the
maximum size is small and known).  Remove the code that counts the items
up-front, as it's no longer needed.  Finally, make the loop that iterates
through the FORMAT string bail out with an error if it counts too many
items.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/601f7e525183c24482afe4141c8e20659d996bcf">601f7e52</a></strong>
<div>
<span>by Martin O. Pollard</span>
<i>at 2016-04-12T12:22:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add read error check to fai_load

fai_load was invoking fai_read which did not check for ferror() on
read.  (Fixes #315.)  Add some system error reporting to fai_load.

This removes fai_read() as a public symbol in libhts.so, but this
function does not appear in a public header file so is not part of
the HTSlib API.  So there are no ABI implications of this removal.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d557cb01743b7ae265ceeddcc7258427134e759a">d557cb01</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-15T15:21:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Various minor tidy ups

bgzf.c: in bgzf_close(), don't record errors inside  fp  as it's being
destroyed anyway.

faidx.c: fai_build() has already printed a diagnostic.

vcf.c: check that bgzf_read() has read the complete length expected;
be consistent with NULL vs 0.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5285dc03725e152d0e4db8b8fefe27bdd80520d2">5285dc03</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-15T15:40:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge error checking improvements (PR #271)

Omitted the bgzf.c s/count/BGZF_BLOCK_SIZE/ commit (1801353cda1c6f9ab678efe9cf059ba2584f4c90)
as it seems misguided.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0e5af188033078c68c001af2c0809d6964ecb7b4">0e5af188</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-04-18T09:06:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure vcf_parse_format always fills out end of vector values.

vcf_parse_format could skip filling out end of vector values if the
last sample record on a line finished early without including all formats.
This could lead to use of uninitialized memory later on.  Fix by moving
the code that fills end of vector values outside the loop that reads a
sample record, to ensure it always gets run.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/314cd1ec978c380d76fdc08586f17df5bfeb34d8">314cd1ec</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-04-19T13:31:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Populating CRAM cache is now much less likely to have a race
condition.

On filesystems that don't support exclusive fopen, it was possible
totrigger a race condition causing the downloaded data to become
corrupt.  We now randomise the filenames to make this much less
likely.

The data is also md5sumed before writing.  (Logically we'd check after
writing, but if we've hit an NFS issue with multiple clients writing
to the same file then we're unlikely to detect that anyway as each
system will just read back what it wrote from its own local cache.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e77826914cf2c62a09bb821b6af82933ef4b7309">e7782691</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-04-19T14:04:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed the MD5 checking code.

This had subsequentially been re-written at a different point,
in commit d7ecf685f686541c6e2badd100594f2134206c92.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a9529a4741239f63a61e62002ee1e56cea800f91">a9529a47</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-20T10:32:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Print message when first creating default cache directory

When $REF_CACHE is unset, if we write reference cache files we write
them within the user's home directory (typically ~/.cache/hts-ref).
Print a message when actually creating this directory, to alert an
unsuspecting user that we may be going to use a lot of disk space
within their home directory.  Hat tip @tk2.

If $REF_CACHE is set, it is non-trivial to determine which level is
a "root" directory to trigger this from.  In this case, we assume
that setting an environment variable indicates that the user is aware
of what's going on.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cf3e55cebd999a34c99c7990a0006aa12dd4e579">cf3e55ce</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-20T13:54:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid random number generator library functions

We are a library, so shouldn't use random()/srandom() as the client
application code may be using them and not expecting someone else to
be interfering with their entropy.

Instead base the unique temporary file name directly on process id,
thread id, current time (using plain C90 functions), and the integer
value of a pointer.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1bc63985c90a7e2ef82cfc77040f069f93466b1a">1bc63985</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-20T15:04:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge uniquified ref cache temporary filename (PR #320)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/50c4f39d9c8806fdf8a58c179479fc95033b7ecb">50c4f39d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-21T10:16:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid pointer/integer cast warning

It was debatable how much ASLR randomness this might have added.
Instead just make thrid an incrementing counter, to alter the filename
even if we go around this loop faster than the clock resolution reported
by time() and clock().  Hat tip @daviesrob, @jkbonfield.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eeec6499f9ff552d7d5278037fae01513e80a3f3">eeec6499</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-21T11:23:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge vcf_parse_format() end-of-vector bug fix (PR #370)

Clarify loop invariant: fmt[j] is the first unfilled-in fmt_aux_t.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0f298ce22c5c825c506129bf242348a31630c382">0f298ce2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-22T08:45:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Release 1.3.1: bug fix release, notably error checking
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/206484851d688243391be7fba92f9d74f1d545f6">20648485</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-22T13:44:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge version number bump and NEWS file from master
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9919fca194fc8add94f47c9e728054c1949863f0">9919fca1</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-25T08:35:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use internal plain char isdigit_c()/etc ctype functions

See fc9aeb6f77668afed412119701c5c58b0fca8091.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/543f030cd3282e936c3409d8bdafbeccc94b24fa">543f030c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-25T10:52:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add {errmod,kprobaln,bam_md}.[ch] from samtools

This begins the process of adding these functions previously in
samtools to the HTSlib API.  These files are identical to those
in the samtools/samtools@1.3.1 release.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/96acc6c580dfb29ced8a08c3e4c3be4bec5c4e20">96acc6c5</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-25T10:58:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Retain only library parts of realn.c; canonicalise whitespace

Samtools's bam_md.c contains both library functions and the calmd
command; remove the non-library-function parts and rename to realn.c.

Detab kprobaln.c and kprobaln.h.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/36bf59a2d342269baca3dd180061ca2de828329b">36bf59a2</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T11:53:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge tag '1.3.1' into debian/unstable

HTSlib release 1.3.1: bug fix release, notably error checking

* Improved error checking and reporting, especially of I/O errors when
  writing output files (#17, #315, PR #271, PR #317).

* Build fixes for 32-bit systems; be sure to run configure to enable
  large file support and access to 2GiB+ files.

* Numerous VCF parsing fixes (#321, #322, #323, #324, #325; PR #370).
  Particular thanks to Kostya Kortchinsky of the Google Security Team
  for testing and numerous input parsing bug reports.

* HTSlib now prints an informational message when initially creating a
  CRAM reference cache in the default location under your $HOME directory.
  (No message is printed if you are using $REF_CACHE to specify a location.)

* Avoided rare race condition when caching downloaded CRAM reference sequence
  files, by using distinctive names for temporary files (in addition to O_EXCL,
  which has always been used).  Occasional corruption would previously occur
  when multiple tools were simultaneously caching the same reference sequences
  on an NFS filesystem that did not support O_EXCL (PR #320).

* Prevented race condition in file access plugin loading (PR #341).

* Fixed mpileup memory leak, so no more "[bam_plp_destroy] memory leak [...]
  Continue anyway" warning messages (#299).

* Various minor CRAM fixes.

* Fixed documentation problems #348 and #358.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c2ca1bfaf91ac531263ee44117c2e56cd942e595">c2ca1bfa</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T11:55:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">First go back on debian/unstable, otherwise debian/watch is not there.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b9ed6fcbd856b330c00c14275fa92e9fd419d0b2">b9ed6fcb</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T12:13:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">A To Do list.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/559f8b44bec042eaa7f09f0f4cd07d6cfaf9a016">559f8b44</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T12:14:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove add_largefile.patch, applied upstream.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7163afb31095fd3bff811be0360ebe964d90a644">7163afb3</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T12:17:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update symbols file. Missing _vcf_parse_format@Base and fai_read@Base.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/973e9ac5c28d0a2258d2fa7a0817e68ab97bb1f7">973e9ac5</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T12:26:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Updated changelog.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3b219b8e815f72dfff16b1b1e3f1d637e2745edf">3b219b8e</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T12:31:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Enable libcurl.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ac22c29c7808d8e3a32c6e3b9a8e0e7d792e12c7">ac22c29c</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T12:35:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Enabled libcurl,  Do not enable plugins (no plugins available...).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/55b2ae462619538b27cf64f518b03f4b56bb421a">55b2ae46</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-25T12:47:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add errmod declarations to htslib/hts.h and errmod.o to Makefile

There are only three functions and one type (which can be opaque) to be
added to the API, so declare them in htslib/hts.h rather than their own
header file.  Now that errmod_t is opaque, refactor errmod.c to use its
coefficients directly there rather than via another errmod_coef_t struct.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1e6909baff21412765f0cb5a219a4f7816076ddc">1e6909ba</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-25T12:47:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rename kpa_glocal() to probaln_glocal() and add to htslib/hts.h

There are only four declarations to be added to the API, so declare them
in htslib/hts.h rather than their own header file.  The kpa_ prefix was
obscure and misleading (as this has always been local to samtools and
never part of klib), so change the prefix to probaln_ now that this is
being made public.  Rename kprobaln.c to probaln.c similarly.

(TODO) Add documentation in hts.h, based on the explanation in probaln.c.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8439061c80063b058c2bc1926f6a24dea8565804">8439061c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-25T12:47:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rename as sam_cap_mapq()/sam_prob_realn() and add to htslib/sam.h

Regularise the names of bam_cap_mapQ() and bam_prob_realn_core() now
that they are being made public.

(TODO) Add documentation in sam.h.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/622bfaab35c7eaf2e640d29e9a813c12705806fd">622bfaab</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-25T12:48:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove probaln_par_def/probaln_par_alt constants

These appear to be unused outside sam_prob_realn(), so avoid adding them
to the public API.  We can re-add them at a later date if necessary.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c2c1df36e7e8c0a127091369e43d61e0808c07af">c2c1df36</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T13:19:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Build-depend on libcurl4-gnutls-dev and libssl-dev.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8b1034772c542656a04e2cfd12fea72b18aa5dad">8b103477</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T13:19:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream release; no new copyright nor license notice.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/91015809554ec193961eab3f13a94beba25983e6">91015809</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T13:19:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Conforms to the Policy version 3.9.8.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6e232693c7781aa99c7f8e36f0197df670858363">6e232693</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T13:20:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">htslib (1.3.1-1) unstable; urgency=medium

  36bf59a Merge tag '1.3.1' into debian/unstable
  559f8b4 Remove add_largefile.patch, applied upstream.
  7163afb Update symbols file. Missing _vcf_parse_format@Base and fai_read@Base.
  c2c1df3 Build-depend on libcurl4-gnutls-dev and libgnutls28-dev.
  3b219b8 Enable libcurl.
  9101580 Conforms to the Policy version 3.9.8.

 -- Charles Plessy <plessy@debian.org>  Mon, 25 Apr 2016 22:19:34 +0900
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/68a17aa2cb156363c29638fb62a82fd505477bc6">68a17aa2</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-25T13:28:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">htslib (1.3.1-1) unstable; urgency=medium

  36bf59a Merge tag '1.3.1' into debian/unstable
  559f8b4 Remove add_largefile.patch, applied upstream.
  7163afb Update symbols file. Missing _vcf_parse_format@Base and fai_read@Base.
  c2c1df3 Build-depend on libcurl4-gnutls-dev and libssl-dev.
  3b219b8 Enable libcurl.
  9101580 Conforms to the Policy version 3.9.8.

 -- Charles Plessy <plessy@debian.org>  Mon, 25 Apr 2016 22:28:11 +0900
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d8c1ca3deb55d21fdcf938f5dacc01a6938ebb98">d8c1ca3d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-04-25T14:04:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed use of CRAM "CORE" block while encoding.

Previously the cram_stats_encoding() function was written to
roughly minimise the storage requirements.  As such it used HUFFMAN or
BETA codec for data low-volume series and EXTERNAL for larger ones.
This avoided any block overheads.  (Actually there was a lot of
additional commented-out code to deal with subexponential codec too.)

However this comes at the price that (more or less) any field may
potentially be mixed with with any other field in the CORE block.
Checking a random file I see this is so:

$ cram_dump /tmp/_2.cram | egrep 'HUFFMAN|BETA'|less
         RL =>          HUFFMAN {1, 100, 1, 0}
         BA =>          HUFFMAN {4, 65, 67, 71, 84, 4, 1, 2, 3, 3}
         DL =>          HUFFMAN {4, 1, 2, 3, 4, 4, 1, 2, 3, 3}
         RG =>          HUFFMAN {1, 0, 1, 0}
         RI =>          HUFFMAN {1, 0, 1, 0}
         ...

Huffman 1,100, 1,0 is fine (1 symbol [100] with 1 bit-length [0];
so no storage in CORE), but DL and BA series here both require storage
and are interleaved into CORE.  Now BA and DL will be stored with type
EXTERNAL.

The change in file size is expected to be minimal; around 0.01% in
tests and cpu overhead is equally tiny.

The advantage is that is simplifies partial decoding.  Although the
cram_dependent_data_series() works out which data series are
co-locating in the same block, it becomes more efficient to do
partial decodes as fewer items share a common block.  It also becomes
much easier to filter by block, dropping specific data series
completely while retaining others.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b183ab2d5abbff4592074b3ba177d84e550a7e3b">b183ab2d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-26T14:27:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add errmod / probaln / prob_realn to HTSlib API (PR #343)

Add errmod_cal(), probaln_glocal(), sam_cap_mapq(), and sam_prob_realn()
functions the to HTSlib API.  These functions were previously in samtools;
add them to htslib as they will soon be used by bcftools as well.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/10e3c2c151ac239fff357e3b886b17f1b27dbf50">10e3c2c1</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-26T15:40:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unused variable [minor]

Prior to samtools/samtools@0f490725235e5f93e60577a6a9fbd40053c8be82,
is_diff appeared in a debug printf, indicating whether pb == 1.0.
By observation (with samtools mpileup -v -E -f ref.fa foo.bam),
pb (i.e., b[0][k]) is indeed one in the current code.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/df9bd0e7b1226e93af22cf0c2fb9774a78392ec2">df9bd0e7</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-27T04:33:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Breaks: samtools (<< 1.3.1)

Closes: #822741
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/80a1c1c96132ab12f9e893b25709375e4ab143f3">80a1c1c9</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-04-27T04:34:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Current changelog.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0454d476e3ad47fdae6aa34d1ae4cc0506b88c18">0454d476</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-27T10:18:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix len parameter type [minor]

Change to match the type of arguments used and of faidx1_t::len.
Fixes #372.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/519f75a987530aa1a66180a7a8dc883a54d583ef">519f75a9</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-04-27T13:21:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prompoted cram/thread_pool code to the top-level and use it within
bgzf writing instead of its own multi-threading.

This can be a very significant multi-threading speed improvement in
some situations (depending on what other bottlenecks exist).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cd2d9157e52adf367cd7c5ca716717a34df250ac">cd2d9157</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-28T10:07:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix potential infinite loop [minor]

A well-constructed header will always contain a #CHROM header line not at
the start, so strstr() alone would suffice.  But it's easier to handle all
the cases than to verify that we get only well-constructed headers.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1385d7a87cd1791305e3b481ff21cc9491eb1dbc">1385d7a8</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-04-28T14:47:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replace bcf_hdr_fmt_text(), which can't handle huge headers

Add bcf_hdr_format(), which operates on a given kstring_t, and use it
throughout.  Mark bcf_hdr_fmt_text() as deprecated, as its conversion
of the kstring_t's size_t length to int limits it to (often) 2GiB.

(TODO) Check errors within bcf_hdr_format().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6d70a0e829062470dd30e5034d201e682de60ca5">6d70a0e8</a></strong>
<div>
<span>by Martin O. Pollard</span>
<i>at 2016-04-29T13:04:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Create API to check EOF on all htsFile that support EOF block

Create EOF checking support for CRAM with public API call.
Create htsFile API call to check EOF on BAM and CRAM
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/aaf998a97a8b26d7d800076aa496ef89daf62c66">aaf998a9</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-04-29T16:28:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tidied up the mass of #ifdefs.

All the #ifdef DEBUG + fprintf are now DBG_OUT which expands to fprintf
or nothing.

The #ifdef IN_ORDER is now mandatory with the old code culled, as we
found it to generally be a win on machines with CPU frequency scaling
turned on.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cb92f20d758e2739c1ee9650e1988da62eaa79e0">cb92f20d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-03T10:07:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Read BCF header's l_text as unsigned

Corrects bcf_hdr_read()'s handling of 2GiB+ header text.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f2399ee8e4e6558f131dedc337155f72fa2ec334">f2399ee8</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2016-05-04T15:14:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New bam_mplp_reset function to allow mplp in multiple regions

Resets all of min/pos[]/n_plp[]/plp[] to their bam_mplp_init() values.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f72add4a2c7dc75460a8558ebc41faeb99888fa2">f72add4a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-06T11:28:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Further updates to multi-threading.

The BGZF writing code now runs in its own dedicated thread.  This
simply permits it to interleave writing time with job dispatching and
other main loop bits.

The writing thread also does periodic hflush, which in turn calls
fdatasync is operating on a local file.  This avoids a much larger
amount to sync at the end when we close the file.

A consequence of the separate write thread is that the thread pool
output queue (aka "results queue") now has a size limit.  Otherwise
failure to write fast enough would build up more and more compressed
blocks in memory.

The net effect of these changes are further speed increases.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2cb33f9934e77947f26a4d8aa544c3a04d88e556">2cb33f99</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-06T11:38:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed dependencies & .mk defs so Samtools links too (threading change).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/70f1faeca8a524eb95b6114f76c967f02de2ba36">70f1faec</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-06T13:15:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed uninitialised memory (queue shutdown).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5f4f5732c66ea3526fdc1b436725fb604bdfabea">5f4f5732</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-05-07T13:19:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "Breaks: samtools (<< 1.3.1)"

This reverts commit df9bd0e7b1226e93af22cf0c2fb9774a78392ec2.

Only the test suite was incompatible, see https://github.com/samtools/htslib/issues/374
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c8c5494bb2e9c1b967dafffa00c0fd54254e005a">c8c5494b</a></strong>
<div>
<span>by Charles Plessy</span>
<i>at 2016-05-07T13:20:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Step back to 1.3.1-1, ready for backport.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f581de8b6714cf69416ce6f9d4d4f050996699b8">f581de8b</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-09T15:37:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge fixes for huge BCF headers (PR #373)

Read and write BCF headers with more than 2GiB of text.
Fixes samtools/samtools#567.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1cc7d126189ae3d4d5b291af76995545e1322c21">1cc7d126</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-10T15:22:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add curl_kput(), which slurps an URL into a kstring

Reads from the URL, appending its contents to the kstring.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b64e076c6053874e4eb755283ed6c4324b4f9569">b64e076c</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-05-13T14:02:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make hts_itr_query find no-coor reads when last reference is unused.

When searching for HTS_IDX_NOCOOR reads, hts_itr_query would return the
wrong result for indexes where the last reference was unused.  Such
references have no entries in the binning index so it it not possible
to return an end offset for them.  Add a loop so that hts_itr_query finds
the last reference with mapped reads.  If found, its ending offset is
returned as the location where the no-coor reads start.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fc062fb86bd5f0440f8725b801cdc516ae2ed80d">fc062fb8</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-16T10:13:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">knetfile.c: Only emit Range header if needed
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ab793a8deab548a24e0295ec00767681fcaf2921">ab793a8d</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-05-16T10:33:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't assume order of sequence_ids when finding HTS_IDX_NOCOOR location.

Previous commits b2aab8, 60c22d and cc207d suggest that the order of
sequence_ids in a file may not match the order in the header.  Such
an ordering is permitted by the index format.  In case it happens,
make hts_itr_query check all references when searching for the
HTS_IDX_NOCOOR location to find the one with the highest offset.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/375ba53e247119e59d227542b83e45af576335a2">375ba53e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-16T12:40:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge hts_itr_query(HTS_IDX_NOCOOR) fixes (PR #376)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e5ab99785bb8ec5a5054d6c6a2c432bdd8ee5ef1">e5ab9978</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-17T14:19:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed out by one error in bin calculation (CRAM -> BAM).

Fixes samtools/samtools#574
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/21e6a8f30e7f05b05afbaeff4f99885a80977867">21e6a8f3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-17T15:23:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reorder Makefile dependencies [minor]

Make them correspond to the order of #include lines in the source code,
thus facilitating scripted updating.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/abfd337122753870274cb5ed6163ec536e21c9a9">abfd3371</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-18T15:49:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use internal plain char isdigit_c()/etc ctype functions

See fc9aeb6f77668afed412119701c5c58b0fca8091.
Remove #include <ctype.h> from source files that don't use
any ctype functions.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5720e3e94115ea102def96f33d889a47f8c8cff8">5720e3e9</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-19T13:39:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Deleted the broken code in zfopen() when HAVE_POPEN is defined.

I've no idea how it ended up so non-sensical.  This code is defunct
anyway (fortunately) as with zlib 1.2.5 gzgets is no longer a glacier.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e1dd6353da4a93543674c447a12fccc95c167623">e1dd6353</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-20T14:16:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Sam_index_build(2) now returns -4 for failure to save/create the index.

Manually tested both bam and cram indices in all the ways I could
think of, including explicitly specifying the filename, read only
directories, corrupted inputs and existing but read only indices.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/43a94fbacf62e75f8e7b3193064b413780e1d296">43a94fba</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-20T15:47:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Write CRAM ref cache via hFILE rather than stdio

Convert the code to use hFILE, now that hopen() understands "wx".
Mainly motivated by removing paranoid_fclose(): now the only fsync()
call is in hfile.c, so there is only one place we need to provide an
equivalent for Windows, which doesn't have a function of that name.

When aborting, unlink the file *after* closing it, for systems
(i.e., Windows) that can't unlink open files.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bb03b0287bc587c3cbdc399f49f0498eef86b44a">bb03b028</a></strong>
<div>
<span>by jenniferliddle</span>
<i>at 2016-05-23T15:31:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added bam_aux_update_str()

[Changed uint8_t *data to const char *data as this function operates on
strings rather than various data types; changed bam_aux_append() data
paramteter to const uint8_t *.  -- JM]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f58922d3ad64185890cd01cdf99cc649919afcfa">f58922d3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-23T16:05:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add doxygen @file documentation

Doxygen will only generate documentation for items within header files
that have @file annotations.  (The autobrief style used here requires
MULTILINE_CPP_IS_BRIEF=YES in Doxyfile.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4eef9a7fe5a2429550682e31c1935d5e4ef73555">4eef9a7f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-25T14:17:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed CRAM MD/NM generation to follow the same logic as calmd.

The changes here are:

- N and P cigar operations no longer count towards the edit distance.
- When seq and ref match but both are "N", this is still considered
  to be a difference.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/67234cb0115001eb92909726fc7259bf1806377a">67234cb0</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-05-25T14:30:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make kstring detect more errors and work better on 64 bit systems

Add kroundup_size_t which works with both 64 bit and 32 bit size_t.

Make ks_resize preserve the value of s->m if realloc fails.

Always use ks_resize to resize the buffer.

Make ksprintf/kvsprintf and kgetline return an error code if ks_resize
fails.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/02220bf00c1fe4033a895f31e1d53247168544ae">02220bf0</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-25T14:33:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use hts_get_bgzfp() when format.compression==bgzf

Prevents crashes when reading BGZF-compressed text files (eg foo.vcf.gz),
for which the BGZF file handle is buried under a kstream.

delenda est hts_get_bgzfp.  kstream quoque.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/481752ccdd841164916368085a311f2181c6d37b">481752cc</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-25T14:52:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Not with tabs, James! [minor]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/242e03ee01ed9fa348a228572aca64283bd5872c">242e03ee</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-27T09:33:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tidied up pointless while/if duplication.
(Left over from a more complex structure.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/11661a57306a048528d0a223c86c62bcdc20eb18">11661a57</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-05-27T14:44:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Show coordinates in "unsorted positions" error message

Give the user a chance to track down where the problem in their
file is -- and a reason to believe the message is accurate.

TODO Convey the sequence names down to hts_idx_push(); this message
now prints out "...on sequence #2: ...", meaning the second sequence
in the file, which is not unconfusing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6717817dcda674885b1e55d3ff241e9dad050b5e">6717817d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-27T16:12:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Draft of the multi-threaded decoder.

Still to-do: fix the termination cases.  It works, but sometimes fails
at the last block.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2ef8e3e32a1194d473da7fdb5feb159e9bdf7904">2ef8e3e3</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-05-31T16:34:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Committing as it's a working MT decoder now.

It isn't complete and can't handle uncompressed files, but this is a
handy checkpoint to go back to incase I bork it.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/41a714a48d1411f24607f428a571fde602ec693c">41a714a4</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-02T09:28:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Attempt to use shared pool.

ERROR: this isn't complete, but it's our best try so far so
check-pointing for ease of backing out.  Subsequent reorganisations
will be messy. :)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4b1610f5fc7e2c03152bcc135b4bd149dbd47ee4">4b1610f5</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-06T14:47:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a lossy read-name option (CRAM_OPT_LOSSY_NAME).

This takes care to handle supplementary reads too and also uses the TC
aux field if present (it almost never is!).

Note, converting a CRAM produced with CRAM_OPT_LOSSY_NAME to a new
CRAM without asking to lose names, will increase the size as the
auto-generated names then become real names and stored in the RN
block.

This is (probably) beneficial as it offers control and keeps things
sane when you're trying to merge files together containing lossy and
lossless names.  To do this properly requires finer control than a
single flag per container, but that would need a CRAM spec change.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4c0b93b22107d7bd37720597632e90359f257e55">4c0b93b2</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-06T14:47:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Made the CRAM_OPT_PREFIX option external via the "name_prefix" option.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f689e1880bec15b768d098e9e324bbaaad9ab040">f689e188</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-06-06T15:04:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge CRAM lossy name compression (PR #326)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/53b5f5d7cd45ca5e62b43fcbfb2d85e406cd22f6">53b5f5d7</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-06T15:10:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Expose cram_get_refs() function to return the opaque refs_t data type.

This permits explicit sharing of references between file descriptors.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/121bab9d3ad1a498fcefd0b49e73b54e2bff60fc">121bab9d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-07T10:31:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Major revamp of thread pool and associated tests.  In particular the
input queue is now per output queue rather than shared between all
output queues.  This helps resolve deadlocks and permits more advanced
task sharing.

Note: the rest of htslib using this has still to be updated.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5142d24e7091db54cdd0da81f8ade79a292eac34">5142d24e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-07T10:35:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bumped the sample size for the tests, and made all tests share a
common size.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8e9bd8010395971fe8f3a1beeb716130d8a9d4e0">8e9bd801</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-07T10:41:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">White space updates (tabs -> spaces).

Also culled the deprecated flush method.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7d50ac69c80fdba6f2cf3edfe59a370b94a5715e">7d50ac69</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-07T10:48:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Sorry, updates to the previous commits too; forgetting to add this file!
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d496268b5347aa9351bef016e73bcc1713b49493">d496268b</a></strong>
<div>
<span>by mcshane</span>
<i>at 2016-06-07T12:32:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">allow bcf_index_build2 to index both bcf and vcf

This is to allow VCF/BCF indexing via streamed input and is a
pre-requisite for adressing samtools/bcftools#373

* distinguish negative return values as in sam_index_build2()
* expose tbx_index() via tbx.h
* add documentation for bcf_index_build() and bcf_index_build2()
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0ba563648b064331c5f3097d54113a253ae7ad7b">0ba56364</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-07T13:57:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Updates to cope with the new thread pool API.

Now passes minimal testing.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b6aa0e6e2350ca7836c275082f1d680fdca9e335">b6aa0e6e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-06-08T10:04:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Detect shared library and plugin types during configure

As plugins are only enabled if you run configure, lift their
configuration to configure time.  We now have more of a chance to
support cross-compilation via configure --host=xyz.  For now, using
$host_alias suffices; avoid AC_CANONICAL_HOST etc as our needs are
simple and we'd prefer not to bundle config.guess and config.sub.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2af39f8fbff68e4847682bf4d1dcf0d64f03eeb1">2af39f8f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-08T17:04:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed some debugging and changed the default queue sizes to be smaller.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bd32ec6cdbb854ee88f32fab21c8d7a609dce448">bd32ec6c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-08T17:04:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improvements to avoid boom & bust scenarios.

We now continually check how many processing jobs we have vs the
output queue size so we don't launch more jobs than fit in the output
queue, causing subsequent waiting in theads later on as we over-egged
the pudding.  This caused a yo-yo effect that overall harms
performance.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8a8fac27453dcd892c0896becf2ecf337c1ddb7a">8a8fac27</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-09T09:24:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Culled the duplicate is_compressed assignment.

This appeared in bf909d669d45cb137e7cab5b56db0fc60be48a1c, but perhaps
a failed merge or just forgetting to delete the earlier variant.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2c2330b3cd42104dd3839a21adb16c48db6da4e2">2c2330b3</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-09T10:01:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Various memory leaks fixed in bgzf multi-threading.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3f410839bec966df85af7c405de705bfd9ed8987">3f410839</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-06-13T10:04:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">stringify_argv(): suppress trailing space
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1eec11be22ed05b15fc7cff28befb732025d2fc2">1eec11be</a></strong>
<div>
<span>by jenniferliddle</span>
<i>at 2016-06-14T09:34:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixes bug in bam_aux_update_str()
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2cddfb3c75887ca02d58708e5519c6d62992634c">2cddfb3c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-06-14T15:24:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Build DLL and plugins on Cygwin

The Cygwin convention seems to be to just create cyghts-SOVER.dll
without additional symlinks, so we do that.  Linking also creates
an import library, libhts.dll.a, which plays a similar development
role to plain libhts.so; we could make this the true target of the
link rule (cf libhts.so), but currently its name will collide with
the same name used for a plain Windows import library.

NOTE: To use the plugins successfully, there must be only one copy
of libhts.a/cyghts*.dll in the complete executable.  To ensure this,
either make executables use the DLL too (so for htsfile/tabix/etc,
apply s/libhts.a/-L. -lhts/ to the recipe; FIXME) or perhaps we can
link the plugins themselves with some --allow-undefined option rather
than with the import library, as we do on other platforms.

Also ignore plain Windows *.dll for good measure.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bedecccc94778800c3c6cdbaf817c6400f53eb3f">bedecccc</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-14T17:03:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">First apparent working bgzf_seek implementation.

This also adds new functions to thread_pool, most importantly the
ability to reset a queue.  There is now also a requirement to shutdown
queues before destroying the pool itself.  (You can destroy the pool,
but the queue shutdown will then wedge if it has jobs in flight as
they'll never be processed.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d6dacc7bf6ccc39a6d6e486705570a7ea5e9b1b6">d6dacc7b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-15T10:43:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added HTS_OPT_CACHE_SIZE option to specify the bgzf cache size.  This
can speed up decoding considerably in certain circumstances.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f522f1ff3248deca141de0966c5c54a85091f472">f522f1ff</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-15T16:20:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Made thread job serial numbers 64-bit.

The intention is to permit callers to provide their own serial
numbers, and to then get bgzf to start using file offsets as serials.
This may(!) permit use of the output queue as a cache layer.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/15ef81b3f4c646c4b3d57d39119445002e11e803">15ef81b3</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-16T13:54:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improvements to multi-threading encode/decode/transcode.

More rigorously tested with respect to shutting down queues, avoiding
a lot of race conditions.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1c0ff9d35dc8ff1a2eaa7dd12781d2abb8de7918">1c0ff9d3</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-16T14:09:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Changed the HTS_OPT_THREAD_POOL argument from a t_pool pointer to a
t_pool plus queue size int.  This is to permit one large queue for
encoding side and lots of small queues on decoding side all sharing
one pool; eg a many-way merge.

Perhaps this would be better done using two HTS_OPTs, but if so it
requires breaking the ABI of htsFile in order to store the value
somewhere? Or maybe create the queue and then resize immediately
after?
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c721a7405ac3327eed27293ddfceb3c7a9eeb631">c721a740</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-16T16:57:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bgzf_check_EOF now works when input is multi-threaded.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3a8d3d3bb028bdefc9fb3232254c8c00c9c4770a">3a8d3d3b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-17T10:40:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Htslib now copes with zero length Z and H aux tags.

It also now forces H type (hex) to be an even number of bytes.

Implements samtools/hts-specs#135
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9d2e3dedae5d4e90b6e2493925dbb6f219629886">9d2e3ded</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-17T16:00:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Propagate read error in thread breader ack to fp->errcode error in main thread.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/511a23545cec477562151dfb41cc9548e13aa7ac">511a2354</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-17T16:58:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Deleted the now defunct read_eof variable.

Fixed the reader error reporting to also report EOF instead (empty
read).  This was necessary for bgzip to spot EOF (samtools didn't spot
this as it stops at the recognised EOF byte values rather than genuine
EOF).

Bgzip now uses threads for decoding too.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d0614e51554967f79bcd86bae0de8b7da092c96a">d0614e51</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-20T16:45:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed bgzf_getc and bgzf_getline to work in multi-threaded mode.

This means in theory samtools faidx and htslib's tabix could be
multi-threaded.  In practice the gain is slight as both of these
commands spend a lot of cpu doing more than decompressing.  I could
get 60% gain to faidx rate and ~100% gain to tabix index rate.

Maybe worth keeping, but currently not enabled.  The main change is in
bug fixing the functions.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/45027425983e62d25df178ad906590009ee2a6ed">45027425</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-06-21T13:55:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use hFILE rather than stdio when reading indices

Otherwise hts_idx_load2() does not work with file:/// URLs, which
are local (i.e. not hisremote()) but not understood by fopen().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8ca01755a7a2018006329dffb03f5023a399d37b">8ca01755</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-21T14:08:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added support for multi-threaded BAM indexing.

Also enabled multi-threaded decoding of text-based bgzf formats (SAM,
VCF, maybe others?).  Is there an easy way to detect when the voidp
has been utilised in htsfile and if so whether it is to a bgzf rather
than some other generic type?  I'm not particularly happy with the
sam.gz MT implementation.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e65f67d6f4ccb8a01b62507c6749b11446ebbc5d">e65f67d6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-21T14:28:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed CRAM_OPT_THREAD_POOL for cram.

This was broken in 74c5fee8c0e510dbfdb9702debfccb0e9844bfec when we
changed the argument to consist of pool + queue-size.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/173a5d0a2daf4124d26364369cc832151d9b6ae4">173a5d0a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-21T16:49:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'develop' of https://github.com/samtools/htslib into threading_pool

Switched to using the handy hts_get_bgzfp() function which appears to
be the semi-official way of figuring out whether to use bgzf direct or
kstream via voidp. (BAM vs SAM.gz)

Conflicts:
        hts.c
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/93be96b898f55bb396a65889aebf9c0e6ecc585f">93be96b8</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-23T08:37:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix to hts_get_bgzfp.

It returned the voidp redirect for write access too, but the open code
only uses that for reading.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d365af30968f0abc85f4a3011ea7f359182c1456">d365af30</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-23T08:38:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improvements for VCF/BCF multi-threading.

The synched reader now has bcf_sr_set_threads and
bcf_sr_destroy_threads methods.  There are also newer index_build3
functions for vcf/tbx to support multi-threading during the indexing.

ABI breakage: this adds a couple more variables to bcf_srs_t struct.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1c6cf228254df503d20f9d35b6ecd870dd849caf">1c6cf228</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-23T13:17:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed file-descriptor leak in refs_load_fai().

(Present since inception of function in Feb 2013.)
Fixes #394
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/925a3c9e60e9ec409ad860c4711c58b872ccc800">925a3c9e</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-06-24T10:04:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Document required Cygwin (and RPM-style) devel packages
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ccd48bd9b0a0e87bbfd35f82d127c2a86ceb89a7">ccd48bd9</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-24T11:44:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make sure we destroy the thread_pool when created by ourselves.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eceeb01d54231420ab39bd2921f4af3a984630d3">eceeb01d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-24T13:22:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'develop' of https://github.com/samtools/htslib into threading_pool
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3ade6b6fce1843445a8fb5ed3cf8261b203ce97f">3ade6b6f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-24T13:48:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix to bgzf_read, which was breaking samtools index (and more).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4f29e227d179cd0a12dde45c4aaa3ce211273af8">4f29e227</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-24T14:23:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PTHREAD_MUTEX_RECURSIVE_NP vs PTHREAD_MUTEX_RECURSIVE.

The NP is the documented type and stands for non-portable.  As
expected, it's not portable!  It doesn't work on MacOS X, but removing
the _NP works on more systems.

TODO: Figure out how to avoid getting in the situation of locking
multiple times.  It comes about through pool->queue and queue->pool
interactions, both of them sharing the same mutex.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7235947311220aca5ec39cc98d9e2da7d98eccf3">72359473</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-24T16:31:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Code tidyup.

Removing #ifdefed code, debugging code, etc.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1659e8f24ab020b1208c393d4e24560b3effb571">1659e8f2</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-27T11:44:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">test_view now also verified multi-threading.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cc4fe23ffb3b6c9d49df94382198ec15a3b08b07">cc4fe23f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-06-28T13:32:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removal of debugging output.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/02e9d21168b78981b9580a6c84f7e20b5c6b2e4e">02e9d211</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-06-29T13:28:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add is_cram flag to distinguish dummy hts_itr_t objects

(Note dummy:29 not decremented as it was previously one short;
we now have 1+1+1+29 == 32 as desired.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/155e1aacac741febd6fd722cf7e3660da38d6a9b">155e1aac</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-07-04T14:28:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add print-config target

Third parties such as Pysam may need access to this information.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0de7fe5472dd05dec2fb2af3663d4d2d615c356c">0de7fe54</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-07-05T16:15:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Generate config.h.in with autoheader

Previously we hand-edited config.h.in after using autoheader, to avoid
the dross -- especially PACKAGE_VERSION, as we compute that ourselves
(via git describe) in the Makefile.  However that's used only within the
Makefile, so defining it for C code via config.h is not a major problem.
(If it becomes one, we can add AH_BOTTOM([#include "config_undefines.h"])
or so, or not reuse the conventional PACKAGE_VERSION macro name.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/86260e1c6eabbfcd227b00461028ad0b33e4f8bc">86260e1c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-07-11T10:03:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add configure check for fdatasync()

Enables the existing HAVE_FDATASYNC conditional in hfile.c.

OS X has a library symbol named fdatasync() but no declaration in
the headers, and it is unclear whether its function has the expected
fdatasync(2) signature.  So we additionally use AC_CHECK_DECL to
avoid detecting this symbol on OS X.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3bfd28113a2be5e35dc6ed9df63e0c0e62fe4a10">3bfd2811</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-07-11T16:20:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Migrated the thread pool structures to thread_pool_internal.h.

Also created a couple accessor functions for thread pool size
(no. threads), thread queue size, and extracting the void* data from a
thread "result".

[Updated Makefile dependencies -- JM]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c00fe2cd4e52a76535a68dc7b4cf7745c255a0b9">c00fe2cd</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-07-11T16:20:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Renamed various thread pool structs/functions.

t_pool        -> hts_tpool
t_pool_result -> hts_tpool_result
t_pool_queue  -> hts_tpool_process

The way we think about queue is that in "foo |gzip| bar" and
"bar |gunzip| foo", the "gzip" and "gunzip" are process names and the
"|" symbols in "|gzip|" are the input and output queues associated
with this process.  Our old queue was actually a pair of queues (the
pipe symbols) with the entire struct modelling the I/O to the process.

Technically it's not the process itself but rather a wrapper around
the process, as that is another C func (whatever was given during
a dispatch call), but in lieu of any better term this will do.
(Please offer other ideas if you have them.)

Also added hts_tpool_kill so that hts_tpool_destroy is now simpler in
operation, with only one argument required.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/299c7b672006231bdc511a25102403d7202de826">299c7b67</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-07-11T16:20:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Culled the DEBUG_TIME code in thread_pool.

It just clutters the code up and if we *really* need to go back into
such fine grained debugging again then we could resurrect it via this
diff.  (I don't see the need arising.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5c591725174f70f4cd6857badf6e672ff3f6b469">5c591725</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-07-11T16:40:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Further tidying up of queue vs process; mostly comments and docs.

Fixed args of hts_tpool_destroy (bgzf.c).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bdf85e4acc2d801195dd82d4b708accf371102ee">bdf85e4a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-07-12T13:51:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Speed up to probaln_glocal.

Achieved by using tiny lookup tables rather than nested ?: operators
and replacing the many calloc/frees with far fewer callocs/mallocs.

Overall speed is around 25% for this function and ~15% faster for the
total bcftools time in a quick test on illumina data.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c6cb4c392ad4d1ae937fca35b524d17905a7fec9">c6cb4c39</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-07-13T12:06:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use finer-grained $(INSTALL_LIB) and $(INSTALL_MAN) macros

See https://www.freebsd.org/doc/en/books/porters-handbook/install.html
and note that libhts.a, as a static library, stays with $(INSTALL_DATA).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5869a67c3c19aa9e2b3b356269dadaf9aff1c669">5869a67c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-07-21T13:13:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hts_itr_query(): discard chunks far beyond the query region

Similarly to the existing min_off code, discard chunks starting beyond
max_off, computed by finding a virtual offset in the linear index or
loff of a bin to the right of the query region's end.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0d5a5eb4181d70cc410aeed26d0e1b8506cb4504">0d5a5eb4</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-07-21T15:12:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid linguist mis-classification [minor]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fd721f10668de49d02f613678aa0c4105bd7f0b5">fd721f10</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-07-26T12:34:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allocate BGZF::uncompressed_block/compressed_block together

Allocate both blocks in the same block of memory, so that upcoming
code can reuse the block as a single larger temporary buffer.
Add error checking in bgzf_read_init().

Also set fp->errcode on errors in bgzf_raw_read() and bgzf_raw_write().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/344c82579a8d56d1f92c8073c71037b99beb13cb">344c8257</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-07-28T15:54:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow plugins to select RTLD_LOCAL or RTLD_GLOBAL

If the plugin does not provide the requested symbol, fall back to
reopening it with RTLD_GLOBAL and searching for a uniquified symbol,
<symbol>_<filename_basename>.

Most plugins should work with RTLD_LOCAL, but occasionally RTLD_GLOBAL
is needed.  For example, with iRODS 4.1.x, iRODS itself has plugins
(libtcp.so et al) that need to resolve iRODS symbols linked into
whatever is invoking it, i.e., HTSlib's hFILE plugin.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0f2a88a03852085174aabee6e1f5bda76d66311f">0f2a88a0</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-08-01T11:29:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Protect against sequences starting beyond reference end.

This was previously causing the slice reference md5sum to crash.

Fixes samtools/samtools#600, but note this perhaps isn't a perfect
fix.  The test data for that issue is broken, but ideally we should be
able to reproduce the broken input after round-tripping.  Currently we
lose track of MD/NM tags.

However making cram totally lossless even when faced with invalid data
is an issue for another date.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e8bddbe213da6ba870b6cfecd5ca02051a68b532">e8bddbe2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-08-01T14:23:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use native Doxygen API documentation markup
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7d0b90b609f7f6ed67da3af3f995fc692f4f8a49">7d0b90b6</a></strong>
<div>
<span>by cbk-guest</span>
<i>at 2016-08-03T01:24:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Autopkgtest added
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/56a0f1d51f932594eeac0ba4f3647d7c7ff0f485">56a0f1d5</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2016-08-03T11:20:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hardening=+bindnow, upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e87ae87d661bbdfee700517672f4ffd0054b4dfc">e87ae87d</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-08-04T13:48:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add interfaces to hfile for delimited string input

There are three versions:
  hgetdelim - Reads up to a given delimiter
  hgetln    - Specialization of hgetdelim for '\n'
  hgets     - Wrapper for hgetln that provides the same interface as fgets
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ed502be319cd5fbc8c9ea37457fae2d7d34e1665">ed502be3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-08-04T16:11:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[faidx.h] Use native Doxygen API documentation markup

Remove indentation from function declarations -- there's no point
indenting within `extern "C" { ... }`, as that's the entire file!
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f86372ead930a00b4eb197cf64c7470e9cede1e5">f86372ea</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-08-17T09:43:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove iRODS plugin, which has moved to samtools/htslib-plugins

As a demonstration of maintaining a plugin separately from HTSlib,
and as iRODS's linking needs have become ever more convoluted,
hfile_irods.c is now at <https://github.com/samtools/htslib-plugins>.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/74bcfd7c28fbdd041dad790a43041f80681c613b">74bcfd7c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-08-19T08:51:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Embed version number directly in hfile_libcurl plugin

When built as a separate plugin, it is incorrect to use hts_version()
to report HTSlib's version number, as we could be used with a variety
of HTSlib versions.  Instead embed our own copy of HTS_VERSION as of
when we were compiled.  (But just use hts_version() when plugins are
disabled and hfile_libcurl.o is built within HTSlib.)

Embed an SCCS-style @(#) version string to faciliate examination via
strings(1) | grep '@(#)' or what(1).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/23d7f17d809b3da59513c9a656e6c69f52175bb6">23d7f17d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-08-30T14:35:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Discard distant chunks based on binning index, not linear index

Contrary to the description in SAMv1.pdf:

    In the linear index, for each tiling 16384bp window on the
    reference, we record the smallest file offset of the alignments
    that start in the window.

it seems the linear index actually records the smallest file offset of
an alignment that *overlaps* the window.  This could start at a position
before the bin-to-the-right we're looking at, and lead to clipping chunks
containing reads in the desired region.

Instead take max_off from a chunk fully within the bin-to-the-right;
due to sorting the first one will be the tightest bound, and as the list
of chunks is set directly, we don't need to check for 0.  Fixes #405.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bbaab350abeb86e5d55410708496ef7f655b178c">bbaab350</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-08-31T16:25:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[tabix man page] Note coordinate arguments are 1-based inclusive

Clarifies that command-line arguments are human-orientated 1-based
even when the data file is 0-based, e.g. BED.  Fixes #407.

Divide into paragraphs, fix typo.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/86cb62bc3b5adeefd334e59af1d7182c9d3eeb46">86cb62bc</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2016-09-01T08:00:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix build on hurd
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5ec9af017150ea6f3cdccad140876d338bf154e1">5ec9af01</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2016-09-01T08:01:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add myself to uploaders, upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c31216b062a7612d80bdb6d91ace2c2d9b9bc5ce">c31216b0</a></strong>
<div>
<span>by Joe Rayner</span>
<i>at 2016-09-05T08:59:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added bgzf_block_write() and rebgzip option.
Check indexing and rebgzip are not attempted simultaneously.

Require index file to be specified when rebgzipping.
Removed stray print statment.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eaef296c1a402013185771931a782e0d13fdc599">eaef296c</a></strong>
<div>
<span>by Joe Rayner</span>
<i>at 2016-09-05T08:59:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added bgzip test files.
Add bgzip --rebzip test and update test files.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/54dc2320f0ce38a66cc73414253844b325dfceca">54dc2320</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-09-05T09:10:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rebased PR#387 and minor code formatting fixes (trailing white space,
indentation, tabs) for consistency with existing code.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e79775f5173ddb68cdfa4abbd6d50dc828c26304">e79775f5</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-09-05T11:38:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added bgzip to check/test dependency.

This fixes a case where "make clean; make check" would fail.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/71db68750ac56efa9d1271eaeb5a570d94897004">71db6875</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-09-07T16:17:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Treat regions [-1,n) as [0,n) when indexing

In VCF files, 1-based POS=0 represents an event in a telomere.
POS=0 is represented as 0-based [-1,0), which previously led to a crash
during indexing.  Instead treat [-1,0) as [0,1) and larger [-1,n) as [0,n)
so that such regions will be placed in an appropriately-sized leftmost
bin.  (Treat [-1,0) slightly more specially as [0,0) winds up in bin 0.)

The previous crash occurred within insert_to_l(); this fixes the crash and
alters beg/end for [-1,n) regions for both insert_to_l() and insert_to_b().
Fixes #406.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3d3cc32d50d8a4acb4a5a15c570ac66188784282">3d3cc32d</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-09-09T08:29:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a race condition in the multi-threaded cram encoder.

The changes to the thread pool broke this code. Now rather than a
strict ordering of submit job then consume output, it permits output
consumption while waiting for room in the queue.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8d957c074297e62400a08f05c3afee6df1bd4d27">8d957c07</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-09-09T13:45:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rewrite #ifdeffed-out use of now-removed variable [minor]

Completes the removal of unused pb in 10e3c2c151ac239fff357e3b886b17f1b27dbf50.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5b31094e5cc366340e124d50824c1351f7c872c6">5b31094e</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-09-09T16:03:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a double free in multi-threaded CRAM and regions.

When asking for more than one region while also using a thread pool,
we were potentially freeing fd->ctr twice.  Here (cram_next_slice()
and in cram_seek_to_refpos()).  Contorted code, but this appears to
fix it and passes valgrind memcheck, helgrind and drd.

(Note this doesn't trigger when using the original multi-threading,
although I am unsure why not.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9c230e7c9162fb1632ca03bc5c8f34345eddfca2">9c230e7c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-09-12T14:47:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed out by one error in bin calculation (CRAM -> BAM).

Fixes samtools/samtools#574

(cherry picked from commit e5ab99785bb8ec5a5054d6c6a2c432bdd8ee5ef1)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ebdb5aa584e8160d105e311619b0a12ac3e5a737">ebdb5aa5</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-09-12T15:04:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow plugins to select RTLD_LOCAL or RTLD_GLOBAL

If the plugin does not provide the requested symbol, fall back to
reopening it with RTLD_GLOBAL and searching for a uniquified symbol,
<symbol>_<filename_basename>.

Most plugins should work with RTLD_LOCAL, but occasionally RTLD_GLOBAL
is needed.  For example, with iRODS 4.1.x, iRODS itself has plugins
(libtcp.so et al) that need to resolve iRODS symbols linked into
whatever is invoking it, i.e., HTSlib's hFILE plugin.

(cherry picked from commit 344c82579a8d56d1f92c8073c71037b99beb13cb)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5586168b1440b7c54460e0312551973c61276414">5586168b</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-09-12T15:15:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Provide a fallback for PATH_MAX if it is not defined

(TODO) Ideally we should be using kstrings rather than PATH_MAX and
FILENAME_MAX.  The relative_to functionality of open_path_mfile() is
in fact unused in HTSlib; eventually cram_populate_ref() should use
other facilities and open_trace_file.{c,h} will disappear anyway.

Obsoletes debian/1.3.1-3:debian/patches/define_PATH_MAX.patch
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/88517dfc50c932bb7213c6bbb4a15450e0a5c812">88517dfc</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-09-12T15:52:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added callback + client data hooks to pileup iterators and pileup struct.

The mechanism here is to permit a pileup user to locally cache some
data when a new bam record is in flight, attached to the pileup struct
passed to the caller, and to tidy it up once it goes out of scope.
This greatly simplifies some programming methods and also permits more
efficient code in some places where doing the right thing (caching
values) was just too hard to make it worth while.

Also added an mplp version of the callbacks too, which simply iterates
over the plp ones.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3566540b8dfbe0b20b62781bf2f4bdad7fdf7c64">3566540b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-09-12T15:55:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Factored in the renormalisation to the f[] computation.

Previously we computed row f[i] and renormalised f[i] as the next
step.  Now when computing f[i] it renormalises f[i-1] as it goes.
This is around 5-10% faster.

In theory the same could be done for b[i] too, although I had
difficulties getting my changes working there so skipped that
modification.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8c595dfc03aa2fb1d24119913f212c2dc4d93fae">8c595dfc</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-09-12T15:55:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cosmetic: 0 to NULL
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6bed35a3eaefa3baa2c7e0166ceba442212f166b">6bed35a3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-09-13T06:15:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Release 1.3.2: bin field bug fix, RTLD_GLOBAL plugins
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/503b09d6a0e81b771997782ef87ab39a4bb51618">503b09d6</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-09-13T07:48:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge version number bump and NEWS file from master
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f10f9b2748bdf5828c6025360237d89ced643f6c">f10f9b27</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-09-14T09:38:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump SOVERSION to 2 and note ABI incompatibility in NEWS
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bf753361dab9b1640cf64f7886dbfe35357a43c5">bf753361</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-09-14T13:31:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge (ABI-changing!) mpileup callbacks (PR #398)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0ca17a0ee5c8fe2867342fafdc0d3cd6d1ad4d53">0ca17a0e</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2016-09-14T14:12:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Handle VCF lines with misssing `FORMAT=.`

For example, this is a valid VCF line

```
1       300     .       C       A       .       PASS    .       .       .       .
```

Previously this would emit a warning saying:
`[W::vcf_parse_format] FORMAT '.' is not defined in the header, assuming Type=String`
and internally we would have a new `FORMAT=.` tag.
This will now be recognised as missing.

htslib already writes out such lines when  `n_fmt == 0` and `n_samples > 0`

Mixing missing and non-missing FORMAT tags (e.g. `.:GT` or `GT:.:AD`) is not allowed.

See conversation in #409
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/19c189438f852e6e62dbda73f854d465cebb3d9f">19c18943</a></strong>
<div>
<span>by jenniferliddle</span>
<i>at 2016-09-26T13:01:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix bugs in bam_aux_update_str()

s/m_data/data/ and remove casts that were suppressing a warning that
would have diagnosed this mistake.  Resample bam_get_aux(), which may
also be changed by the realloc().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4295de423b015b216587a9043f1c0504d5d48f3f">4295de42</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2016-09-27T19:37:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix: 0 is a valid return value of bcf_hrec_find_key
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/553406d21cae6a31b49b400abdba42daf934e722">553406d2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-09-30T10:06:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use <inttypes.h> instead of old WIN32-specific code

As faidx.c already uses <stdint.h> types and <inttypes.h> macros, use
PRIu64/SCNu64 etc to read and write the uint64_t file offset et al.
(Microsoft Visual Studio supports <inttypes.h> since MSVC 12.0 aka
Visual Studio 2013.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b077a6bc3aa2ad27a176a8524dbda4df632a9952">b077a6bc</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-10-03T14:30:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replaced BSD license with MIT license for consistency.

Code change brought about due to migration from cram subdirectory,
which originated in Staden "io_lib", to top level directory.
(Note: I am the sole author of the thread pool code.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7a54ff90f3078ce9b2d2c0dce4eed8f19a9171ec">7a54ff90</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-10-03T16:34:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid extraneous #includes

Forward declare struct hts_tpool in bgzf.h and hts.h instead of
including thread_pool.h.  Remove system includes in htslib/thread_pool.h
no longer needed after internals were moved to thread_pool_internal.h.
Reduce <inttypes.h> to <stdint.h> where we need int32_t etc rather than
PRId32 etc.  Add includes elsewhere as needed, where htslib/thread_pool.h,
<pthread.h>, <inttypes.h> facilities are actually used.

Add $(htslib_thread_pool_h) to htslib_vars.mk and use it in Makefile.

Add doxygen @file documentation to new public header file.

Rationalise include guard macro names (add HTSLIB_ prefix to the
public one; avoid using the _[A-Z] prefix reserved for the compiler
implementation; cf dde9bdbe4174728f99d1bbe7326ffd631539bef6).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/daae2ea2cba263d53bab51a1254a41922122af1e">daae2ea2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-10-03T16:42:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge threading pool API (PR #397)

Note the addition to struct BGZF that may have ABI considerations, but
we have already chosen to break ABI compatibility for the next HTSlib
release, so it is open season.

Fixed trailing whitespace.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d58eab8f79cd768ff72078d45617be8e1039f137">d58eab8f</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-10-06T13:55:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix error handling in cram_index_load.

Eliminate repeated error handling code in cram_index_load, and ensure
that fd->index in freed and set to NULL (by calling cram_index_free)
when exiting on failure.  Setting fd->index = NULL is important as
otherwise repeated calls to cram_index_load using the same fd after an
error will apparently succeed even though the index has not been loaded
(this can happen, for example, if a caller is trying different names for
the index).

Ensure that realloc failures won't cause memory leaks, and that the
value of fd->index_sz is always correct as it's used by cram_index_free.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6ff0ca0d1d8b8464d52af2ec55d41dc4666c0742">6ff0ca0d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-10-11T08:33:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't redefine thread_pool.h typedefs

Redefining a typedef is a C11 feature.  Fixes #426.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/609120d25bfe46dfc16cf5668854aed02b8d3cca">609120d2</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2016-10-11T09:24:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More thorough INFO cleaning to prevent issues like https://github.com/samtools/bcftools/issues/428
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f7370bb3f6a2deb69c4987b4e48daf26fd2a9f27">f7370bb3</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-10-20T15:52:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Activate auxf#values_java.cram test

Rename aux#aux_java.cram as per 9b1cb948e78a51b93473fc1dbd5e05a9c5fddf8b
and regenerate the resulting auxf#values_java.cram (with cramtools) as
auxf#values.sam has since been updated to include test cases for empty
'H' and 'Z' tags.

This test case contains 'H' aux tags, so use -Baux as cramtools converts
these to 'B' array tags.  Display any error message from compare_sam.pl.

Make compare_sam.pl -Baux also canonicalise empty 'H' and 'B' arrays.

Fix whitespace.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1bc5c562ce4146b98e4c01a4d5697bf363734789">1bc5c562</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-10-26T11:52:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure headers compile by themselves [minor]

...without depending on byproducts of previous inclusions.
Hat tip @MikkelSchubert (cf pysam-developers/pysam#362).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/50db54b56d9064fc5905e781cc66b0126e2cd120">50db54b5</a></strong>
<div>
<span>by Daniel Cooke</span>
<i>at 2016-11-02T15:58:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Suppress index date warning when hts_verbose == 0

Prevents a warning message being written to stderr from calls to  hts_idx_load2 when the target index is younger than the read file.</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b9d85dc4fc91a7cebf69d26b7c5d8e1bab6756cf">b9d85dc4</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2016-11-04T11:50:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge tag '1.3.2' into debian/unstable

HTSlib patch release 1.3.2: bin bug fix, RTLD_GLOBAL plugins

* Corrected bin calculation when converting directly from CRAM to BAM.
  Previously a small fraction of converted reads would fail Picard's
  validation with "bin field of BAM record does not equal value computed"
  (SAMtools issue #574).

* Plugins can now signal to HTSlib which of RTLD_LOCAL and RTLD_GLOBAL
  they wish to be opened with -- previously they were always RTLD_LOCAL.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/97b737336b76c25fd31e0cedd95f6bd44a6cfbdc">97b73733</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2016-11-04T11:56:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e79fb0a5ee5568b094db8b1bf4a7de22c207b655">e79fb0a5</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2016-11-04T11:57:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add remark about pristine-tar commit
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/82819fea95b13c7608e63056d426f46cfa77765e">82819fea</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2016-11-04T12:05:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6b9abbab03e7494c9b8f6e727b0df0e29691c8c7">6b9abbab</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-11-21T11:34:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add fixed/immobile hFILE buffers

As an optimisation to avoid double memory copies, allow hFILE backends
such as hFILE_mem to use the main hFILE buffer as their entire buffer
without any separate backing store.

Essentially, wherever in base hFILE we would like to alter fp->offset we
need code to handle !mobile buffers (but note that fixed buffers always
have at_eof set, so some fp->offset altering code is already irrelevant).

This implements that for reading; writing requires a little more work.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/32984ca18ecb08498625f23b9a3bd2f8af3ab1f2">32984ca1</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-11-21T12:07:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement base64-encoded data: URLs

Either percent- or base64-decode the URL text, as appropriate.  We now
always malloc a (decoded) copy of the url argument, rather than somewhat
illegitimately holding on to the pointer provided, as previously.

Add percent- and base64-decoding functions.  When we are happy with their
signatures (perhaps they should have a way to malloc the output buffer
themselves?), we may wish to move their declarations to a public header.

Implements and fixes #422.

[NEWS]
* Data URLs ("data:,text") now follow the standard RFC 2397 format and may
  be base64-encoded (when written as "data:;base64,text") or may include
  percent-encoded characters.  HTSlib's previous over-simplified "data:text"
  format is no longer supported -- you will need to add an initial comma.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2520497289be7cde335a3512c610b0f8afe979fb">25204972</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-11-21T12:09:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add JSON format and very basic recognition

We currently recognise only JSON that's a top-level object, so starts
with `{"field": }`, as that's reasonably distinctive and it suffices
to recognise GA4GH streaming's JSON redirector response format.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/293a426d2348229d3fede23d3b212c6c9bedaeb8">293a426d</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-11-21T17:46:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge CRAM updates, sync with io_lib implementation (PR #361)

[NEWS]
* When writing CRAM, each auxiliary tag is placed in its own block.
  There is also a new bases_per_slice format option.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/274ef7da84ad00f5da2aeff676b845940a36e297">274ef7da</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-11-22T08:23:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add hopen() varargs; use them for HTTP headers in hfile_libcurl.c

Add a varargs interface to allow calling code to specify scheme-specific
extra arguments to hopen().  For example for a networking backend,
`hopen("http://foo", "r:", "httphdr:v", arrayofstrings, NULL)` allows
for the addition of a NULL-terminated array of headers.  We may later
add `hopen("http://foo", "r:", "httphdr", "Range: 10-20", NULL, NULL)`
and/or other ways to specify headers.

While hFILE_plugin has a version field, unfortunately hFILE_scheme_handler
does not.  So as to remain compatible with existing plugins, we've abused
the priority field to also encode a struct version.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/39ca08917a1ed4b94ed6c2aae4a2038f26edb193">39ca0891</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-11-22T08:28:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add JSON tokeniser / lexer

Provides functions to read a single JSON token from a string or an hFILE.
User code can call this repeatedly within nested loops that correspond to
the expected structure of their JSON text to parse JSON input.

At some point we may wish to move the declarations from hts_internal.h
to the public API.  At present these functions return tokens in string
form only; before making this public, we should also interpret numeric
tokens -- see the TODO in the hts_json_token declaration.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7e6f35d04c3a5229d1c1866a2aa637f0a72f3542">7e6f35d0</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-11-22T09:31:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make cram_decode_estimate_sizes handle missing codecs.

Prevents a segfault if  hdr->codecs[DS_QS] or hdr->codecs[DS_RN] is NULL.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/be8b4a50140afb9330fdcbe7e9ddf78b52bad71c">be8b4a50</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-11-22T12:15:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensures rANS uncompressors don't read beyond end of input.

Changes mostly copied over from io_lib, but extended to catch cases where
there aren't enough input bytes to set up the decoder state.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/707f60a995f024deb6e7938582f966a174374129">707f60a9</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-11-28T13:57:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge pull request #438 from daviesrob/cram_afl

Cram bug fixes</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7aa1ef8c65469947965031f4857e82e2010c1ba9">7aa1ef8c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-11-30T11:27:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor incidental uses of kstream

Using kstream is unnecessary here as bgzf_getline() and kgetline()
are available.  In hts.c, use bgzf_open() rather than gzopen() to
further centralise our zlib usage in bgzf.c and reduce the parts
of the zlib API that we're using.

This vcf_hdr_read() fn_aux code has crashed since d49e3f63184107934e4d00ba1d45d03ac506b6d3
as the kstream as declared here has a different type from its definition
in hts.c.  Rewrite it using plain fopen(), as FAI files are not compressed
anyway (cf fai_read(); sam_hdr_read()'s similar fn_aux code).  This code
used gzopen() when it was first introduced in c70504d1c0c9946b7fa2134251bea3f37cf30a70
but only because vcf.c already had a gzread-based kstream.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/71c03b88edf892a93eae7bb7932a6da84858480a">71c03b88</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-02T11:25:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove htsFile's use of kstream

Use of kstream within HTSlib, especially non-static use, should be
avoided as it potentially conflicts with application code's kstream
usage, because (unlike other klib facilities) there is no name mangling
done based on the template argument type.

Also kstream does no error checking.

Use the plain hFILE (or BGZF) for reading uncompressed (respectively
compressed) text formats, just as we do when writing.

Rewrite hts_getline() accordingly, maintaining compatibility with the
existing signature (which returns the number of characters read or
negative on EOF or error; note that some callers control reading loops
with >=0 and some with >0, which seems buggy).  (TODO) This function
is overdue for rationalisation: removing the delimiter parameter and
rationalising the return value.

Account for the delimiter character in bgzf_getline(), and correct the
function's documentation.

In vcf_sweep.c, uncompressed text files no longer have an underlying
BGZF pointer, but bgzf_index_build_init() does nothing for uncompressed
files anyway, so not calling it changes nothing.

kstream delenda est.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/941c0439d58abe686b6086dd75d5a373b2186873">941c0439</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-02T16:23:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Parse GA4GH Retrieval protocol and handle redirects

Accessing a file via the GA4GH Retrieval protocol returns a JSON ticket
containing a list of URLs whose contents are to be concatenated to form
the file to be retrieved.

Add a multipart hFILE pseudo-backend ("pseudo-" in that it is not
dispatched via a scheme lookup in hopen() itself) that handles reading
from the concatenation of a list of files.

Parse the GA4GH JSON text to initialise this special type of hFILE.

In hts_hopen(), if JSON format is detected, reopen by "redirecting" to
the multipart hFILE specified in the GA4GH ticket file.  With two hFILE
handles in play, care must be taken to close the multipart hFILE if
hts_hopen() subsequently fails, and to close the ticket hFILE only if
hts_hopen() succeeds.  Also ensure all error paths set errno.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/549093036db04bb0caf38018032b6add96f511eb">54909303</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-02T16:23:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix hseek() already-read buffer reuse bug

Now that the "desired position is within our read buffer" hseek()
optimisation has been implemented, we need to ensure that the whole buffer
is up-to-date.  For mobile hFILEs, reading directly into the destination
invalidates the already-read portion of the hFILE's buffer.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cc42613c000c0ef4e17a5b145ca0d0b6b6fbfb1e">cc42613c</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-05T11:15:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix hFILE write-after-read bug

The "desired position is within our read buffer" hseek() optimisation
also breaks hread()-hseek()-hwrite() on files opened for update, as
hwrite() expects the hseek() to have left an empty direction-agnostic
buffer.  So we disable the optimisation on files opened for update.

Alternative fixes would be to have hflush() discard any read buffer and
do a backend->seek(begin-end, SEEK_CUR) (or rather the equivalent SEEK_SET)
to correct the backend file position, and require callers to use hflush()
when switching between reading and writing in either direction; or (hat
tip @daviesrob) have hputc()/hputs()/hwrite() check for a non-empty read
buffer, and discard it and do a corrective seek if necessary.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/82d0f5bd723dffe5e6906fbc095f0bf3ccd85d1e">82d0f5bd</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-05T11:56:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge JSON-based GA4GH redirection file access protocol (PR #439)

[NEWS]
* hts_open() supports the upcoming GA4GH redirecting retrieval protocol.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ee4725892ee3f29a813ba906d7c8b07928a3f352">ee472589</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2016-12-05T13:23:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">allele trimming bugfix

* handle cases with missing data
* remove asserts to give more informative error messages

Fixes samtools/bcftools#213, samtools/bcftools#256, samtools/bcftools#322, samtools/bcftools#404
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/de69feb1fae1874f450a112451c0ad2311b5d12b">de69feb1</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-05T17:14:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Also handle uncompressed (raw) BCF for vcf_sweep

We failed to consider raw BCF files, which use htsFile::fp.bgzf but
have no_compression set.  Add a new htsFile::is_bgzf flag, which like
the other is_xyz flags is for internal use only!
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c9e8f3a013559bd698aa5e91e751df1129124f03">c9e8f3a0</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-12-06T13:57:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevents out-of-bounds array access on ref_id

Stops a possible segfault before cram_decode_slice is able to bail out
with 'Unable to fetch reference #...'.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9ea1bf98e5c4b78fade72c35123612bb1c53b4cc">9ea1bf98</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-12-06T14:00:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adds more CRAM decoder checks to prevent overrunning input buffers

Converts more itf8_get() calls to safe_itf8_get().
Adds a few extra tests to ensure running out of input is always spotted.
Error messages in affected functions get tests for hts_verbose >= 1.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1dd5c15d61cda1f83762b1bfa1f9fc43399db9e9">1dd5c15d</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-12-06T14:00:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixes test for enough data when reading the preservation map.

Each case of the switch statement uses at least one character.  Plus two
for the key means at least three are needed to avoid running off the end
of the input.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/36c5c47e83078014ec62c844e0de5dae95e4a0d6">36c5c47e</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-12-06T14:20:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevents wrap-around bugs in allocations.

Add a few checks to catch negative allocations due to invalid values
read from CRAM files.

m_data field in bam1_t becomes uint32_t, to prevent kroundup32()
from converting a large positive number into a negative one.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/677d9b0a7b5f3c8a7a5cd6cedc7ec1e2e680f13f">677d9b0a</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-12-07T16:45:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make hts_expand handle realloc failure a bit better.

The hts_expand() and hts_expand0() macros don't return a value, and will
set (ptr) to NULL if realloc fails.  This could lead to segmentation faults
if callers don't check the value of (ptr).  As few if any do, and some
callers are in external packages, the best solution is to make the
hts_expand macros print an error message and call exit(1).

It's not ideal behaviour for library code, but fixing this in any other
way is just too hard.

This implementation removes the assumption that (m) and (n) are of type
int.  It should work with any integer type no bigger than size_t.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6ce295dc55a4d4cf2f05df219c4ef5e6bf22fbaa">6ce295dc</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-07T17:33:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Propagate error return codes from hts_getline()

In hts_getline(), bgzf_getline() already returns -2 => error, -1 => EOF,
>=0 => success.  Check herrno() to distinguish the two meanings when
kgetline() returns EOF.

For SAM and VCF files, sam_hdr_read() and vcf_hdr_read() should fail
on I/O errors, and sam_read1() and vcf_read() should propagate the new
distinct-from-EOF return code.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5dff82a8ff4b7dbb7b6aa04da5d35eb1c1533e36">5dff82a8</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-07T18:17:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use hFILE to read htsFile::fn_aux FAI file

Use hFILE so that samtools view -t etc can use URLs as well as local
files.  In sam_hdr_read(), avoid strtok() for reentrancy reasons.
Improve error handling.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/47a29fd104c7de3465efbae45f2e17b81a83c811">47a29fd1</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-08T11:39:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make htsfile work with (e.g. GA4GH) redirects

When viewing files, use hts_hopen() before querying the format category.
So e.g. for GA4GH JSON redirects, htsfile sees the real redirected format
rather than unknown_category/json.  Opening and closing the htsFile*
outwith view_sam()/view_vcf() simplifies the error handling.

Clarify view_sam()/view_vcf() error handling and print error messages.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6e89752678a45dadfbe36faed0e70043e8ab3468">6e897526</a></strong>
<div>
<span>by Olivier Cinquin</span>
<i>at 2016-12-10T21:10:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Provide more informative error message when unknown SAM tag type is encountered.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4ef6c76f16d0397bd319f4cf59ff67f72ec2a766">4ef6c76f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2016-12-12T15:22:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a rare renormalisation bug in the rANS codec.

The symbol frequencies need to sum to TOTFREQ (4096 currently) and are
rounded up/down accordingly.  The combination of integer rounding
means the renormalised frequences don't always total 4096 exactly, so
the remainder is added-to / subtracted-from the most frequent symbol.
In one particular data set this remainder was larger than the most
frequent symbol, causing it to become negative.

We now just do another round of renormalisation with slightly lower
products until we get it right.  It's not the fastest solution, but a
very rare event.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2c75e79bee1747bb7963ccb2aaf6160fa25568d6">2c75e79b</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-13T14:18:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add "httphdr", "httphdr:l", and "va_list" hopen() options

Other plugins such as the upcoming hfile_gcs.c and an eventual
refactored hfile_s3.c will invoke hfile_libcurl.c's hopen() with any
user headers passed to their hopen() along with their own additional
headers.  The easiest way to do this is to provide a way to pass a
caller's va_list into hfile_libcurl.c's hopen(), ergo "va_list".

As a convenience, the pointer arguments to "httphdr" and "va_list" may
be NULL, in which case nothing happens.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7def9fdf8fd5586535f5b3656812e9b3f58acd00">7def9fdf</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-14T11:19:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Constify extern tbx_conf_* preset variables

User code should not be able to change these and confuse other code!
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/468abb6cbae471c40a5390c2c138d7ea67b84ad8">468abb6c</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2016-12-14T15:11:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Turn off autodetection when -s,-b,-e,-0,-c,-S, or -p are given

Simplify the code, removing conf_ptr, so that reheader_file() gets the
right conf when -s/etc are used and `-p bed -c %` combinations (in that
order) have a chance to work.

Resolves #428, updated version of PR #429.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/63fe9d14ae2135508ba4ccf396c4d50d864a409f">63fe9d14</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-15T16:37:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add support for Google Cloud Storage pseudo-URLs

Rewrite gs: pseudo-URLs to http/https URLs, adding an Authorization
header for Google Cloud Storage.

At present, the access token is simply taken from a bespoke environment
variable, $GCS_OAUTH_TOKEN, as per PR #390.  (TODO) This should be
replaced with pulling the information from shared configuration files
or obtaining it via other authentication infrastructure.

In configure.ac, this is before AC_SYS_LARGEFILE to keep the options
in ./configure --help in alphabetical order.

Passing the va_list to hopen(..., "va_list", ...) in gcs_vopen() is
painful as passing a va_list (as opposed to a va_list*) via .../va_arg
proved impossible, and we need a local va_list object rather than a
parameter with a possibly-decayed type in order to form a va_list pointer.
See the following for details:
http://stackoverflow.com/questions/4958384/what-is-the-format-of-the-x86-64-va-list-structure
http://stackoverflow.com/questions/8047362/is-gcc-mishandling-a-pointer-to-a-va-list-passed-to-a-function
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8efbd1b6b3cde3d310ca06e71a15ca7dbf48d898">8efbd1b6</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-15T16:58:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add missing entries
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/afd9b56b2ae3fa7a5245dcb0bd5120b6ca359829">afd9b56b</a></strong>
<div>
<span>by Nathan T. Weeks</span>
<i>at 2016-12-16T12:15:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Define _XOPEN_SOURCE so that PTHREAD_MUTEX_RECURSIVE is defined

[Some platforms require this to make PTHREAD_MUTEX_RECURSIVE available
(this is probably a bug on those platforms).

Fixes #420.  I have some reservations about the ODR implications of
doing this in a single translation unit rather than in config.h, but
it's not uncommon and is a simpler less-invasive change.  -- JM]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/37c85e4b9737abc88871daf724552959b612e7cb">37c85e4b</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-12-19T14:05:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevent reads past the end of the VCF header.

Modify bcf_hdr_read to ensure the header is always NUL-terminated.

Fix returned length in bcf_hdr_parse_line when it reaches a NUL character.
Previously it would include the NUL for lines which did not finish with \n.
This could cause a later call to the same function to read beyond the end
of the input buffer.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cc6ca5212157eb43232d680f8ee8dd5c1802ba33">cc6ca521</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-12-19T14:56:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make bcf_read1_core() return error if ks_resize fails, or on short read.

Check the return value of ks_resize() in bcf_read1_core, and return error
on failure.  Additionally, change bcf_read1_core to return failure
(instead of EOF) if bgzf_read() does not return the expected number of
bytes.

Make bcf_index() return failure if bcf_read1_core() fails, or if
either hts_idx_init() or bcf_init1() fail.

Allow NULL to be passed in to bcf_hdr_destroy() and bcf_destroy().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d3ac0db09904c39c9c4dd2e9bdef755b94911a67">d3ac0db0</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2016-12-21T13:47:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add function bcf_record_check() to validate bcf records

Check contig and tag ids are within the valid range given in the header.

Check for sensible data types.

Ensure decoding doesn't run off the end of the shared and indiv strings.

It's currently only called by bcf_read(), but might want to be used in
other places (or possibly even exposed in the API).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6d927dfa3192492f3015b1bc9a0026f585e93acc">6d927dfa</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2016-12-21T16:35:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change bam1_core_t::n_cigar from uint16_t to uint32_t

As various CIGAR-related loops and API functions use int, the practical
limit without further changes is 2^31-1 rather than 2^32-1.  As bam_init1()
uses calloc(), the unused field is initialised to 0 and we don't need to
bother re-zeroing it in sam_read1() et al.

Until the BAM format is extended to deal with it (samtools/hts-specs#40),
trying to write >64K CIGAR operations to a BAM file remains an error.

Implements and fixes #437.  (Update htslib/sam.h copyright notice for
changes in 2015 and 2016.  MinGW does not have EOVERFLOW.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/092b5aa471d28c300889fc782dc8bdd199b10394">092b5aa4</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-03T11:34:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Happy New Year
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5d114ebd8e9b80622769b8e575c5a9359cd51273">5d114ebd</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-05T12:14:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Alter bam1_t data layout so that CIGAR data is 32-bit aligned

Add extra padding NULs after qname so that the CIGAR data in memory is
aligned on a 32 bit boundary.  These NULs are included in l_qname so
that accessor macros are unchanged (as is code that accesses this data
without using the macros, sigh), and a new l_extranul field is added
that counts the extra NULs beyond the existing terminator NUL.

Add tests that read and write SAM, BAM, and CRAM.  Check sizeof(bam1_t),
taking care to allow for a possible extra 4 bytes of alignment padding
(e.g., on 64-bit platforms).

Fixes #400.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/59972b70832963ce587333dbfcfc8887b7221207">59972b70</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-06T14:58:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix test/compare_sam.pl -Baux on 32-bit platforms

The B:i mapping's ($_+4294967296)&4294967295 overflows to float
and clamps all positive values to 4294967295 on 32-bit platforms.
Rewrite it to avoid this.

Also remove $_= from all these internal map{}s, as we are interested
in the return values, not the side-effect of changing a non-lvalue.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c8475e824906a914f3aeeacef89f555009af9f2b">c8475e82</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-09T13:24:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Support custom S3 endpoint host_base setting (in .s3cfg)

Allow the user to specify an endpoint other than s3.amazonaws.com.
This can be set using ~/.s3cfg's host_base setting (only; we ignore
host_bucket); when there's a blessed setting key for .aws/credentials,
we'll support it there too (perhaps endpoint_url; cf aws/aws-cli#1270).

Fixes (part of) #436.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/271cbaa98c4ca9c6bafa4b20cac4aa3f19a0efc3">271cbaa9</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-01-10T10:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a kputd for %g specialisation.

VCF spends a lot of time doing ksprintf(s,"%g",val), especially on
VCFs with many samples.  The kputd is a dedicated function for
this one specific task that runs significantly quicker than the glibc
printf code.

On a 1000genomes test user time was previously 50.5s and after this
patch was 12.5s, to convert uncompressed BCF to uncompressed VCF. (But
still -Ou for uncomp BCF is 0.2s, so VCF generation is still slow).

I haven't look at VCF decoding (vs encoding), but likely there is room
there too.  uBCF->uBCF is ~0.2s; uVCF->uBCF is 21.7s.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/da61ad5945a3f25034d0ef6991f0e0f6ce3b8389">da61ad59</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2017-01-10T11:45:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">kputd: set kstring len correctly for negative exponential values
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/19014511d2f8366ea6404c928f75069913ab3c5a">19014511</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2017-01-10T18:09:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">vcfutils: replace exit() with return -1 in bcf_remove_allele_set

follow up to ee4725892ee3f29a813ba906d7c8b07928a3f352

* `bcf_remove_allele_set` to return `int` rather than `void`
* replace `exit(1)` in `bcf_remove_allele_set` with `return -1`
  along with cleanup on error
* wrap error messages in `hts_verbose>1`
* indicate `bcf_remove_alleles` is deprecated with HTS_DEPRECATED
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/515fd209536c059e30bfc9c12349b691a42ddf74">515fd209</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2017-01-11T12:35:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">propagate vcf errors from synced reader

Fixes #318
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f3a3a80f0e1066460ed51698ee46c867ae6aa649">f3a3a80f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-01-11T17:56:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge Google Cloud Storage support (PR #446)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1bd62b39f5245cff87bf9733ff983a852d3300a7">1bd62b39</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-12T09:23:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Split S3 parts of hfile_libcurl.c into separate hfile_s3.c

Just copy the whole file for now; the next commit will remove
the duplicated portions and add the new file to the build.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/acbd58eb13167e10f60710131f29ab1de8cdc586">acbd58eb</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-01-12T10:18:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Permit CRAM lossy_names mode to accept TLEN 0 or TLEN +/- 1.

The lack of TLEN value (eg "* 0 0" for the 3 SAM fields) or TLEN being
out by 1 causes the CRAM encoder to encode reads in "detached" state
so it can store TLEN verbatim.  This process broke the lossy name
encoding, so we're no longer quite so precise in our round-trip for
TLEN if we're asking for lossy read names.

Ideally these TLEN options would be a separate and orthogonal option
to the lossy_names option, but for now they are tied together for
simplicity.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/be9736d7cfdef1edac0b6df1dc2e3970c8554b7d">be9736d7</a></strong>
<div>
<span>by Olivier Cinquin</span>
<i>at 2017-01-12T15:45:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Undefine macro after it has served its purpose (no functional change).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/28aa45f5379cbc538906ba970543b837b714082c">28aa45f5</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-12T16:50:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure max_off is -1 when end bin overflows

When the end coordinate is larger than the index's maximum coordinate,
the starting bin for computing max_off is somewhere on the row beyond
the index's bottom row.  Disable max_off rather than using a random
parent bin of the bin somewhere below the bottom row.  (The min_off
computation has a similar problem, but for min_off it's immaterial.)

Fixes #455.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3046bbf2fc1edd77c1b8a3c25f36f8e834faa488">3046bbf2</a></strong>
<div>
<span>by dlaehnemann</span>
<i>at 2017-01-13T13:48:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Extended bcf_get_format*() documentation to emphasize difference between
ndst and the return value. Correspondingly extended the
bcf_get_gentotypes() example. See pull request #308.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/038a61beff9a671df565ddc19a9767ff9ff845ec">038a61be</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-13T14:31:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix whitespace, shorten help string [minor]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/70f2cc8845920d390e5d803b57d9078a5a817e14">70f2cc88</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-13T15:00:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Move S3 support from hfile_libcurl.c to hfile_s3.c

Delete S3 code from hfile_libcurl.c and libcurl code from hfile_s3.c
and add hfile_s3.c to the build.

Similarly to the GCS support, the S3 code is now a separate plugin
that calls (generally libcurl's) hopen() with some extra HTTP headers.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/481ba669c8f8ed5f4e2c02bc9d439ebf5f483521">481ba669</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-13T15:02:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge separate hfile_s3.c code
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e7bf06fa4828659e19dcdef0a2990661742ae11c">e7bf06fa</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-13T15:31:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't FAILONERROR at high verbosity and other minor libcurl changes

Normally we set CURLOPT_FAILONERROR so HTTP errors automatically
become hopen() failures.  At high verbosity don't set it, so that we
have an opportunity to see the error response body received from the
server, if any.

Now that add_header() is only used once, write it out inline.
Simplify CURLOPT_RESUME_FROM_LARGE silliness.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2448fd5629137e887948d0dc1186fe1998d2f696">2448fd56</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-13T16:47:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `htsfile -cv` raw view mode for unknown file formats

In particular (once hts_detect_format() no longer detects everything
vaguely textual as SAM; cf #200), this will aid debugging of network
failures as `htsfile -cvvvvvv URL` will display HTTP error response
body text in addition to the HTTP status code.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ec1d68e23ce75c7040ec895dfc0fffb1a2acb22c">ec1d68e2</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-13T17:24:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add bgzf_compression(); reuse check_header() in bgzf_is_bgzf()

Now that bgzf_open() is capable of opening plain-gzipped and
uncompressed files, there's no need to preflight with a bgzf_is_bgzf()
check.  In tbx.c, remove that in favour of a new bgzf_compression()
function that encapsulates the is_compressed/is_gzip flags (which
returns int rather than enum htsCompression so that bgzf.h continues
to not depend on hts.h).  Fixes #451.

Avoid problems in bgzf_close() when gz_stream has not been initialised
(it is used as a flag by bgzf_read_block(), so its initialisation can't
just be lifted to bgzf_read_init()).

Better to just remove bgzf_is_bgzf() entirely as using it means you
end up opening the file twice, but sadly enough third parties (mostly
derived from old tabix code) use it that we'll merely deprecate it
for now.  Have it reuse check_header() rather than use its own test.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6fb42cf5ed95af7b5e3c1ba9c1479bc94b2cde7d">6fb42cf5</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-01-14T18:21:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add build-essential to autopkgtest
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e9945fc7c56a4cd1c6cfb0a2ccf1de0aa848f25d">e9945fc7</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-01-14T18:22:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">debhelper 10
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f24104ed6b2c22b139fdadb58abb9788cd2d0f41">f24104ed</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-01-14T18:23:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">d/watch: version=4
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1b39d8d35c5ce1126b12d66e11280fa83d7bd8e4">1b39d8d3</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-01-14T21:11:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add @builddeps@ to autopkgtest
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cf5950e6665f99ebd1b477a635d26282ead4acc9">cf5950e6</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2017-01-22T23:44:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added reference to tabix

There is none for the HTSlib source package. Maybe one should also
add a reference for SAMtools.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/536682b04feffea28b9073db4f0b29d2bc4f3d46">536682b0</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2017-01-22T23:46:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'debian/unstable' of ssh://anonscm.debian.org/git/debian-med/htslib into debian/unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/40217538564d65c58ff055eff558a4d35bd16098">40217538</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-24T07:43:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add BZ2/LZMA to configure.ac and infrastructure to config.pc.in

We want to ensure most people can read all CRAM files and so configure
with both BZ2 and LZMA supported.  Check for the relevant libraries and
error out if they're not found.  Require --disable-bz2/--disable-lzma
to be explicitly given to build HTSlib without full CRAM support.

Have autoconf generate htslib.pc.tmp ("template") from htslib.pc.in, and
continue to delay expanding @includedir@, @libdir@, and @PACKAGE_VERSION@
until install-time.

Add static_ldflags and static_libs variables to htslib.pc, which don't
contain variable expansions etc so are usable via simple sed(1) extraction
as well as via pkg-config --variable.  An upcoming samtools change will
use these to link against libbz2/liblzma when they are required.
(TODO) These variables can also be used to communicate exactly when
-rdynamic/-ldl are needed.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a6842b5c70d6628ebd94dd1b5642637f991b6978">a6842b5c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-01-24T08:04:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed lzma memory limit.

The hard-coded memory wasn't appropriate for lzma -9.  It now queries
the maximum amount necessary.

Also fixed the error message.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c010cc3caa75a8c0737dca203991b384ad378b7e">c010cc3c</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-01-24T08:23:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Document the --disable-lzma and --disable-bz2 configure options
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2434a5adfd0283eff28b45fdf1f477912d380333">2434a5ad</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-01-25T04:43:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add -rdynamic/-ldl to htslib.pc.in's static_* variables when needed
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/942f5d267d3d1377a4068c7a0b40fbde73be7a68">942f5d26</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-01-25T14:08:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Stop test_cmd from merging stderr with its output.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/86e32e9e9e7935c62a1adea9cc58298140ca3188">86e32e9e</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-01-25T14:10:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add hts_endian.h to convert little-endian bytes to/from native integers.

Also handles unaligned access.  This can be controlled by setting
HTS_ALLOW_UNALIGNED - if 0, unaligned access is disabled; if 1 it is allowed.
If unset, it will be enabled on intel x86-like platforms.

cram/cram_encode.c and cram/os.h are modified to use HTS_ALLOW_UNALIGNED
instead of ALLOW_UAC (which could not be disabled).

One of the macros HTS_LITTLE_ENDIAN or HTS_BIG_ENDIAN is defined on
platforms known to be little- or big- endian respectively.  HTS_ENDIAN_NEUTRAL
can be defined to disable this.  Code in hts_endian.h is intended to
be endian-neutral by default, so it should still work even where
endian-ness detection fails.

Includes unit tests and documentation.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/70622cffc711b0e501c431bc221a6abdbdf3a6bd">70622cff</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-01-25T14:12:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix undefined behaviour and improve endian-related behaviour

Undefined behaviour includes:

* Illegal shifts
* Calls to memcpy(ptr, NULL, 0)
* Unaligned access

On Intel, HTS_ALLOW_UNALIGNED=0 needs to be defined to enable unaligned access
prevention.

Behaviour on big-endian systems is also changed, notably bam auxiliary
data is now stored in little-endian order instead of being byte-swapped.
This means code accessing aux data needs to byte swap integer and float
values on big-endian platforms.  To assist this, more bam_aux functions
are added.  These include bam_auxB_len(), bam_auxB2i() and bam_auxB2f()
for accessing array elements.

Justification for this:

* The data was previously stored inconsistently depending on if you
  read a sam, bam or cram file.  This meant big-endian platforms basically
  didn't work before this change.
* The values are often unaligned.  Some platforms (e.g. sparc, mips, armhf)
  need special handling for unaligned data, and it's easy to do the byte
  swapping at the same time.
* No time is wasted byte swapping aux values that aren't going to be
  accessed (although this is only an advantage for bam).

Undefined behaviour detected by compiling with -fsanitize=undefined and
running the test harnesses for htslib, samtools and bcftools.

Endian compatibility tested using netbsd on sparc (emulated with qemu).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0e63e293cf47c1b764be007dfa2b7e3ef1f27ab5">0e63e293</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-01-27T12:22:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed dead-lock case in seek + multi-threaded decode.

If the bgzf_mt_reader() function was blocked (queue input is full)
dispatching the very last block of the file, and the main thread then
sends a SEEK command, the reader is woken up but does not process the
seek request.  Instead it wedges on the next dispatch, marking EOF,
instead.

The reversal of the blocks of code appears valid given we have one
read-ahead thread per file open each with its own queue of blocks to
decode.  Hence it should not be possible for the very first dispatch
call to block.

This hopefully resolves the issue #537, subject to further testing by
the submitter.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2916d7c6ca5d6cff1f2898055dedda709e3ad0c1">2916d7c6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-01-30T11:19:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge PR #395 (Add a kputd for %g specialisation).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/255863e192e6861558e164fbe68016f7e5a775a2">255863e1</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-01-30T12:02:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adjusted prototype for kputd to be consistent with other kput functions.

The initial implementation copied the same argument order as ksprintf,
which it specialises, but the integer and character kput* functions
all use the opposite argument order.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f476b53f3f76fff44ae1c707020badc14283269d">f476b53f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-02-01T15:34:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed bgzf threading dead-lock when trying to reading beyond EOF.

This addresses the comment in
https://github.com/samtools/bcftools/issues/537#issuecomment-276194107
and also fixes (for multi-threading only) issue #461, making it skip
internal empty blocks, plus warnings about absent EOF blocks when
reading from a pipe.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2e0e1246a09ab5e74ddce23b780273ab34f14b67">2e0e1246</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2017-02-02T12:33:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">BGZF skip empty blocks, do not give up reading prematurely

Resolves https://github.com/samtools/htslib/issues/45
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/99660e026cdd01653ea958bfed71fbd6b8926654">99660e02</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-02T12:39:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Report missing BGZF EOF blocks

Make bgzf_read_block report missing EOF blocks while reading in
single-threaded mode. The multi-threaded code is updated so that it uses
the same field in struct BGZF to record having seen an EOF block.  We
also set a bit when we discover the EOF block is missing so as to
avoid repeated warnings on the subject.

The bizarre 2-bit booleans in struct BGZF are modified to be 1 bit long
so we can repurpose some of the bits.  We can get away with this as we
are changing the ABI.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d8d0323bca21cfd131e2f183d12c9dd31a5ed75b">d8d0323b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-02-02T15:30:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixes for dealing with raw gzip streams.

This fixes issue samtools#632 via John's suggested change as well as
fixing multi-threading on non-bgzf streams too.  (It just bails back
out to single threaded.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0452e7eef3848171c1cfa4c26c697949c5d71942">0452e7ee</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-02-06T16:42:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Further thread pool fixes.

This replaces PR #462 with a revised method suggested by @daviesrob.
The synchronisation between main and reader is now done within thread
pool using half-shutdown of the process-queue via reference counting.

Also fixed some memory leaks during shutdowns.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/12d6e02068374181574a94a44648e309e774056d">12d6e020</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-02-06T17:32:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge commit PR #459 (Fix undefined behaviour and improve endian-related behaviour)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/79f38a353bcb700ad30d007527239e97d6a07790">79f38a35</a></strong>
<div>
<span>by Andreas (Kusalananda) Kähäri</span>
<i>at 2017-02-07T08:56:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Include <sys/select.h>

The <sys/select.h> header is needed for calling select() on some
non-Linux Unices.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/190a7225d9674d9c1dbfc4881cadcb9f8cefe868">190a7225</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-07T15:25:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge "Further thread pool fixes" branch (PR #465)

Add copyright boilerplate.  Fixte.  FiUpdate .gitignore.
Stop test/thrash_threads5 from outputting possibly binary data to terminals.
Make test/thrash_threads6 complain if its input is not big enough.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fd178d3a0c86546d7c2d3d4265d2db12008c7aae">fd178d3a</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-02-08T10:03:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed bgzf_gzip_compress when given uncompressable data.

There was an assumption in this code that deflate had no data from the
previous block to flush, hence (by design) the output block is always
large enough for the input data supplied.  Changing from Z_NO_FLUSH to
Z_PARTIAL_FLUSH removes this assumption.  Fixes #270.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ff71a319d438717ee6ffa194b50086e7e990edcd">ff71a319</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-02-08T16:31:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed data corruption when switching to threads part way through a stream.

The bug was caused by over-zealous memory leak removal in the previous
bgzf commits.  The thread thrashing code now does this to exercise the bug.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3dc96c5699a26c5a46e3ccca4092b3801e1874f4">3dc96c56</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-08T16:40:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow fai index to be in a different location to the indexed file.

Convert bgzf_index_load, bgzf_index_dump, fai_load, fai_build, fai_read and
fai_save to use hfile instead of stdio.  This allows access to remote
indexes via http, ftp etc. and the plugin infrastructure.

Add new API interfaces fai_build3() and fai_load3() which take separate
names for the fai and gzi index files.  If an index file name is
passed in as NULL, it is derived from the name of the file being indexed
as with fai_build() and fai_load().  As a result, fai_build() and
fai_load() are replaced by simple wrappers that call fai_build3() and
fai_load3() with NULL index file names.

The download_and_open() function which made local copies of remote index
files is removed.  The side effect of creating local files was not
desirable in some cases, and download_and_open() suffered from race
conditions if two processes tried to access the same index simultaneously.
It was also not called for .gzi files.  fai_build3() and fai_load3() can
directly access remote files for both indexed, .fai and .gzi files.

This removes fai_save() as a public symbol in libhts.so, but this
function does not appear in a public header file so is not part of
the official HTSlib API or ABI.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2e1c10b887e3109526eb9345c24dbfc509d4c1f2">2e1c10b8</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-08T16:40:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add bgzf_index_load_hfile and bgzf_index_dump_hfile

These read and write .gzi indexes in the same way as bgzf_index_load and
bgzf_index_dump, but allow writing to an existing file handle.

bgzf_index_load and bgzf_index_dump are modified to simply open an hFILE
and call the new functions.

Doxygen documentation is added for the new functions, and improved for the
existing ones.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/84a89da6cf0eb828d39f9a85b82411d58c840e16">84a89da6</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-08T16:40:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add bgzf unit tests

Directly exercise the functions exposed by htslib/bgzf.h
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/44f77d577ac0b4c15f80606274142b388ec8c0d0">44f77d57</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-02-09T13:30:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Install header files from cram dir in -dev package since these are used in libseqlib
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e4ea80c3c5f3f2992033ca62166dd2ee132883ab">e4ea80c3</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-02-09T14:22:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix pkg-config
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/54feaaa247be6e99fa472bc9fc8b471848cc5568">54feaaa2</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-02-10T07:46:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to experimental
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9e2fbac84dbf161e4ced168be1a40d3f1d948332">9e2fbac8</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-02-13T17:26:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove MacOS X dead-lock in bgzf threading.

This is due to an erroneous double unlock of command_m mutex, present
since 8ca01755.  This exposed itself once we added additional
multi-threading in samtools, due to the additional MT checks add by
Rob (thanks).

Fixes samtools/samtools#639
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ee2bcaa61c6d91f2db743d73704589f6064793f7">ee2bcaa6</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-14T15:03:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add more error checks when building indexes

Includes check for chromosome positions bigger than the index
can handle.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7bfa010fd4b66679b320786796be3e08319a63f6">7bfa010f</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-14T15:03:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add tabix functional tests
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/95b1034e93b345fef7aa4980750ba1dedde2c284">95b1034e</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-15T15:07:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove abort on corrupt aux data, pass errors up instead

Remove abort from skip_aux() when it finds an aux record of unknown type.
Also add some tests for records that are longer then the space available
for them.  Make it return NULL if anything is wrong.

Make bam_aux_get() and bam_aux_del() report an error if the aux data is
founbd to be corrupt.  bam_aux_get() now sets errno so callers can tell
the difference between broken aux data and tags that are not present.
errno is used so that the API for bam_aux_get() is essentially unchanged -
callers that do not check will still work, albeit while silently ignoring
the problem.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8dd26ff8c76e113d026c9312923a27c1257ef326">8dd26ff8</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-15T16:03:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make sam_format1() fail it it finds an invalid aux type

Add a missing catch for invalid aux types.

If hts_verbose is set it will now print a message if it fails due to
invalid aux data.

Also fix a FIXME - check if there is enough aux data left the correct way.

Thanks to Chris Saunders at Illumina for reporting problems with
sam_format1() and skip_aux() on broken records.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/57c71055aa5e2a3bb1b950c2a68bead95d2b915b">57c71055</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-17T14:07:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Deal with bzip2 pkg-config module not being available everywhere
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dc54b0df01d16a113f108e289a8abaf8006af0be">dc54b0df</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-02-20T16:46:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix to iterators when the query overlaps zero bins.

Such a query now sets the iterator to be 'finished'.
This fixes samtools/samtools#637.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7317e4fbb590727849c70bba4958f7ed51e46c7e">7317e4fb</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-02-21T17:09:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix endianness, integer type and memory safety issues in index metadata

Index metadata stored in an hts_idx_t struct was byte-swapped for
tbi indicies but not for csi.  Make them both the same by leaving the
data in little-endian order, and make tbx_index_load2() access the
data in an endian-neutral manner.

Functions hts_idx_get_meta() and hts_idx_set_meta() are changed to
treat the metadata length as an unsigned value (uint32_t) to match
the integer type that is used to store the length in the hts_idx_t
struct.  hts_idx_set_meta() is also changed to return an int
so callers can detect if it ran out of memory.

hts_idx_load_local() and hts_idx_set_meta() now ensure that the stored
meta-data is always followed by a NUL.  This is to prevent tbx_index_load2()
from running off the end of the metadata if there is an unterminated
string in the list of sequence names.

get_tid() is made to return -1 if it fails to add a hash entry.  A few
other calls to malloc are also made safer.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0c3263187150d1b4653a2b38ea428f6f5910c161">0c326318</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2017-02-23T18:34:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">bcf_index_build3: return -4 on index write failure as per sam_index_build3
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e37732bc46c6d16a10d1bc99b043e09a7217737f">e37732bc</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-01T11:53:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add more libraries to static_LIBS, where required

Add -lz (unconditionally), -lcurl and $CRYPTO_LIBS (if required) to
static_LIBS.  This makes the static linking information in htslib.pc
correct for the various combinations of libcurl, S3 and enabling or
disabling plug-ins.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9558a729ce8e09e80167a07d68fd88ac822a79af">9558a729</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-01T14:09:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Create a Makefile fragment with static linking flags

htslib_static.mk is built from htslib.pc.tmp, and sets two variables:

  HTSLIB_static_LIBS    : -l flags needed by programs linking libhts.a
  HTSLIB_static_LDFLAGS : other flags needed to link with libhts.a

Rules to make this file are added to the Makefile and htslib.mk.

The file makes it easier for packages building against the source tree
to get the correct linker flags.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/06edd7e4400cf6f84a4a82fed0ff39b5a44781ce">06edd7e4</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-01T15:33:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove explicit -lz -lm link flags; add to LIBS instead

Add -lz and -lm to $(LIBS) via $(htslib_default_libs).  This means they
don't need to be explicitly need to be on link lines.  LIBS will be updated
by config.mk if configure is used.  configure.ac is updated to ensure
configure supplies -lz and -lm.

MacOS libhts.dylib may now get -lm on its link line, which is not strictly
needed, but harmless (libm.dylib is a symbolic link to libSystem.dylib).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1c3c77aad367199b66b2ae486f64deb7161f7c7f">1c3c77aa</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-03-02T12:20:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Mention thread pool changes.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1b5652cf31f1d4c58a142297816c412cf49a38a6">1b5652cf</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-03T09:47:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge "Provide more informative error message for unknown tag type (PR#444)"

Brought up to date with current sam_parse1().
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a2d7f07510eba1d34f8da6bbd8e4f5dde961fd11">a2d7f075</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-03-06T13:35:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merged PR#463 (Configure BZ2/LZMA and make htslib.pc more accurate).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/811d30f65bf488da8a5e00253f2f0a54c66048ab">811d30f6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-03-06T15:31:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">News updates (from historical commits).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ae0bec6a3d2b24cd52830f6bd076340286690d33">ae0bec6a</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-06T18:01:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevent segfault due to VCFs with very large IDX tag values
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/442ae75b309a1c6c554df411fb0f2cc880341891">442ae75b</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-07T15:20:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a few non-portable constructs.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/30b9f501e5a7a59dff42ed8aa058f8fd7716dede">30b9f501</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-07T15:20:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a description of how the thread pool test program works.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c6d1c34371e988fc03b547d6871446b234ed1b91">c6d1c343</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-07T15:20:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added missing #include in test_view.c.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6a44f49c59d979867d555b383646094bc45bc0e0">6a44f49c</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2017-03-09T20:57:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reworked synced VCF/BCF reading

The original version of allele matching was too simplistic and handled
records with duplicate positions by removing ("collapsing") them by
type - if requested so via the bcf_srs_t.collapse option. This behavior
is changed by this commit, records will never be discarded by the
reader. Instead, compatible records will be paired intelligently
based on user criteria. If duplicate positions are not desired, they
must be removed by the caller or by an external tool, such as `bcftools norm`.

Notes:

- the usage of the old "collapse" is discouraged, but backward-compatible
  at the API level, with behavior changed as described above

- bcf_sr_set_opt() call was introduced to avoid the need to access reader's
  internal structures directly. Ideally at some point it should became
  an opaque struct, to minimize the need for API/ABI breaking changes in
  future

- the allele pairing is still not perfect, it does not try to resolve
  ambiguous representations of identical alleles, such as multiallelic
  indels AA>A vs AAA>AA,AAA>A

- the new implementation slows the reader by 40-20%. This was measured
  with `bcftools isec`, which has no significant overhead: the original
  version took 113 seconds to process, the new reader took 157 seconds
  (two sites-only BCFs with 35M sites). In real life this never is a
  bottleneck, for example the difference in speed was not measurable when
  176 gBCFs with 64M sites are merged.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/efbded02d4b5d9311ec09ee53fa4d5d4b16f1d3c">efbded02</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-09T21:13:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Default to check for libcurl; don't fail on no -lcrypto for s3 check

Default to checking for libcurl as we want to use it if it's there.

Only warn if --enable-s3=check and -lcrypto can't be found.  This is so
we get libcurl even if S3 can't be built (and S3 was not specifically
required).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b1a193c47b2a8def9671061fb66808d6948d5a78">b1a193c4</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-09T21:13:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add libbz2 and liblzma to default libraries in the Makefile

Always turn on bzip2 and lzma support unless it is explicitly disabled
by configure options.  Includes NEWS item.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/03452dda3ff9f346ce8b9eb64360835a33652da1">03452dda</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-09T21:13:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add sections on dependencies and making configure to the INSTALL file.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/078069bf42417ce6b75c0c86fe8f1d8cd3bbd2a7">078069bf</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-09T21:13:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Travis updates.

bz2 and lzma packages are requested for building against.
MacOS X has been added to the os matrix.  This is primarily to test
the linux vs osx package dependencies.
We test both with and without using autoconf.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5c695a174f74f5785bb5a6b27713d234147dbdb8">5c695a17</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2017-03-10T11:40:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevent infinite loop on empty indexes

Resolves https://github.com/samtools/htslib/issues/478
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e7203ae97b95de475da083abc361699e7423e292">e7203ae9</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-12T16:36:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed a bug in bcf_fmt_array with garbage allele frequencies. The special value 0x7f800001 (NaN), used to indicate a missing value, was changed to 0x7fc00001 (also NaN) when the function le_to_float returned.

This problem might be specific to MSVC and the calling convention where the return value is passed on the FPU register stack. In that process the value seems to be converted from signaling NaN to quiet NaN.

The fix is to keep the value as uint32 while testing for special values.

Reported as a bug in samtools:
https://github.com/samtools/hts-specs/issues/145
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/150334ca6dfbccba5d0554b8e6201ba276f6fa11">150334ca</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-12T16:36:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Handling of float-type missing values in VCF files, part 2 of 3: bcf_get_info_values.

Added a test case and removed the special handling of the case info->len == 1, because all saved was one value on the stack and it didn't get the missing float values right.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dd0c31d498ece32f21664ecbe03098e59408522a">dd0c31d4</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-12T16:36:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Handling of float-type missing values in VCF files, part 3 of 3: bcf_get_format_values.

Added a test case in test-vcf-api.c.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cf469f6554f47486018d5ec76f5dd959ac2bd057">cf469f65</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-12T16:36:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replaced memcpy with the more descriptive bcf_float_set_missing in vcf_parse.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/55e6404347948913be7c753c1520bd703c2eddd9">55e64043</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-12T17:13:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">oops
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b7bb8c7035c00281254773901bca6f81a6523fab">b7bb8c70</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-12T18:06:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reordered test cases so that the output file ends up the way it's supposed to.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ca1423d655bdf503153b36e10b0a7fe9defad182">ca1423d6</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-03-13T14:46:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix over-specified location of htslib.pc.tmp
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d2d9c76ade2df2b63b9cf79ae8decda1dfadc042">d2d9c76a</a></strong>
<div>
<span>by jenniferliddle</span>
<i>at 2017-03-13T14:48:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Release 1.4: summary
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/879855be30e0834f75ae60eebfef0ce60533a7ed">879855be</a></strong>
<div>
<span>by jenniferliddle</span>
<i>at 2017-03-13T14:52:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge version number bump and NEWS file from master
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3a31ddfc83ec60e5fea1f6358a1ccc9ab87cb822">3a31ddfc</a></strong>
<div>
<span>by James Blachly</span>
<i>at 2017-03-13T19:51:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add check for libsocket to autoconf (needed to compile on illumos/Solaris)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9db2e71eaca3c9e7d98b26f2dfa54c4f3a7780c5">9db2e71e</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-03-14T19:12:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Made the changes slightly smaller through the use of bcf_float_set.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0172fe3e7ff918bd2c1d594893b2aa76b0b3aca9">0172fe3e</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-03-21T16:40:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge tag '1.4' into debian/unstable

Relase 1.4 (13 March 2017)

* Incompatible changes: several functions and data types have been changed
  in this release, and the shared library soversion has been bumped to 2.

  - bam_pileup1_t has an additional field (which holds user data)
  - bam1_core_t has been modified to allow for >64K CIGAR operations
    and (along with bam1_t) so that CIGAR entries are aligned in memory
  - hopen() has vararg arguments for setting URL scheme-dependent options
  - the various tbx_conf_* presets are now const
  - auxiliary fields in bam1_t are now always stored in little-endian byte
    order (previously this depended on if you read a bam, sam or cram file)
  - index metadata (accessible via hts_idx_get_meta()) is now always
    stored in little-endian byte order (previously this depended on if
    the index was in tbi or csi format)
  - bam_aux2i() now returns an int64_t value
  - fai_load() will no longer save local copies of remote fasta indexes
  - hts_idx_get_meta() now takes a uint32_t * for l_meta (was int32_t *)

* HTSlib now links against libbz2 and liblzma by default.  To remove these
  dependencies, run configure with options --disable-bz2 and --disable-lzma,
  but note that this may make some CRAM files produced elsewhere unreadable.

* Added a thread pool interface and replaced the bgzf multi-threading
  code to use this pool.  BAM and CRAM decoding is now multi-threaded
  too, using the pool to automatically balance the number of threads
  between decode, encode and any data processing jobs.

* New errmod_cal(), probaln_glocal(), sam_cap_mapq(), and sam_prob_realn()
  functions, previously internal to SAMtools, have been added to HTSlib.

* Files can now be accessed via Google Cloud Storage using gs: URLs, when
  HTSlib is configured to use libcurl for network file access rather than
  the included basic knetfile networking.

* S3 file access now also supports the "host_base" setting in the
  $HOME/.s3cfg configuration file.

* Data URLs ("data:,text") now follow the standard RFC 2397 format and may
  be base64-encoded (when written as "data:;base64,text") or may include
  percent-encoded characters.  HTSlib's previous over-simplified "data:text"
  format is no longer supported -- you will need to add an initial comma.

* When plugins are enabled, S3 support is now provided by a separate
  hfile_s3 plugin rather than by hfile_libcurl itself as previously.
  When --enable-libcurl is used, by default both GCS and S3 support
  and plugins will also be built; they can be individually disabled
  via --disable-gcs and --disable-s3.

* The iRODS file access plugin has been moved to a separate repository.
  Configure no longer has a --with-irods option; instead build the plugin
  found at <https://github.com/samtools/htslib-plugins>.

* APIs to portably read and write (possibly unaligned) data in little-endian
  byte order have been added.

* New functions bam_auxB_len(), bam_auxB2i() and bam_auxB2f() have been
  added to make accessing array-type auxiliary data easier.  bam_aux2i()
  can now return the full range of values that can be stored in an integer
  tag (including unsigned 32 bit tags).  bam_aux2f() will return the value
  of integer tags (as a double) as well as floating-point ones.  All of
  the bam_aux2 and bam_auxB2 functions will set errno if the requested
  conversion is not valid.

* New functions fai_load3() and fai_build3() allow fasta indexes to be
  stored in a different location to the indexed fasta file.

* New functions bgzf_index_dump_hfile() and bgzf_index_load_hfile()
  allow bgzf index files (.gzi) to be written to / read from an existing
  hFILE handle.

* hts_idx_push() will report when trying to add a range to an index that
  is beyond the limits that the given index can handle.  This means trying
  to index chromosomes longer than 2^29 bases with a .bai or .tbi index
  will report an error instead of apparantly working but creating an invalid
  index entry.

* VCF formatting is now approximately 4x faster.  (Whether this is
  noticable depends on what was creating the VCF.)

* CRAM lossy_names mode now works with TLEN of 0 or TLEN within +/- 1
  of the computed value.  Note in these situations TLEN will be
  generated / fixed during CRAM decode.

* CRAM now supports bzip2 and lzma codecs.  Within htslib these are
  disabled by default, but can be enabled by specifying "use_bzip2" or
  "use_lzma" in an hts_opt_add() call or via the mode string of the
  hts_open_format() function.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/94d9711102d247c6764f216dbebc13795557397a">94d97111</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-03-21T16:42:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e742362d5a953ceda3b6d329ce2f3c3a2cbe1219">e742362d</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-03-21T16:43:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update patches
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/46d5eee361c2c79d9b941d0ab0a154171b4d8d67">46d5eee3</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-03-21T18:03:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Drop autoconf from Build-Depends, add libbz2-dev and liblzma-dev to Build-Depends
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/28af9f8c0129302a9f7843d341da3ace2afa7662">28af9f8c</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-03-21T20:21:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove binary files from test results
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f711b01663ee28387dd1c704f4cccd9854f03764">f711b016</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-03-21T20:25:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove symbols file since I'm too lazy to maintain these - volunteers welcome for a final upload to instable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d6ae67daffa4819cfc0a913d6a6fbab338f82f8a">d6ae67da</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-03-21T20:30:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hange library name to match soname
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e880f57271b7853b0e83e518cc9fbd6738562f30">e880f572</a></strong>
<div>
<span>by Isaac Turner</span>
<i>at 2017-03-22T12:25:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use -lpthread instead of -pthread when only linking; Fixes clang warning
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e2a1f187e2fa73aaed94ca75285397d9a63e5440">e2a1f187</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-03-22T12:40:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge PR #255 into develop.

Also updated the pthreads link options for the new executables that
had appeared since this PR was made.

Conflicts:
        Makefile
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e2a557842f1eb82c7b1ff39ff780f2df9f84b583">e2a55784</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-03-22T12:43:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added tabix to the "make test" dependency.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/10bc1a71eac174cbcd918f86027d445e8d0cdb60">10bc1a71</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-03-23T11:31:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tweak to tabix long opts to remove duplicate 'h'.

Fixes #482

The change is invisible to the command line as "tabix -h" previously
(and now) reported help simply because it had no filename listed, not
because it interpreted -h as help.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a17fc73f14def7f061c36e041d79db624c39e800">a17fc73f</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-03-23T15:31:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixes to support a stricter C99 plus POSIX.1-2001 environment.

Removed __restrict.
Include strings.h for strcasecmp.
Replace alloca with static sized arrays or malloc/realloc where appropriate.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/65267c743ac501d14c9abd7d60acad46c8f529f4">65267c74</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-03-23T17:42:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replaces the itf8* macro abominations with static inline functions.

This also fixes various issues with shifts on signed data.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b30fc6a6b99cbc4585802d0bf7aeac1e321d6f4f">b30fc6a6</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-03-23T18:13:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tidy up non-standard C99 issues.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/10081c4d53cc8babfee531c6275a4f3a5dc52290">10081c4d</a></strong>
<div>
<span>by Shane McCarthy</span>
<i>at 2017-03-24T12:01:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">add test-bcf-sr to .gitignore [minor]
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9986f5de146018565bb42eb74645ff5e119ee18b">9986f5de</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-04-04T13:32:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed kputd printing of NaN.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/052a16eeb20326f3e1bbbc4fe2359fe516f419d4">052a16ee</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-04T13:55:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge check for libsocket (commit 3a31ddf from PR#488)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/487f3670bd1e80100a68be01b86ea248fab7b9b9">487f3670</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-04T13:57:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge Merge NaN issue fix (PR#485)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ff8f83a26c925dcc9863831b0b1c0d09f0276ed6">ff8f83a2</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-04T13:59:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge C99 compliance improvements (PR#498)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/61631149325d43d65a5e348e847021eed3908bcd">61631149</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-04-04T20:36:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">First draft of a new logging mechanism.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e1848ae6192a481437257059447f27c53f4802b8">e1848ae6</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-04-04T20:36:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added helper macros log_error, log_error, etc.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ddcc3ab5e54cf2c0ad3ffb5f1197859ccb81e191">ddcc3ab5</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-04-04T20:36:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Switched to new logging functions in bgzf.c. NOTE suspicious buggy bracket placements on lines 1716 and 1752 (before edit) changed.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c54f23ca14d9a87cac1d9b1a893bb0f1e26b6c81">c54f23ca</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-04-04T20:36:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added tests for logging.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c6d03a1d42e0e262ec14e46cc0aa947c656e646d">c6d03a1d</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-04-04T20:57:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adapted to gcc/unix environment.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/af89ccb237ce975b06413579efbc6eeabf3a9cc5">af89ccb2</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2017-04-05T10:18:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Free file name strings upon successful faidx loading
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9317ca658f94035c2ee2600a3d65cc375f60ef07">9317ca65</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-07T15:10:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure B aux tags have a comma after the type charater

Anything other than a comma caused the number of elements to be miscounted
leading to a heap overflow in some cases.

Fixes #501
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1acad458ca8a30f6a3a0d98b1a2e8651c3f1bd44">1acad458</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-04-10T08:43:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix buffer overrun on corrupted data.

Fixes #507

(Note this bug has nothing to do with the c->l_extranul code.  It is
simply that b->l_data (block_len-32) is smaller than c->l_qname.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1e1bf97043fbd7f9f4b5b75a90ac04746328ead6">1e1bf970</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-04-11T10:56:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Harden rANS decoding against malicious or random input.

Fixes #510, fixes #511, fixes #512 and fixes #513.
Also tidied up a couple minor memory leaks when recovering from errors.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b1b281695c1afee95f344a30e8d0679b2410a97f">b1b28169</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-04-11T11:56:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CRAM check for embedded references being too small for slice.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2270547b597bbad68e22c0172900c6f2294b657f">2270547b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-04-12T11:50:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Further rANS protections.

We ensure we can't read from unintialised parts of the D.R matrices.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0f60c3560a6c1b3bf0b917a846835b95b912fc27">0f60c356</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-12T14:18:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure BGZF block length is longer than the block header

Prevents an attempt to read a negative number of bytes if the length
reported in the BC subfield is less than BLOCK_HEADER_LENGTH.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/42bfe70c0403f1b9b314f0ee2c886d19feddf298">42bfe70c</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-12T16:17:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check number of symbols is sensible in Huffman codec stream

Avoid negative values and possible arithmetic overflow.  Also remove
a malloc(0) in the case where ncodes == 0.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/08c16ef0d1d9985df648e7b4b7ea385e3d2e8795">08c16ef0</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-04-13T20:11:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Moved the declaration of hts_log & co to the public API.
Appended the hts_ prefix to the log_<level> macros.
Switched to standard C99 __VA_ARGS__ instead of ##__VA_ARGS__.
Added HTS_FORMAT checking to the hts_log function.
Changed the initialization of hts_verbose to use the literal HTS_LOG_INFO instead of magic number 3.
Centralized newline handling to the hts_log function.
Re-purposed the test-logging.pl script to test for message consistency.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6a50863ec58cecb22f68e880072e53a4bbf1ec2d">6a50863e</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2017-04-18T08:58:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make bcf_set_variant_type() aware of breakends
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0d3d32f5faed7cd160ca2f05bc3028122b2a52ac">0d3d32f5</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-04-20T18:39:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Restored the default log level (3) but now interpreted as HTS_LOG_WARNING.
Added HTS_LOG_TRACE log level.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ea59199b1a4f62c96b3a49bd854b3ae10eaee87f">ea59199b</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-04-20T18:39:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adjusted log levels in bgzf.c.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/49fe80f951dd9e7c05e60e22b0ecae7059340860">49fe80f9</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-04-20T19:12:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added trace log level to get_severity_tag.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bb15901249e3b918663c4ca307cf764a1c8d504e">bb159012</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-26T11:21:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve end of name detection in fai_read

Use !isspace() instead of isgraph() to find out where the first column
ends.  This better matches how the file is written by fai_save, and
works better on files with unusual sequence names - notably ones that
include utf-8 encoded ligatures.

Also prevent the parser from going beyond the end of the read line.  This
could only happen on broken fai files where the last line has an
unterminated sequence name.

Fixes #521
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cd26782a742c8608ed1dc153833b0e13f9b5eded">cd26782a</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-26T11:21:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve fai_fetch() and faidx_fetch_seq()

Fix bug where fai_fetch() did not return an error if a non-existent
sequence name was followed by a region specification.  Fixes #522.

Improve choice of data type for some variables.

Check malloc() return values.

Replace atoi() with strtol() for better handling of out of range numbers.

Report if an out of range number means part of the sequence cannot be
accessed.  This can only happen with very long sequences on platforms
with 32 bit longs.  Shorter sequences will bring the number back into
range by clamping the value to the sequence length.

Fix some region parsing oddities, so for example 'seq:-4' is interpreted
as 'seq bases 1 to 4' and not 'seq bases minus 4 to end'.

Pulled retrieval code that was duplicated in fai_fetch() and
faidx_fetch_seq() into a new static function.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/74cd22224035fa01d1d0ddb55150f3b1fd1561e0">74cd2222</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-26T11:21:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevent fai_retrieve() from reading one character too many

Fix an "unexpected end of file" when trying to retrieve one past
the last base of the last sequence.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8e1be4ae19454befcb8ed4a5fd7a78ce34b455bc">8e1be4ae</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-26T11:21:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change isspace to isspace_c
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ae4f3df1f1a5f6edb0cf768675b611b56d288fa0">ae4f3df1</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-04-26T15:07:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure bcf_hdr_read() is reading vcf or bcf

bcf_hdr_read() assumes it can use bgzf to read the file.  This may not
be true if the file is plain text but was not detected as VCF.  To
ensure that bgzf_read() will work, check that the format is BCF before
attempting to read it.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/02e2be3c316268deff361f5bf2a8fbbd37623a2e">02e2be3c</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-05-02T13:41:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Include htsfile binary into tabix package since its used by manta package
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/903f2b3b60d716cb65a764970232e0596d45ec01">903f2b3b</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-05-02T13:42:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to experimental
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/079c7b81d3eb740f575d6ee07f8d0df36932559e">079c7b81</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-03T15:58:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Limit query name to 251 bytes to prevent l_qname overflow

Since 5d114ebd8e9b80622769b8e575c5a9359cd51273, up to three extra NULs
have been added after the query name in the bam1_t data so that the
following CIGAR records are 32 bit aligned.  These extra NULs are included
in l_qname so that bam_get_cigar() etc. work without being changed.  As
l_qname is uint8_t, it will overflow if the query name is longer than
251 bytes.

Add checks to bam_read1(), sam_parse1() and bam_construct_seq() to
make them fail if they encounter a query name that is too long.  This
means some files will become unreadable.  Such files are likely to
be artificially-generated data (for example made by
https://github.com/sbg/Mitty) rather than from real sequencing experiments
which usually generate names much shorter than this limit.

TODO: This restriction can be removed on the next ABI change, by
making l_qname 16 bit.

Thanks to @jmarshall for help with this, including work that can be used
for the future ABI breaking fix.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d6cab913f23c6557b430fa9a2e02a5af9f3f94a7">d6cab913</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-05-04T08:57:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">add the cram_to_bam function to the public interface of htslib because it is used by code in Sambamba
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8e96d8ae968ac8e091ba701aca2367ada3b15937">8e96d8ae</a></strong>
<div>
<span>by Petr Danecek</span>
<i>at 2017-05-05T14:24:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix in VCF/BCF header parsing

When VCF header contained a line that could not be parsed, all samples
were discarded. For example, in a well-formed VCF all header lines must
be of the form ##key=value and if they are not, the parsing would stop
prematurely and consequently all genotype fields dropped:

    ##fileformat=VCFv4.2
    ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
    ##contig=<ID=1>
    ##Incorrect comment line
    #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT Sample
    1      1   .  G   T   .    .      .    GT     0/1

This commit skip malformed header lines, printing a warning.

On non-recoverable errors, bcf_hdr_parse now returns negative
value which is now checked by all callers.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/affe5c00e7e7dfc5fe5e86e56d86d11f155c792c">affe5c00</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-05T14:24:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure bcf_hdr_t is destroyed when bcf_hdr_parse() fails
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/94accfcea9f9fe527011d27cbf6d70d31d980c50">94accfce</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-05T14:24:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure bcf_hdr_parse_line() always finishes at the next newline or NUL

Terminate the search for an '=' character if a newline is found.  This
stops bcf_hdr_parse_line() from incorrectly running into the next line
when '=' is missing.

On structured header lines, drop all characters between the closing '>'
and the next '\n' or NUL, not just spaces.  This ensures *len is set to
the correct line length, and the next call starts parsing at the
correct location.  If any non-whitespace characters are seen, a warning
is printed.

(Minor) Remove the need for an intermediate buffer when printing the
'Could not parse the header line' error message.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b8c6f7dd5581f4b7fcf0a997bfa80763a7ee9026">b8c6f7dd</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-05T14:24:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Simplify bcf_hdr_parse()

Use a do ... while loop to allow the header parser to restart when if
finds a malformed line.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/72a7c2ae420906ea3b438d2e05c1bcf2cc726f33">72a7c2ae</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-05-07T22:25:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Trivial SAM header sanitising.

Although the htslib code checks things like headers starting with @,
nul termination, etc, not all BAM implementations are as friendly.

This code sanitises on input, also fixing samtools/samtools#661 in the
process.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0639ea17969d26e7026f8d46ae274695f11512d5">0639ea17</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-08T09:03:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve sam_hdr_sanitise()

Remove some variables that are no longer needed.
Make it count lines.
Ensure adding '\n' doesn't overflow h->l_text.
Simplify logic for adding the '\n' a bit.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/89ea70ad8385265ec9200f470d3907b18b25b902">89ea70ad</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-05-08T09:53:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">NEWS update. (#529)

* NEWS update.

(Ideally merge on day on release, editing date if required.)

* Update NEWS

Added 'sanitise headers' #509
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6c06833519551eb61d4e5b9aceb2383e21996930">6c068335</a></strong>
<div>
<span>by jenniferliddle</span>
<i>at 2017-05-08T10:07:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Release 1.4.1: summary
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7771288016395493b2da7646006365bea8f70c55">77712880</a></strong>
<div>
<span>by jenniferliddle</span>
<i>at 2017-05-08T10:14:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge version number bump and NEWS file from master
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0cad436b8f009421958f16e3b40d62af2aa411d4">0cad436b</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-09T10:59:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add htslib/hts_log.h to htslib_vars.mk and htslib.mk
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/06642765ea1a55e9a030dc2a2c94ccb3a4aec813">06642765</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-09T15:36:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adjusted log levels for a few messages
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e66ab048d8c2a68a1563b862b720b57ef652a485">e66ab048</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-09T15:37:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make hts_log() preserve errno.

Remove a few places where errno was saved locally that are no longer
needed.  This unwraps a few calls to free(), but while free() might
currently set errno under some conditions, it's fairly unlikely.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3e85cce78e5b90811cf7599d8e46b691fccf785b">3e85cce7</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-10T11:11:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge logging mechanism (PR #499)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a58cd8547526a3be537064639572ff767298326d">a58cd854</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-05-11T09:21:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bug fix to CRAM index creation (reported by Brent Pedersen).

References with exactly one record aligned againts them had the wrong
"span" value in the index.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/499245eea991cad6acfd0eb64408cc178aec114f">499245ee</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-05-15T13:37:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added a PTHREAD_MUTEX_RECURSIVE check.

This was always the intention for the C99 tidyup, but sadly forgotten
about causing compilation errors of thread_pool.c for Centos/RHEL 5
and SUSE/SLES 11 systems.

Fixes samtools/bcftools#610
Fixes samtools/bcftools#611
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/389c4f3bc5c1c3ab17d15493c55fc4554e15f81f">389c4f3b</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-05-20T14:25:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replaced fprintf(stderr, ...) calls with hts_log_<level> calls.
Fixed a few cases of irregular indentation in the process.
Made the logging test script ignore multi-line messages.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/11896602852d35e698e90c836f11160982931a54">11896602</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-05-20T14:25:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replaced fprintf(stderr, ...) calls with hts_log_<level> calls.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/dc45f188e5c0bd296b9087ad6119722ebc48aca4">dc45f188</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-05-20T14:25:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cosmetic improvements to the error messages.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/403353fc8c83e295eab8a29991491ccbb7e2d3f7">403353fc</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-05-20T14:43:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fixed format string errors.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a7df7651731bcf7a3308e26050c11f648de4c7f6">a7df7651</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-05-22T09:08:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix buffer overrun in vcf_format.

Fixes #537

Also "fixed" the parser to prevent this from happening in the first
place, but poorly as there is no way to return an error from
bcf_hdr_register_hrec.

The following minimal VCF triggered this crash. Note "dype".

    ##fileformat=VCFv4.1
    ##INFO=<ID=S,Number=1,dype=String,Description="blah">
    ##INFO=<ID=I,Number=1,Type=Integer,Description="blah">
    ##contig=<ID=chr1,length=249250621,assembly=b37>
    #CHROM      POS     ID      REF     ALT     QUAL    FILTER  INFO
    chr1        10327   .       T       C       .       .       S=foo;I=12345
    chr1        10327   .       T       C       .       .       S=foo;I=12345
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/40518058617f0ab62236a563a315b4ae7c2a897d">40518058</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-05-23T13:11:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Also added Number= checking for INFO headers.

This (along with the previously checked Type) is declared as mandatory
in VCF for Info.  It is unknown if it should be mandatory for FORMAT,
but the specification implies otherwise so we only validate on INFO.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/15b2f215bc6527d25521766eb42b40914b4e768a">15b2f215</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-05-24T12:54:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove read-past-buffer when printing error message.

Fixes #538
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c4deecd2b2b655a92c79781ff667182a68f1d1c7">c4deecd2</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-05-24T12:54:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Additional argument protection in sam_hdr_write and bcf_hdr_write.

Fixes #541.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/31650a410dd1d5e33b5bcf5b3344dde23ed65327">31650a41</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-24T12:54:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prevent out of bounds read on BAM_CIGAR_STR by extending to 16 bytes

Fixes #546 by extending the array in bam_cigar_opchr() so it can't
get past the end.  Attempting to convert an invalid CIGAR operation
now returns '?'.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d8e5ec4b215ea4645472b3c93180b18bb7fc9e8e">d8e5ec4b</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-24T15:09:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix clang warning

Stop clang from needlessly complaining:
vcf.c:507:39: warning: adding 'int' to a string does not append to the string
by swapping to code that's a bit more obvious as to how it works.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/54bfd95f068eb1f6a57d1537be2c9ee5bd0ded94">54bfd95f</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-25T13:06:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix length calculation in bam_read1 and possible memory leak

Add missing c->l_extranul when checking how much space is needed for
the name, cigar, seq and qual data.  Fixes #547 where the block length
in the bam record was short by a few bytes but the check failed because
the extra NULs after the name were not being counted.  This could cause
a buffer over-run by up to three bytes (but only when l_data was close
to a power of two).

The new version does not use bam_get_aux() to avoid some dubious
pointer arithmetic (especially when d->data has not been allocated).

Also ensure that memory is not leaked and b->m_data is left unchanged
if the realloc on b->data fails for some reason.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f6138671323ca9b23f3617dd849ed137bc62ea60">f6138671</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-05-30T08:09:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Limit subexp and gamma decoders to integer cram_external_type

The decoders currently assume that they are writing to an integer array,
and neither htslib nor htsjdk appear to write anything other than
integers using these codecs.  So it should be reasonable to restrict
them to use with only integer data streams.

Fixes #548 (Stack buffer overflows in cram_gamma_decode and
cram_subexp_decode)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/df519163b66eed0bc1388d6960ee2b437909cfd4">df519163</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-05-30T09:01:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Additional error checking for invalid CRAM ref_id.

Negative reference IDs no longer cause reading from invalid
addresses.  Fixes #549.

It's possible the fix to cram_decode_slice could be
"if (cr->ref_id < 0 || ...", but I have alarm bells ringing regarding
the (broken, but sadly happens) case of unmapped data with CIGAR
strings.  (It shouldn't happen and I don't think *can* in current
CRAM, but it's one of the round-trip issues we want to fix at some
point).  Hence it's safer to check vs -1 and add extra checks to
cram_decode_seq to prevent the memory accesses there.

Validated at -1, -2 and -large.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fe2627f4a79242805aa1f75865fee1ef0fc22579">fe2627f4</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-06-01T16:06:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge Logging improvements 2 (PR #543) into develop

Includes minor update to bring in fix from commit 15b2f21
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8d201be944844b34c658e95d8c84c3b2a6ea8ffd">8d201be9</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-06-04T08:57:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added dependency from knetfile.c to hts_log.h, with some cascading. Added missing dependencies to the Makefile, including the missing definition of htslib_hts_h.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f0fc3eea33477ed45f5f9ffa34f6fea7365513d8">f0fc3eea</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-06-04T08:57:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replaced fprintf(stderr, ...) calls with hts_log_<level> calls.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/03c4be2b6b8a3a13874e1f3b6552d2331ee6c7f3">03c4be2b</a></strong>
<div>
<span>by Anders Kaplan</span>
<i>at 2017-06-04T08:57:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replaced fprintf(stderr, ...) calls with hts_log_<level> calls.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a0fe63f5fb4bc3ccd3230f8516fd25d9d4e3214d">a0fe63f5</a></strong>
<div>
<span>by John Marshall</span>
<i>at 2017-06-05T15:01:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use BGZF* in cram_index_build() instead of zfp*

Check the return values from cram_index_build_multiref() and from
writing to the index file.

The (never publicly exposed) zfio.c routines are now unused in HTSlib
so can be removed.  Fixes part of #552.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5b9361dfbb41b7fde0c8026a4bde42467f03a7f7">5b9361df</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-06-06T13:06:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Removed the (>20 year old!) unnecessary vlen.[ch] code.

This was used by mFILE in the mfprintf function, but this function is
not needed by CRAM support.  (The origin of these functions are from
Staden io_lib, where mfprintf is used as part of the "Experiment File"
format which does use this code.)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/979571bbee17c422f162141a58d9cbab4fcb1325">979571bb</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-06-09T13:38:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow out to be NULL in cram_huffman_decode_char()

Various decoders were updated in commit 1a050b4 to allow this, but
cram_huffman_decode_char() was missed out.  Add a test, as it's possible
to use the huffman codec for data streams that may pass out == NULL (in
particular DS_BA, DS_BB, DS_IN and DS_SC).

Fixes #554 (third case, the others were fixed by f613867).
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e8b1b66a95bc6972b8abb7b14688ee0b618b3e4a">e8b1b66a</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-06-17T22:10:48Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge tag '1.4.1' into debian/unstable

Noteworthy changes in release 1.4.1  (8th May 2017)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This is primarily a security bug fix update.

* Fixed SECURITY issue with buffer overruns with malicious data. (#514).

* S3 support for non Amazon AWS endpoints. (#506)

* Support for variant breakpoints in bcftools. (#516)

* Improved handling of BCF NaNs. (#485)

* Compilation / portability improvements. (#255, #423, #498, #488)

* Miscellaneous bug fixes (#482, #521, #522, #523, #524).

* Sanitise headers (#509)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/68e8b5706f4ca4420921ef5b1a3a4b3fa11fea59">68e8b570</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-06-17T22:16:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/04bb939d7306281768a0f42c6e0da2c00ed79893">04bb939d</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-06-17T22:21:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ab6cc2a1149dd695376880ef84da8dcd1c06fbcc">ab6cc2a1</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-06-18T12:19:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Create symlinks only for arch=indep target when target dir exists
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b8c5413335d426e886068b34c0403639c03bb9dc">b8c54133</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-06-18T12:19:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7fd21f5bfd2767dbc7190bd6ccdef3d57dd30ccd">7fd21f5b</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-06-18T15:32:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adds HTS_OPT_BLOCK_SIZE support for SAM/BAM/CRAM.

Allow the size of the internal hFILE buffer to be changed.  This may
be useful for fine tuning I/O speed on filesystems that don't report
an optimal block size.

It's possible to shrink the buffer, but only if the buffer does not
contain data that would be lost after the resize.  If it does, a
warning will be printed and the buffer will be left at the existing
size.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3c0302d442aafad40e1444cabcb69ef1f557ae50">3c0302d4</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-06-18T16:58:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use htslib_hts_log_h definition from htslib_vars.mk
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f1b95e10fd5b7e579cf0e4f58396e7dfa8f934dc">f1b95e10</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-06-18T17:00:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'pr551' into pr551_merge
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b28aa8d0df7accd8e4ea27b65216cfe4b2d4bc68">b28aa8d0</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-06-18T20:50:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove autom4te.cache during `make distclean`
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/387286125b590ed9f26c2dc4657d10f183bfa301">38728612</a></strong>
<div>
<span>by James Bonfield</span>
<i>at 2017-06-19T14:05:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Updated NEWS file for Solstice release.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fba943d63bd06b5691b720253f65b6cf6673b23f">fba943d6</a></strong>
<div>
<span>by Rob Davies</span>
<i>at 2017-06-20T08:41:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Stop threaded bgzf_read_block from using stale values at EOF

j->block_address is not filled out at EOF, so should
not be used.  Also initialize comp_len to zero, in
sace anything tries to use that.

Fixes samtools/samtools#687 (samtools 1.4.1 bai indices created
with multiple threads can lose reads)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/49fdfbda20acbd73303df3c7fef84f2d972c5f8d">49fdfbda</a></strong>
<div>
<span>by Valeriu Ohan</span>
<i>at 2017-06-20T12:40:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Relase 1.5: Solstice
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/485cda1a9936c7edcc890c6b6dc3a76a90cd1f7b">485cda1a</a></strong>
<div>
<span>by Sascha Steinbiss</span>
<i>at 2017-07-17T16:54:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">fix FTBFS
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/942393ba9a43828c3963dbde066b001dfe96440c">942393ba</a></strong>
<div>
<span>by Graham Inggs</span>
<i>at 2017-07-17T22:54:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix FTBFS on s390x and sparc64
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7b16102386e39e76af0fa1609fc4f2e34e8a5654">7b161023</a></strong>
<div>
<span>by Graham Inggs</span>
<i>at 2017-07-19T08:40:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Dereference symlinks to fix autopkgtest
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ffd8e1101c57a95a87239189c5cb12652a890c71">ffd8e110</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-07-19T19:52:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge tag '1.5' into debian/unstable

Noteworthy changes in release 1.5 (21st June 2017)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Added a new logging API: hts_log(), along with hts_log_error(),
  hts_log_warn() etc. convenience macros.  Thanks go to Anders Kaplan
  for the implementation. (#499, #543, #551)

* Added a new file I/O option "block_size" (HTS_OPT_BLOCK_SIZE) to
  alter the hFILE buffer size.

* Fixed various bugs, including compilation issues samtools/bcftools#610,
  samtools/bcftools#611 and robustness to corrupted data #537, #538,
  #541, #546, #548, #549, #554.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ada885d3985096b9b32b19f087f5db1134f07cfd">ada885d3</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-07-19T19:53:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/78d31d74b46caa950a6d480efb5a3ce49993bf1a">78d31d74</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2017-07-20T10:40:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Added ref to OMICtools
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8ce1126f0fd7d4c8655f9c779440d56c91a1447c">8ce1126f</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2017-07-20T10:41:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'debian/unstable' of ssh://anonscm.debian.org/git/debian-med/htslib into debian/unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/d3b4f02ce5c1166a5f9514a7c93e92a863b67930">d3b4f02c</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-07-20T11:10:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Standards-Version: 4.0.0 (no changes needed)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e335d9b3e2a08a6b5a0331b5106ac348af6652fc">e335d9b3</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-07-20T11:11:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">do not parse d/changelog explicitly
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bee0b75b05f714072610212975225d233338351f">bee0b75b</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-07-20T11:11:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refresh patches
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3ccc8bd1c8512d4c6658b7da86276f856a8847ca">3ccc8bd1</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-07-20T11:11:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hardening=+all
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/765419270800864fd29cea90db233a60cd46aea8">76541927</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-07-20T14:36:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">install htslib*.mk files that are used in bcftools
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/cd809515e566f65f056a19545a294c3b294c096d">cd809515</a></strong>
<div>
<span>by Matthias Klumpp</span>
<i>at 2017-08-04T02:43:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">libhts-dev: Depend on missing liblzma-dev
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ff8e09b106b585a7bdc8053f05e2ee3c85979939">ff8e09b1</a></strong>
<div>
<span>by Matthias Klumpp</span>
<i>at 2017-08-04T02:53:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Wrap and sort
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f45af8db9a5ba46f89d6bf24d5193cf9c4aaeddb">f45af8db</a></strong>
<div>
<span>by Matthias Klumpp</span>
<i>at 2017-08-04T03:04:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Finalize changelog for 1.5-1
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/08915d933ecc1f61c7fed0927a063fdfbf03dee5">08915d93</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-10-20T08:08:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix OMICS entry
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/49237dbfb4150b6e5ec998198eae724f63c378ff">49237dbf</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-11-08T07:23:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Apply patch provided by Graham Inggs <ginggs@debian.org> to fix FTBFS on armel armhf and ppc64el of bcftools
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ca1cd8bfd763516b7bd1e680a2e6f778e33814c6">ca1cd8bf</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-11-08T07:24:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Standards-Version: 4.1.1
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0071935db42062f3fa5246923d7bf32393bad721">0071935d</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-09T22:34:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "Remove symbols"

This reverts deleting the symbols file in commit f711b01663ee28387dd1c704f4cccd9854f03764.
There were changes to the d/changelog and d/rules that I left

This is work needed for properly fixing: Bug #879886
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/517d1b80286a81c20a6408a1e0a020b74f5a3410">517d1b80</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-09T22:34:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">update symbols file names to current SOVERSION name
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0a86645753a8ee4239fe68e6a9720709daf65cff">0a866457</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-09T22:34:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove missing symbols

vcf_parse was a public symbol and they bumped SOVERSION
fai_read wasn't public
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/eaa8b369b6f21ec03d791d1639698ec7b8c0259c">eaa8b369</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-09T22:34:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update symbols file for 1.4.1

A number of symbols were added, the symbols that were removed were not
in the "public api"
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e6cfeed2b374227bd5c0d01d0a12673e5aead7ea">e6cfeed2</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-09T22:34:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove ks_destroy, ks_getuntil2, ks_init

The aren't in the library, but do appear in the public API but as some
form of C macro.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7b50dafabe600c3167658f7aa7ad5c5d9deb1962">7b50dafa</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-09T22:34:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update symbols file for 1.5
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b481c8a9e985d7889c1fa19c9ef9b82b196d3a0a">b481c8a9</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-09T22:34:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update symbols files for 1.5 cram symbols

This removals are problematic.

htslib's upstream considers cram internal, but a few applications
like SeqLib used them. Those projects upstreams included them via
embedding htslib, but Debian unbundled and linked against the system
htslib

See #879886 for discussion
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e73fa42f61d676075ea587735528e1a30e1c28e8">e73fa42f</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-09T22:36:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update changelog with work on symbols file
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2823ef83c80be8949a5a8101f5cdcd36696d5cc6">2823ef83</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-11-10T11:37:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Import Debian changes 1.5-2

htslib (1.5-2) unstable; urgency=medium

  * Apply patch provided by Graham Inggs <ginggs@debian.org> to fix FTBFS
    on armel armhf and ppc64el of bcftools
    Closes: #877670
  * Standards-Version: 4.1.1
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6940ebf30f2c8ff36598a93a63944eea8a30ff9e">6940ebf3</a></strong>
<div>
<span>by Mattia Rizzolo</span>
<i>at 2017-11-10T11:39:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge tag 'debian/1.5-2' into debian/unstable

Debian release 1.5-2
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5540e882d8b5ab1674f76204da36162f9336b179">5540e882</a></strong>
<div>
<span>by Graham Inggs</span>
<i>at 2017-11-10T12:18:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update 877670.patch as it was applied upstream
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/64747721e43e002be88df6d9c00a1b2268f94eb0">64747721</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-10T18:35:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Indicate closes Bug 879886
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7d3f63edcd3de76e0bb33bfbc8a23b72642ce0c8">7d3f63ed</a></strong>
<div>
<span>by Diane Trout</span>
<i>at 2017-11-10T19:59:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">release to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/020aa907e709125f31734c70687ba70c8cb3e98a">020aa907</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-11-20T21:42:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix build on i386
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fe81062d4bf05530a28022dfdf45ed12554b55d9">fe81062d</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-11-20T21:42:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/1bfbb49bae67d8f0ba24fa082bc1b08bdc64db8c">1bfbb49b</a></strong>
<div>
<span>by Graham Inggs</span>
<i>at 2017-11-21T09:54:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Extend i386 fix to hurd and kfreebsd
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/092b0c94713e976f735c8036ac1e5b2bac33ae85">092b0c94</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-10T07:23:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix FTCBFS: Let dh_auto_configure pass --host to ./configure
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5e812e2365d1048418164f7e729456587c073642">5e812e23</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-10T07:41:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Procide cram headers in separate package libhts-private-dev.install
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6863c0834282f3ece2143fe6b1c1f45eb1738b25">6863c083</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-10T07:44:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Deactivate fix_pkg-config.patch
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6fd23217eb75c97b0398fe8371833cef0b6f5112">6fd23217</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-10T07:46:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Close according bug
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4ff741ab22f55aee15a4afb105e777e5eea44e10">4ff741ab</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-10T07:52:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add versioned breaks
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/030a92f78dc7f703a604c3bf51ff7e7b91ea30f6">030a92f7</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-10T08:00:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Standards-Version: 4.1.2
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/64f8109adf726b2412153b5e7cab7f5b31823644">64f8109a</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-10T08:19:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Test is using private headers
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3a01f3481dd6a50a8b24b9726e671405e8248510">3a01f348</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-10T08:40:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5fedaeab7241efc00f5d814ebb67f884d1c62e38">5fedaeab</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T12:40:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Do not install htslib*.mk fragments
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/30646ba4c2e21afc34480c795f325500c4ae90a1">30646ba4</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T12:58:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable after verifying that bcftools does not need these htslib*.mk fragments
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/29f04454e9020337e382f37b6ec90e65a04ad8fa">29f04454</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:15:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Start using default Debian Med repository layout
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a7cd55f9ac9547247c576431fe1d235615a5ddc3">a7cd55f9</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:15:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version 1.5</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/05e80dfe536716bb583caa65c8c3cc31cc47fcd3">05e80dfe</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:16:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update upstream source from tag 'upstream/1.5'

Update to upstream version '1.5'
with Debian dir 9e9526211f346df38aadf27fc7e6501e9cdda14e</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a2ccfa863fe1b0232bada216d582919fa1491b59">a2ccfa86</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:17:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Switch to default Debian Med repository layout
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0b1efffb5e9c447681992014800392e378e67a5f">0b1efffb</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:18:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version 1.6</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/57b25277979c5ca6b38863d0f51e5222832a50b2">57b25277</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:18:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update upstream source from tag 'upstream/1.6'

Update to upstream version '1.6'
with Debian dir c44c4d262d49c67ceb10a485df8636b06c710141</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0876f84b39ae6fb80ec38f9091fbf1f58a2c97ee">0876f84b</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:19:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/86a38d103174bc569b0d47f34afce1cc0e36a425">86a38d10</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:24:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove debian/patches/literal_version.patch since upstream stops running make to get the version number
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/02927ed5b9a0ab06e54e17ac0c98efe0c800583a">02927ed5</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:25:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refresh patches
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ca55c40f2a3154004d6e55eac4bdc2cdffa413b3">ca55c40f</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:48:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update symbols file
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/9b683f1f9752dff1847a7b021ef3e3234887e300">9b683f1f</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T13:58:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to experimental
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/47bccf55b88b697bb176e520fbd0796c00e19260">47bccf55</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-11T16:43:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix version of new symbols
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f2767224bfbb75f3ed095db403412094f7735787">f2767224</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-14T13:23:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove links that were provided to enable build of previous versions of bcftools but are not needed any more
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/73f4b47b7fe39cf0decc46b22a8b87c7cb3373f2">73f4b47b</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-14T13:24:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove tabix dependency which was provided to enable build of a previous version of bcftools
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f696fc20fb9eb619f67b753b7a2b04799e6f274e">f696fc20</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-14T14:36:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make sure no remainings of build time test will occur in test data package
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5d5de29eaf7a87efa9d78b6eff5b5549fb7a27c4">5d5de29e</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2017-12-14T14:44:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add missing override, upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b839a102b6b2b819d69b9e71ccf3d518014279b4">b839a102</a></strong>
<div>
<span>by Graham Inggs</span>
<i>at 2017-12-20T14:18:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ship a copy of cram headers in htslib-test instead of using symlinks
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/fb82f631a80a7db8ae4f74b82359e3255591f5c6">fb82f631</a></strong>
<div>
<span>by Graham Inggs</span>
<i>at 2017-12-20T14:53:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix autopkgtest on i386 with GCC 7
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/6886c3acb3395f088e25a53dfe7fdbbf14a6131b">6886c3ac</a></strong>
<div>
<span>by Graham Inggs</span>
<i>at 2017-12-20T14:54:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prepare for upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/c722ac7c8ee79441fd8798dcfae4f797a49b1c02">c722ac7c</a></strong>
<div>
<span>by Graham Inggs</span>
<i>at 2017-12-21T15:10:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ship new files win/rand.c and win/rand.h, upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0b8016874bde5738e99a8259f0731333bf452df6">0b801687</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2018-02-12T17:58:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version 1.7</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f24ec88d0986b14cdcfde2039d5ace2b39eeb664">f24ec88d</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2018-02-12T17:58:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update upstream source from tag 'upstream/1.7'

Update to upstream version '1.7'
with Debian dir 097ef2f34f7037d087319628240fa195f51e3b66</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bea984e74fbc9e655315fad149602ecf13f097d0">bea984e7</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2018-02-12T18:13:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adjusting to new 1.7 upstream version.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ede72ab70551f396c3ae143be79d83a652ed7e17">ede72ab7</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-02-14T08:48:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Document how to test the package
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/0eb2a7cdd496b78c5f560995073e96375a961e2a">0eb2a7cd</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-02-14T12:13:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update symbols file
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/60702c2523a31f6ae27dc88174332963c59acb55">60702c25</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-02-14T12:16:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/753ec1d6b242ef5c8268739dc438025b7541959f">753ec1d6</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-04-27T15:16:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version 1.8</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/4d1f4ec97825ec7370d2d633fc96037f6ffec2dc">4d1f4ec9</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-04-27T15:16:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update upstream source from tag 'upstream/1.8'

Update to upstream version '1.8'
with Debian dir fd77806197dae2253f07cb0fa5b061574f6f52e7</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/b4c09acaba632a8e35d15f799460227788bce844">b4c09aca</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-04-27T15:16:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/7ca5391a9214c81055e5f82e12c04dccc755d41b">7ca5391a</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-04-27T15:16:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Point Vcs fields to salsa.debian.org
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/603fe868d9b2e7735a36011dcdbbe3b260aa097c">603fe868</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-04-27T15:16:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Standards-Version: 4.1.4
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/95fc615f66ba7acdb92fa1b8ee1388d9e26d755c">95fc615f</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-04-27T15:16:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">debhelper 11
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3a89a18e8f45a3dc054d2d8cc790ddf078840915">3a89a18e</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-04-27T15:18:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update patches
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/169f79efc7ae944bf80f848b0da377adf9bbc32c">169f79ef</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-04-27T15:25:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">version 1.8 drops symbol cram_nop_decode_reset without bumping soversion
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/8aaefae6089e0b5fd6ce0c73961a86e409b39550">8aaefae6</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-04-27T15:30:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">version 1.8 drops symbol cram_nop_decode_reset without bumping soversion
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3ca6d381c6f4b5f37031d24f11f64d6a94c6c804">3ca6d381</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-05-03T09:40:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix symbols file.
    Note: version 1.8 drops symbol cram_nop_decode_reset without bumping
    soversion but this should be no issue according to upstream
    (https://github.com/samtools/htslib/issues/695)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/f2a8dc195033bb066d779d7a6b645e20e22e4763">f2a8dc19</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-05-03T09:55:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove deactivated patch
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3c62e7eb2a2e5d5feeec2f9e709364a1cb55ba5c">3c62e7eb</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-05-03T09:55:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to experimental
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/2e7d4cfc3ee3bbe1f5ff3a3073bd5c99a9b90996">2e7d4cfc</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2018-07-28T17:47:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Preparing for new upstream version 1.9
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ad17dd5ce6919f477f8f967606244c09e9f59161">ad17dd5c</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2018-07-28T17:48:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">New upstream version 1.9</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/faf51b7b558d7d136de19c542750b21eba63ab36">faf51b7b</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2018-07-28T17:51:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update upstream source from tag 'upstream/1.9'

Update to upstream version '1.9'
with Debian dir e5674753a1e14b05e781454e4ba822d6ede0217f
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/a29f7badd7ba74bcb202d92c68ffd3b6892d72d2">a29f7bad</a></strong>
<div>
<span>by Steffen Moeller</span>
<i>at 2018-07-28T18:11:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cleaning up for upload of 1.9
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/e9e50291d016ed2a5e10012dde4df7dc889ef017">e9e50291</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-09-10T19:12:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Depends: zlib1g-dev
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/063f02cf5724139e68a68990d254417d60007863">063f02cf</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-09-10T19:43:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unused lintian overrides
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/5524cabb74b881d9453c582265fd81a6d7a1f399">5524cabb</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-09-10T19:44:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Standards-Version: 4.2.1
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/3b19698034d71c8b835f3272fd6ed34d1d197f59">3b196980</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-09-12T19:25:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/01db69dc17c02b4a056269570b8442d0436b0884">01db69dc</a></strong>
<div>
<span>by Michael R. Crusoe</span>
<i>at 2018-10-14T16:53:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">drop *i386
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/024c3225f88036a80ad0e71575a335f876eae1ca">024c3225</a></strong>
<div>
<span>by Michael R. Crusoe</span>
<i>at 2018-10-15T08:42:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">re-add mipsel
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/ec847be4a99540a1e6180e3aa7b770413311e786">ec847be4</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-12-02T06:54:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add Breaks: python-pysam (<< 0.15~), python3-pysam (<< 0.15~)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/47eee749bf3f26002b56a26681ad93a895270d13">47eee749</a></strong>
<div>
<span>by Andreas Tille</span>
<i>at 2018-12-02T07:00:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upload to unstable
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/bc33ca5af9a047ad3e27022953cccedbfcd912ef">bc33ca5a</a></strong>
<div>
<span>by Michael R. Crusoe</span>
<i>at 2018-12-05T04:46:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add libdeflate for DEFLATE based (de)compression and its crc32 implementation.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/81e1ecba421cf8144072fc212f8efa5b97844a0a">81e1ecba</a></strong>
<div>
<span>by Michael R. Crusoe</span>
<i>at 2018-12-05T04:56:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Re-add mipsel to tabix & libhts-dev as well. (Closes: #915404)
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/147dd8065ebf3de7d68827ce34b14c84f5904bad">147dd806</a></strong>
<div>
<span>by Michael R. Crusoe</span>
<i>at 2018-12-06T06:59:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Partial Revert "Add libdeflate for DEFLATE based (de)compression and its crc32 implementation."

This reverts commit bc33ca5af9a047ad3e27022953cccedbfcd912ef.
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/med-team/htslib/commit/103be52531bf6c4303e463ecfff0d5a201f6708c">103be525</a></strong>
<div>
<span>by Michael R. Crusoe</span>
<i>at 2018-12-11T02:13:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Try dropping to gcc-7 on i386*
</pre>
</li>
</ul>
<h4>10 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#24139dae656713ba861751fb2c2ac38839349a7a">
<span class="deleted-file">

.gitattributes
</span>
</a>
</li>
<li class="file-stats">
<a href="#a5cc2925ca8258af241be7e5b0381edf30266302">
<span class="deleted-file">

.gitignore
</span>
</a>
</li>
<li class="file-stats">
<a href="#dea01dd89a3b602828e630677fde5d77c06441c8">
<span class="deleted-file">

.travis.yml
</span>
</a>
</li>
<li class="file-stats">
<a href="#c335a27a082cc8d17dd36dc0eda3086cb0c9baaa">
INSTALL
</a>
</li>
<li class="file-stats">
<a href="#0398ccd0f49298b10a3d76a47800d2ebecd49859">
LICENSE
</a>
</li>
<li class="file-stats">
<a href="#836efb6e25a091dcb4ff8e1dbb2f0be6a5cbf14c">
Makefile
</a>
</li>
<li class="file-stats">
<a href="#9f621eb5fd3bcb2fa5c7bd228c9b1ad42edc46c8">
<span class="new-file">
+
NEWS
</span>
</a>
</li>
<li class="file-stats">
<a href="#8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d">
<span class="deleted-file">

README.md
</span>
</a>
</li>
<li class="file-stats">
<a href="#bdb455f32b320a8835a445259e0c8d9f6a687368">
<span class="new-file">
+
bcf_sr_sort.c
</span>
</a>
</li>
<li class="file-stats">
<a href="#051d5cd23d91cb2bfdf44ee94a573ebeae1a1ae0">
<span class="new-file">
+
bcf_sr_sort.h
</span>
</a>
</li>
</ul>
<h5>The diff was not included because it is too large.</h5>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #777777;">

<br>
<a href="https://salsa.debian.org/med-team/htslib/compare/0141e47ab9ca92cd2aeb6d573440d689bbfdf327...103be52531bf6c4303e463ecfff0d5a201f6708c">View it on GitLab</a>.
<br>
You're receiving this email because of your account on salsa.debian.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.

</p>
</div>
</body>
</html>