95807c7178fd38d52564f06df9fd5b90ceca1d24
braney
Wed Sep 2 11:20:44 2026 -0700
hgTracks, hgc, hgPhyloPlace: small fixes from the v503 Preview II review, refs #38172
hgTracks.c: skipBeyondDelimit returns NULL when the delimiter is absent, and
the caller decremented and printed it without checking. The noYearDbs list
keeps every assembly that reaches it carrying a '(' today, so nothing shows,
but printf used to print "(null)" where htmlEncode now walks off the end.
Fall back to the whole freeze name.
gtexTracks.c: the guard before the in place truncation was two bytes stricter
than the buffer needs, so a description just over the budget printed in full.
Say what the buffer requirement actually is. vcfTrack.c has the same shape a
byte the other way and is already right.
hgPhyloPlace.c: initialize size, as the two sibling call sites do.
cgiMemBlobFind always sets it when it returns a block, so this is for
consistency.
bigBedClick.c: hubEncode was called twice on the same string in one
statement.
diff --git src/hg/hgc/bigBedClick.c src/hg/hgc/bigBedClick.c
index fb4e461e271..3a5bd821609 100644
--- src/hg/hgc/bigBedClick.c
+++ src/hg/hgc/bigBedClick.c
@@ -284,31 +284,32 @@
// skip an optional '#' on the first field name
if (i == 0 && startsWith("#", name))
name = skipBeyondDelimit(name, '#');
if (startsWith("_", name) && !(startsWith("_json", name)) && !(startsWith("json", name)))
detailsTabPrintSpecial(name, val, extraFields);
else if (slNameInList(tblFieldNames, name))
{
userTbl = (struct embeddedTbl *)hashFindVal(fieldsToEmbeddedTbl, name);
userTbl->encodedTbl = val;
printEmbeddedTable(tdb, userTbl, tableLabelsDy);
}
else
{
// the field name and value come from the hub's bigBed when this is a hub track
- printFieldLabelWithId(hubEncode(tdb, name), hubEncode(tdb, name));
+ char *encName = hubEncode(tdb, name);
+ printFieldLabelWithId(encName, encName);
printf("<td>%s</td></tr>\n", hubEncode(tdb, val));
}
printCount++;
}
printf("</table>\n");
dyStringPrintf(tableLabelsDy, "];\n");
jsInline(dyStringCannibalize(&tableLabelsDy));
return printCount;
}
struct slPair *parseDetailsTablUrls(struct trackDb *tdb)
/* Parse detailsUrls setting string into an slPair list of {offset column name, fileOrUrl} */
{
char *detailsUrlsStr = trackDbSetting(tdb, "detailsUrls");
if (!detailsUrlsStr)