d5d715b018b9ae8a4f75f70a57662d4016158898
max
  Wed Feb 5 09:43:02 2014 -0800
Making hgPcr and hgBlat work in the browserbox. To do this, the gfblat lib needs to be able to split a filename that is actually a URL

diff --git src/jkOwnLib/gfInternal.c src/jkOwnLib/gfInternal.c
index f932e18..7c6ae82 100644
--- src/jkOwnLib/gfInternal.c
+++ src/jkOwnLib/gfInternal.c
@@ -75,31 +75,34 @@
     if (isRc)
 	reverseIntRange(&range->tStart, &range->tEnd, nib->size);
     gfiExpandRange(range, querySize, nib->size, respectFrame, isRc, expansion);
     target = nibLdPart(fileName, nib->f, nib->size, 
     	range->tStart, range->tEnd - range->tStart);
     if (isRc)
 	{
 	reverseComplement(target->dna, target->size);
 	reverseIntRange(&range->tStart, &range->tEnd, nib->size);
 	}
     *retTotalSeqSize = nib->size;
     }
 else
     {
     struct twoBitFile *tbf = NULL;
-    char *tSeqName = strchr(fileName, ':');
+    // split a filename+chrom like "/gbdb/hg19/hg19.2bit:chr1"
+    // (can also be URL like "http://hgdownload.cse.ucsc.edu/gbdb/hg19/hg19.2bit:chr1")
+    // into filename and tSeqName
+    char *tSeqName = strrchr(fileName, ':');
     int tSeqSize = 0;
     if (tSeqName == NULL)
         errAbort("No colon in .2bit response from gfServer");
     *tSeqName++ = 0;
     tbf = hashFindVal(tFileCache, fileName);
     if (tbf == NULL)
         {
 	tbf = twoBitOpen(fileName);
 	hashAdd(tFileCache, fileName, tbf);
 	}
     tSeqSize = twoBitSeqSize(tbf, tSeqName);
     if (isRc)
 	reverseIntRange(&range->tStart, &range->tEnd, tSeqSize);
     gfiExpandRange(range, querySize, tSeqSize, respectFrame, isRc, expansion);
     target = twoBitReadSeqFragLower(tbf, tSeqName, range->tStart, range->tEnd);