X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=samtools.git;a=blobdiff_plain;f=bam_pileup.c;h=3e26f74c0e7dac3012ad5805a99d2311e6d274a6;hp=55e51e27804cfc58fc5576b40ae7ba10416a3e8f;hb=ced7709f121a00d5049d99ee8576037994aab1d1;hpb=016b50ab60e879a0b8f81cb76ce11ea360a03d4a diff --git a/bam_pileup.c b/bam_pileup.c index 55e51e2..3e26f74 100644 --- a/bam_pileup.c +++ b/bam_pileup.c @@ -79,12 +79,12 @@ static inline int resolve_cigar2(bam_pileup1_t *p, uint32_t pos, cstate_t *s) is_head = 1; if (c->n_cigar == 1) { // just one operation, save a loop if (_cop(cigar[0]) == BAM_CMATCH) s->k = 0, s->x = c->pos, s->y = 0; - } else { // find the first match + } else { // find the first match or deletion for (k = 0, s->x = c->pos, s->y = 0; k < c->n_cigar; ++k) { int op = _cop(cigar[k]); int l = _cln(cigar[k]); - if (op == BAM_CMATCH) break; - else if (op == BAM_CDEL || op == BAM_CREF_SKIP) s->x += l; + if (op == BAM_CMATCH || op == BAM_CDEL) break; + else if (op == BAM_CREF_SKIP) s->x += l; else if (op == BAM_CINS || op == BAM_CSOFT_CLIP) s->y += l; } assert(k < c->n_cigar);