ef81498f9cfa24fd4e5e6c7a17da1c2a73332fcf
angie
  Mon Jun 18 15:20:09 2012 -0700
Fixing BAM tag-printing bug reported by Sol: signed 8-bit ints were displayed as unsigned.
diff --git src/lib/bamFile.c src/lib/bamFile.c
index ce15864..fd52631 100644
--- src/lib/bamFile.c
+++ src/lib/bamFile.c
@@ -384,31 +384,31 @@
 }
 
 void bamShowTags(const bam1_t *bam)
 /* Print out tags in HTML: bold key, no type indicator for brevity. */
 {
 // adapted from part of bam.c bam_format1:
 uint8_t *s = bam1_aux(bam);
 while (s < bam->data + bam->data_len)
     {
     uint8_t type, key[2];
     key[0] = s[0]; key[1] = s[1];
     s += 2; type = *s; ++s;
     printf(" <B>%c%c</B>:", key[0], key[1]);
     if (type == 'A') { printf("%c", *s); ++s; }
     else if (type == 'C') { printf("%u", *s); ++s; }
-    else if (type == 'c') { printf("%d", *s); ++s; }
+    else if (type == 'c') { printf("%d", *(int8_t*)s); ++s; }
     else if (type == 'S') { printf("%u", *(uint16_t*)s); s += 2; }
     else if (type == 's') { printf("%d", *(int16_t*)s); s += 2; }
     else if (type == 'I') { printf("%u", *(uint32_t*)s); s += 4; }
     else if (type == 'i') { printf("%d", *(int32_t*)s); s += 4; }
     else if (type == 'f') { printf("%g", *(float*)s); s += 4; }
     else if (type == 'd') { printf("%lg", *(double*)s); s += 8; }
     else if (type == 'Z' || type == 'H')
 	{
 	htmTextOut(stdout, (char *)s);
 	s += strlen((char *)s) + 1;
 	}
     }
 putc('\n', stdout);
 }