375571ebe2624dcb95cf0907676f966f74108adb
braney
  Tue Sep 10 09:52:06 2019 -0700
allow track hubs to attack to an assembly hub

diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c
index 60c0b6d..f9dae0d 100644
--- src/hg/lib/trackHub.c
+++ src/hg/lib/trackHub.c
@@ -753,33 +753,38 @@
 	struct trackDb *tdb)
 /* Expand bigDataUrls so that no longer relative to genome->trackDbFile */
 {
 expandOneUrl(tdb->settingsHash, genome->trackDbFile, "bigDataUrl");
 expandOneUrl(tdb->settingsHash, genome->trackDbFile, "bigDataIndex");
 expandOneUrl(tdb->settingsHash, genome->trackDbFile, "frames");
 expandOneUrl(tdb->settingsHash, genome->trackDbFile, "summary");
 expandOneUrl(tdb->settingsHash, genome->trackDbFile, "linkDataUrl");
 expandOneUrl(tdb->settingsHash, genome->trackDbFile, "searchTrix");
 expandOneUrl(tdb->settingsHash, genome->trackDbFile, "barChartSampleUrl");
 expandOneUrl(tdb->settingsHash, genome->trackDbFile, "barChartMatrixUrl");
 }
 
 struct trackHubGenome *trackHubFindGenome(struct trackHub *hub, char *genomeName)
 /* Return trackHubGenome of given name associated with hub.  Return NULL if no
- * such genome. */
+ * such genome.  Check genomeName without hub prefix to see if this hub
+ * is attached to an assembly hub.*/
 {
-return hashFindVal(hub->genomeHash, genomeName);
+struct trackHubGenome *ret = hashFindVal(hub->genomeHash, genomeName);
+
+if (ret == NULL)
+    ret = hashFindVal(hub->genomeHash, hubConnectSkipHubPrefix(genomeName));
+return ret;
 }
 
 static void requireBarChartBars(struct trackHub *hub, struct trackHubGenome *genome, struct trackDb *tdb)
 /* Fetch setting(s) or give an error message */
 {
 /* LATER: allow URL for file containing labels and colors */
 requiredSetting(hub, genome, tdb, BAR_CHART_CATEGORY_LABELS);
 }
 
 static void validateOneTrack( struct trackHub *hub, 
     struct trackHubGenome *genome, struct trackDb *tdb)
 /* Validate a track's trackDb entry. */
 {
 /* Check for existence of fields required in all tracks */
 requiredSetting(hub, genome, tdb, "shortLabel");