5ee15559749943e284aed0e62e22e24bbe3523e0 angie Tue Aug 1 10:11:36 2017 -0700 findSelectedTrack needs to return the top-level/composite track if it's given a subtrack name, so the returned track can be compared against top-level tracks in fullTrackList. In hg19 refGene is a top-level track, but in hg38 refGene is a subtrack of refSeqComposite so findSelectedTrack needs to return refSeqComposite. refs #19920. diff --git src/hg/hgTables/hgTables.c src/hg/hgTables/hgTables.c index 38aa368..3974c13 100644 --- src/hg/hgTables/hgTables.c +++ src/hg/hgTables/hgTables.c @@ -795,31 +795,33 @@ /* Find named track that is in group (NULL for any group). * Return NULL if can't find it. */ { struct trackDb *track; if (group != NULL && sameString(group->name, "all")) group = NULL; for (track = trackList; track != NULL; track = track->next) { if (sameString(name, track->track) && (group == NULL || sameString(group->name, track->grp))) return track; if (track->subtracks) { struct trackDb *subtrack = findTrackInGroup(name, track->subtracks, group); if (subtrack != NULL) - return subtrack; + // Return composite track if given a subtrack name (e.g. hg19 refGene track to + // hg38 refSeqComposite, #19920) + return track; } } return NULL; } struct trackDb *findTrack(char *name, struct trackDb *trackList) /* Find track, or return NULL if can't find it. */ { return findTrackInGroup(name, trackList, NULL); } struct trackDb *mustFindTrack(char *name, struct trackDb *trackList) /* Find track or squawk and die. */ { struct trackDb *track = findTrack(name, trackList);