c46be5cebadbe532ca7f7fc2a5cde930554c7ae7
braney
  Tue May 2 11:20:34 2017 -0700
first check in of hgComposite code.

diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index b74db38..9fcb5f2 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -3715,31 +3715,32 @@
     if (hasProtocol(bigDataUrl))
         return TRUE;
     else
         {
         char *bigDataUrlLocal = hReplaceGbdb(bigDataUrl);
         boolean exists;
         if (hasProtocol(bigDataUrlLocal))
             exists = udcExists(bigDataUrlLocal);
         else
             exists = fileExists(bigDataUrlLocal);
         freeMem(bigDataUrlLocal);
         return exists;
         }
     }
 else
-    return (hTableForTrack(database, tdb->table) != NULL);
+    // we now allow references to native tracks in track hubs
+    return (hTableForTrack(database, trackHubSkipHubName(tdb->table)) != NULL);
 }
 
 static void addTrackIfDataAccessible(char *database, struct trackDb *tdb,
 	       boolean privateHost, struct trackDb **tdbRetList)
 /* check if a trackDb entry should be included in display, and if so
  * add it to the list, otherwise free it */
 {
 if ((!tdb->private || privateHost) && trackDataAccessible(database, tdb))
     slAddHead(tdbRetList, tdb);
 else if (tdbIsDownloadsOnly(tdb))
     {
     // While it would be good to make table NULL, since we should support tracks
     // without tables (composties, etc) and even data tracks without tables (bigWigs).
     // However, some CGIs still need careful bullet-proofing.  I have done so with
     //   hgTrackUi, hgTracks, hgTable and hgGenome