060c9d0ae2bf7b3333d76c15ee3b114c3278f519
braney
  Sat Oct 8 14:29:09 2011 -0700
check trackDb.txt files and hub.txt files more closely in hgHubConnect so errors can be discovered ASAP.  #4679 and others.
diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 759e6f7..5851e92 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -3414,68 +3414,47 @@
 	    {
 	    if (wordCount != 3)
 		errAbort("Expecting 3 words in pix line");
 	    trackLayoutSetPicWidth(&tl, words[2]);
 	    }
 	}
     }
 for (ct = ctList; ct != NULL; ct = ct->next)
     {
     hasCustomTracks = TRUE;
     tg = newCustomTrack(ct);
     slAddHead(pTrackList, tg);
     }
 }
 
-static void addTracksFromTrackHub(int id, char *hubUrl, struct track **pTrackList,
-	struct trackHub **pHubList)
-/* Load up stuff from data hub and append to list. The hubUrl points to
- * a trackDb.ra format file.  */
-{
-/* Load trackDb.ra file and make it into proper trackDb tree */
-char hubName[8];
-safef(hubName, sizeof(hubName), "hub_%d",id);
-struct trackHub *hub = trackHubOpen(hubUrl, hubName);
-if (hub != NULL)
-    {
-    struct trackHubGenome *hubGenome = trackHubFindGenome(hub, database);
-    if (hubGenome != NULL)
-	{
-	struct trackDb *tdbList = trackHubTracksForGenome(hub, hubGenome);
-	tdbList = trackDbLinkUpGenerations(tdbList);
-	tdbList = trackDbPolishAfterLinkup(tdbList, database);
-	trackDbPrioritizeContainerItems(tdbList);
-	addTdbListToTrackList(tdbList, NULL, pTrackList);
-	if (tdbList != NULL)
-	    slAddHead(pHubList, hub);
-	}
-    }
-}
-
 void loadTrackHubs(struct track **pTrackList, struct trackHub **pHubList)
 /* Load up stuff from data hubs and append to lists. */
 {
 struct hubConnectStatus *hub, *hubList =  hubConnectStatusListFromCart(cart);
 for (hub = hubList; hub != NULL; hub = hub->next)
     {
     if (isEmpty(hub->errorMessage))
 	{
 
         /* error catching in so it won't just abort  */
         struct errCatch *errCatch = errCatchNew();
         if (errCatchStart(errCatch))
-	    addTracksFromTrackHub(hub->id, hub->hubUrl, pTrackList, pHubList);
+	    {
+	    struct trackDb *tdbList = trackHubAddTracks(hub->id, 
+		hub->hubUrl, database, pHubList);
+	    addTdbListToTrackList(tdbList, NULL, pTrackList);
+	    }
         errCatchEnd(errCatch);
         if (errCatch->gotError)
 	    hubUpdateStatus( errCatch->message->string, hub);
 	else
 	    hubUpdateStatus(NULL, hub);
         errCatchFree(&errCatch);
 	}
     }
 hubConnectStatusFreeList(&hubList);
 }
 
 boolean restrictionEnzymesOk()
 /* Check to see if it's OK to do restriction enzymes. */
 {
 return (hTableExists("hgFixed", "cutters") &&