]> git.donarmstrong.com Git - samtools.git/blobdiff - bamtk.c
Release samtools-0.1.3
[samtools.git] / bamtk.c
diff --git a/bamtk.c b/bamtk.c
index 6f0ff999d7124c9e0ed6ad656e16dd418a3ffdc7..67dec9ed14f49ff614fd9fe654092a85cb370229 100644 (file)
--- a/bamtk.c
+++ b/bamtk.c
@@ -3,7 +3,7 @@
 #include "bam.h"
 
 #ifndef PACKAGE_VERSION
-#define PACKAGE_VERSION "0.1.2-17"
+#define PACKAGE_VERSION "0.1.3"
 #endif
 
 int bam_taf2baf(int argc, char *argv[]);
@@ -51,12 +51,21 @@ int bam_view(int argc, char *argv[])
        fp = strcmp(argv[optind], "-")? bam_open(argv[optind], "r") : bam_dopen(fileno(stdin), "r");
        assert(fp);
        header = bam_header_read(fp);
+       if (header == 0) {
+               fprintf(stderr, "[bam_view] fail to read the BAM header. Abort!\n");
+               return 1;
+       }
        if (is_bam) {
                assert(fpout = bam_dopen(fileno(stdout), "w"));
                bam_header_write(fpout, header);
        }
        if (is_header || is_headeronly) {
-               int i;
+               int i, c;
+               c = header->text[header->l_text-1];
+               header->text[header->l_text-1] = 0;
+               printf("%s", header->text);
+               if (c) putchar(c);
+               header->text[header->l_text-1] = c;
                for (i = 0; i < header->n_targets; ++i)
                        printf("@SQ\tSN:%s\tLN:%d\n", header->target_name[i], header->target_len[i]);
                if (is_headeronly) {
@@ -77,7 +86,10 @@ int bam_view(int argc, char *argv[])
                for (i = optind + 1; i < argc; ++i) {
                        int tid, beg, end;
                        bam_parse_region(header, argv[i], &tid, &beg, &end);
-                       if (tid < 0) return 0;
+                       if (tid < 0) {
+                               fprintf(stderr, "[bam_view] fail to get the reference name. Abort!\n");
+                               return 1;
+                       }
                        if (is_bam) bam_fetch(fp, idx, tid, beg, end, fpout, view_auxb);
                        else bam_fetch(fp, idx, tid, beg, end, header, view_aux);
                }