52cee2eff9e953d4584a415b8a9b84bd2326d3cd braney Tue Aug 18 11:14:37 2026 -0700 hgTables: encode track menu and schema text consistently, refs #38123 diff --git src/hg/hgTables/mainPage.c src/hg/hgTables/mainPage.c index 840f1925b7d..d281ec61132 100644 --- src/hg/hgTables/mainPage.c +++ src/hg/hgTables/mainPage.c @@ -80,33 +80,34 @@ /* If the saved selection is a QuickLift group, fall back to a visible default * since QuickLift groups are filtered from the dropdown below. */ if (selGroup != NULL && startsWith("QuickLift", selGroup->label)) { cartRemove(cart, groupVar); selGroup = findSelectedGroup(groupList, groupVar); } hPrintf("\n", groupVar); hPrintf("\n"); return selGroup; } static void addIfExists(struct hash *hash, struct slName **pList, char *name) /* Add name to tail of list if it exists in hash. */ { if (hashLookup(hash, name)) slNameAddTail(pList, name); } struct slName *getDbListForGenome() /* Get list of selectable databases. */ { @@ -175,31 +176,32 @@ for (track = fullTrackList; track != NULL; track = track->next) { if (allTracks || sameString(selGroup->name, track->grp)) { hPrintf(" ", track->shortLabel); + // shortLabel comes from trackDb, which a track hub controls + hPrintf(">%s", htmlEncode(track->shortLabel)); } } if (selTrackIsDisabled) selTrack = firstEnabled; hPrintf("\n"); } hPrintf("\n"); return selTrack; } char *unsplitTableName(char *table) /* Convert chr*_name to name */ { if (startsWith("chr", table)) {