7383cf451ce89e19f05467fb08b77cc649bbb6c9
max
  Fri Mar 28 16:53:37 2014 -0700
added bam track support to gbib, refs #11957, refs #12717(fileName2 is a not a great var name... any better idea?)

diff --git src/hg/hgTracks/bamTrack.c src/hg/hgTracks/bamTrack.c
index e144932..26c175b 100644
--- src/hg/hgTracks/bamTrack.c
+++ src/hg/hgTracks/bamTrack.c
@@ -472,51 +472,55 @@
     char *fileName = trackDbSetting(tg->tdb, "bigDataUrl");
     if (fileName == NULL)
 	{
 	if (tg->customPt)
 	    {
 	    errAbort("bamLoadItemsCore: can't find bigDataUrl for custom track %s", tg->track);
 	    }
 	else
 	    {
 	    struct sqlConnection *conn = hAllocConnTrack(database, tg->tdb);
 	    fileName = bamFileNameFromTable(conn, tg->table, chromName);
 	    hFreeConn(&conn);
 	    }
 	}
 
+    char *fileName2 = hReplaceGbdb(fileName);
+
     char posForBam[512];
     safef(posForBam, sizeof(posForBam), "%s:%d-%d", chromName, winStart, winEnd);
     if (!isPaired)
-	bamFetch(fileName, posForBam, addBam, &btd, NULL);
+	bamFetch(fileName2, posForBam, addBam, &btd, NULL);
     else
 	{
 	char *setting = trackDbSettingClosestToHomeOrDefault(tg->tdb, "pairSearchRange", "20000");
 	int pairSearchRange = atoi(setting);
 	if (pairSearchRange > 0)
 	    safef(posForBam, sizeof(posForBam), "%s:%d-%d", chromName,
 		  max(0, winStart-pairSearchRange), winEnd+pairSearchRange);
-	bamFetch(fileName, posForBam, addBamPaired, &btd, NULL);
+	bamFetch(fileName2, posForBam, addBamPaired, &btd, NULL);
 	struct hashEl *hel;
 	struct hashCookie cookie = hashFirst(btd.pairHash);
 	while ((hel = hashNext(&cookie)) != NULL)
 	    {
 	    struct linkedFeatures *lf = hel->val;
 	    if (lf->start < winEnd && lf->end > winStart)
 		slAddHead(&(tg->items), lfsFromLf(lf));
 	    }
 	}
+    freez(&fileName2);
+
     if (tg->visibility != tvDense)
 	{
 	slReverse(&(tg->items));
 	if (isPaired)
 	    slSort(&(tg->items), linkedFeaturesSeriesCmp);
 	else if (sameString(colorMode, BAM_COLOR_MODE_STRAND))
 	    slSort(&(tg->items), linkedFeaturesCmpOri);
 	else if (sameString(colorMode, BAM_COLOR_MODE_GRAY) &&
 		 sameString(grayMode, BAM_GRAY_MODE_ALI_QUAL))
 	    slSort(&(tg->items), linkedFeaturesCmpScore);
 	else
 	    slSort(&(tg->items), linkedFeaturesCmpStart);
 	if (slCount(tg->items) > MAX_ITEMS_FOR_MAPBOX)
 	    {
 	    // flag drawItems to make a mapBox for the whole track