diff --git a/bntseq.c b/bntseq.c index 75e5813..6589434 100644 --- a/bntseq.c +++ b/bntseq.c @@ -358,8 +358,9 @@ int bns_intv2rid(const bntseq_t *bns, int64_t rb, int64_t re) { int is_rev, rid_b, rid_e; if (rb < bns->l_pac && re > bns->l_pac) return -2; + assert(rb <= re); rid_b = bns_pos2rid(bns, bns_depos(bns, rb, &is_rev)); - rid_e = bns_pos2rid(bns, bns_depos(bns, re, &is_rev) - 1); + rid_e = rb < re? bns_pos2rid(bns, bns_depos(bns, re - 1, &is_rev)) : rid_b; return rid_b == rid_e? rid_b : -1; } diff --git a/main.c b/main.c index a680b92..5a2af4c 100644 --- a/main.c +++ b/main.c @@ -4,7 +4,7 @@ #include "utils.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.7.10-r880-dirty" +#define PACKAGE_VERSION "0.7.10-r890-dirty" #endif int bwa_fa2pac(int argc, char *argv[]);