ebbd241c1fcafa6204bcab73dc66770a3202901d
braney
  Wed Oct 21 15:55:42 2015 -0700
get frames to work with bigMaf #15935

diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c
index c502f21..1f428ab 100644
--- src/hg/lib/trackHub.c
+++ src/hg/lib/trackHub.c
@@ -671,57 +671,49 @@
 if (val == NULL)
     errAbort("Missing required '%s' setting in hub %s genome %s track %s", setting,
     	hub->url, genome->name, tdb->track);
 return val;
 }
 
 static void forbidSetting(struct trackHub *hub, struct trackHubGenome *genome,
     struct trackDb *tdb, char *setting)
 /* Abort if forbidden setting found. */
 {
 if (trackDbSetting(tdb, setting))
     errAbort("Forbidden setting '%s' in hub %s genome %s track %s", setting,
         hub->url, genome->name, tdb->track);
 }
 
-static void expandBigDataUrl(struct trackHub *hub, struct trackHubGenome *genome,
-	struct trackDb *tdb)
-/* Expand bigDataUrls so that no longer relative to genome->trackDbFile */
+static void expandOneUrl(struct hash *settingsHash, char *hubUrl, char *variable)
 {
-struct hashEl *hel = hashLookup(tdb->settingsHash, "bigDataUrl");
+struct hashEl *hel = hashLookup(settingsHash, variable);
 if (hel != NULL)
     {
     char *oldVal = hel->val;
-    hel->val = trackHubRelativeUrl(genome->trackDbFile, oldVal);
+    hel->val = trackHubRelativeUrl(hubUrl, oldVal);
     freeMem(oldVal);
     }
-
-hel = hashLookup(tdb->settingsHash, "summary");
-if (hel != NULL)
-    {
-    char *oldVal = hel->val;
-    hel->val = trackHubRelativeUrl(genome->trackDbFile, oldVal);
-    freeMem(oldVal);
 }
 
-hel = hashLookup(tdb->settingsHash, "searchTrix");
-if (hel != NULL)
+static void expandBigDataUrl(struct trackHub *hub, struct trackHubGenome *genome,
+	struct trackDb *tdb)
+/* Expand bigDataUrls so that no longer relative to genome->trackDbFile */
 {
-    char *oldVal = hel->val;
-    hel->val = trackHubRelativeUrl(genome->trackDbFile, oldVal);
-    freeMem(oldVal);
-    }
+expandOneUrl(tdb->settingsHash, genome->trackDbFile, "bigDataUrl");
+expandOneUrl(tdb->settingsHash, genome->trackDbFile, "frames");
+expandOneUrl(tdb->settingsHash, genome->trackDbFile, "summary");
+expandOneUrl(tdb->settingsHash, genome->trackDbFile, "searchTrix");
 }
 
 struct trackHubGenome *trackHubFindGenome(struct trackHub *hub, char *genomeName)
 /* Return trackHubGenome of given name associated with hub.  Return NULL if no
  * such genome. */
 {
 return hashFindVal(hub->genomeHash, genomeName);
 }
 
 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");