X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bedidx.c;fp=bedidx.c;h=92978318d4ccfbbabeeddd150458245f669062d8;hb=993e30ce486073a7c784d277afd8e168b38dd74e;hp=9b76af74ac71302521a8c01b0a100d8d8e1e904d;hpb=674ffee7adcfc928f5039777180206fdebc5539b;p=samtools.git diff --git a/bedidx.c b/bedidx.c index 9b76af7..9297831 100644 --- a/bedidx.c +++ b/bedidx.c @@ -26,7 +26,7 @@ int *bed_index_core(int n, uint64_t *a, int *n_idx) m = *n_idx = 0; idx = 0; for (i = 0; i < n; ++i) { int beg, end; - beg = a[i]>>32; end = (uint32_t)a[i]; + beg = a[i]>>32 >> LIDX_SHIFT; end = ((uint32_t)a[i]) >> LIDX_SHIFT; if (m < end + 1) { int oldm = m; m = end + 1; @@ -96,8 +96,9 @@ void *bed_read(const char *fn) int dret; kstring_t *str; // read the list - str = calloc(1, sizeof(kstring_t)); fp = strcmp(fn, "-")? gzopen(fn, "r") : gzdopen(fileno(stdin), "r"); + if (fp == 0) return 0; + str = calloc(1, sizeof(kstring_t)); ks = ks_init(fp); while (ks_getuntil(ks, 0, str, &dret) >= 0) { // read the chr name int beg = -1, end = -1;