]> git.donarmstrong.com Git - samtools.git/commitdiff
* samtools-0.1.3-6 (r244)
authorHeng Li <lh3@live.co.uk>
Sat, 25 Apr 2009 10:49:40 +0000 (10:49 +0000)
committerHeng Li <lh3@live.co.uk>
Sat, 25 Apr 2009 10:49:40 +0000 (10:49 +0000)
 * fixed segfault for unmapped reads

bam_md.c
bamtk.c

index a7d2ab42f525a5a690aa89bab4f0ea56bb610b85..9abff46290f183fa4e6f8fdd3323b7345513a3a8 100644 (file)
--- a/bam_md.c
+++ b/bam_md.c
@@ -70,7 +70,7 @@ void bam_fillmd1(bam1_t *b, char *ref, int is_equal)
 
 int bam_fillmd(int argc, char *argv[])
 {
-       int c, is_equal = 0, tid = -1, ret, len;
+       int c, is_equal = 0, tid = -2, ret, len;
        bamFile fp, fpout = 0;
        bam_header_t *header;
        faidx_t *fai;
@@ -96,12 +96,14 @@ int bam_fillmd(int argc, char *argv[])
 
        b = bam_init1();
        while ((ret = bam_read1(fp, b)) >= 0) {
-               if (tid != b->core.tid) {
-                       free(ref);
-                       ref = fai_fetch(fai, header->target_name[b->core.tid], &len);
-                       tid = b->core.tid;
+               if (b->core.tid >= 0) {
+                       if (tid != b->core.tid) {
+                               free(ref);
+                               ref = fai_fetch(fai, header->target_name[b->core.tid], &len);
+                               tid = b->core.tid;
+                       }
+                       bam_fillmd1(b, ref, is_equal);
                }
-               bam_fillmd1(b, ref, is_equal);
                bam_write1(fpout, b);
        }
        bam_destroy1(b);
diff --git a/bamtk.c b/bamtk.c
index fa256ae3329a1b4c015fb33b2a36259cd862427e..aed8a39dd401fb1ff0d1cd25f7ebda37823f06c1 100644 (file)
--- a/bamtk.c
+++ b/bamtk.c
@@ -3,7 +3,7 @@
 #include "bam.h"
 
 #ifndef PACKAGE_VERSION
-#define PACKAGE_VERSION "0.1.3-5 (r243)"
+#define PACKAGE_VERSION "0.1.3-6 (r244)"
 #endif
 
 int bam_taf2baf(int argc, char *argv[]);
@@ -160,7 +160,7 @@ static int usage()
        fprintf(stderr, "         index       index alignment\n");
        fprintf(stderr, "         fixmate     fix mate information\n");
        fprintf(stderr, "         rmdup       remove PCR duplicates\n");
-       fprintf(stderr, "         glfview     print GLFv2 file\n");
+       fprintf(stderr, "         glfview     print GLFv3 file\n");
        fprintf(stderr, "         flagstat    simple stats\n");
        fprintf(stderr, "         fillmd      fill the MD tag and change identical base to =\n");
        fprintf(stderr, "\n");