6755fa51ff1f0cb330fc3e5096f2f0ec13814ebc braney Mon Apr 25 15:12:24 2022 -0700 allow '#' in chrom names diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 106bce3..ba6256a 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -420,31 +420,31 @@ if (message != NULL) mapStatusMessage("%s", message); hPrintf(">\n"); } } char *trackUrl(char *mapName, char *chromName) /* Return hgTrackUi url; chromName is optional. */ { char *encodedMapName = cgiEncode(mapName); char buf[2048]; char *hgTrackUi = hTrackUiForTrack(mapName); if(chromName == NULL) safef(buf, sizeof(buf), "%s?%s=%s&db=%s&g=%s", hgTrackUi, cartSessionVarName(), cartSessionId(cart), database, encodedMapName); else - safef(buf, sizeof(buf), "%s?%s=%s&db=%s&c=%s&g=%s", hgTrackUi, cartSessionVarName(), cartSessionId(cart), database, chromName, encodedMapName); + safef(buf, sizeof(buf), "%s?%s=%s&db=%s&c=%s&g=%s", hgTrackUi, cartSessionVarName(), cartSessionId(cart), database, cgiEncode(chromName), encodedMapName); freeMem(encodedMapName); return(cloneString(buf)); } static boolean isCompositeInAggregate(struct track *track) // Check to see if this is a custom composite in aggregate mode. { if (!isCustomComposite(track->tdb)) return FALSE; char *aggregateVal = cartOrTdbString(cart, track->tdb, "aggregate", NULL); if ((aggregateVal == NULL) || sameString(aggregateVal, "none")) return FALSE; struct track *subtrack = NULL;