b0920cbb788560076f4d5007ff134d4d7959d6e3
braney
  Tue Jan 25 12:54:58 2011 -0800
put out BAM tags with htmTextOut so '<' and such are not interpreted as HTML codes #2543
diff --git src/hg/lib/bamFile.c src/hg/lib/bamFile.c
index ad68366..45648f7 100644
--- src/hg/lib/bamFile.c
+++ src/hg/lib/bamFile.c
@@ -519,32 +519,32 @@
     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 == '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')
 	{
-	while (*s) putc(*s++, stdout);
-	++s;
+	htmTextOut(stdout, (char *)s);
+	s += strlen((char *)s) + 1;
 	}
     }
 putc('\n', stdout);
 }
 
 char *bamGetTagString(const bam1_t *bam, char *tag, char *buf, size_t bufSize)
 /* If bam's tags include the given 2-character tag, place the value into 
  * buf (zero-terminated, trunc'd if nec) and return a pointer to buf,
  * or NULL if tag is not present. */
 {
 if (tag == NULL)
     errAbort("NULL tag passed to bamGetTagString");
 if (! (isalpha(tag[0]) && isalnum(tag[1]) && tag[2] == '\0'))
     errAbort("bamGetTagString: invalid tag '%s'", htmlEncode(tag));
 char *val = NULL;