X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bam_import.c;fp=bam_import.c;h=3a4a5cdf64611d1aa23e98b703976fc85beda117;hb=9215c0998a15d7ebc82baf78ded2443c55a1bc93;hp=9d463d102bbb254ddf5a5b9bf32b5f216aac2187;hpb=13a7326f9008687ff6eeb76f9eb3233dc8c743a4;p=samtools.git diff --git a/bam_import.c b/bam_import.c index 9d463d1..3a4a5cd 100644 --- a/bam_import.c +++ b/bam_import.c @@ -116,7 +116,7 @@ static bam_header_t *hash2header(const kh_ref_t *hash) bam_header_t *sam_header_read2(const char *fn) { bam_header_t *header; - int c, dret, ret; + int c, dret, ret, error = 0; gzFile fp; kstream_t *ks; kstring_t *str; @@ -135,6 +135,10 @@ bam_header_t *sam_header_read2(const char *fn) ks_getuntil(ks, 0, str, &dret); len = atoi(str->s); k = kh_put(ref, hash, s, &ret); + if (ret == 0) { + fprintf(stderr, "[sam_header_read2] duplicated sequence name: %s\n", s); + error = 1; + } kh_value(hash, k) = (uint64_t)len<<32 | i; if (dret != '\n') while ((c = ks_getc(ks)) != '\n' && c != -1); @@ -143,6 +147,7 @@ bam_header_t *sam_header_read2(const char *fn) gzclose(fp); free(str->s); free(str); fprintf(stderr, "[sam_header_read2] %d sequences loaded.\n", kh_size(hash)); + if (error) return 0; header = hash2header(hash); kh_destroy(ref, hash); return header;