INNER CODE UNIT · C
k
lh3/seqtk · seqtk.c:709
k = kh_get(reg, h, seq->name.s);
if (k == kh_end(h)) continue;
p = &kh_val(h, k);
for (i = 0; i < p->n; ++i) {
int64_t beg = p->a[i<<1], end = p->a[i<<1|1];
if (beg >= seq->seq.l) {
fprintf(stderr, "[subseq] %s: %ld >= %ld\n", seq->name.s, beg, seq->seq.l);
continue;
}
if (end > seq->seq.l) end = seq->seq.l;
if (is_tab == 0) {
printf("%c%s", seq->qual.l == seq->seq.l? '@' : '>', seq->name.s);
if (beg > 0 || (int64_t)p->a[i<<1|1] != INT64_MAX) {
if (end == INT64_MAX) {
if (beg) printf(":%ld", beg+1);
} else printf(":%ld-%ld", beg+1, end);
}
if (seq->comment.l) printf(" %s", seq->comment.s);