e0db353cfefb9bde9cce31d6a2c2d2762dc1de4a
kate
  Wed Sep 12 17:19:14 2018 -0700
IMplement fieldName> expansion in trackDb url setting. refs #22078

diff --git src/hg/hgTracks/extTools.c src/hg/hgTracks/extTools.c
index e8dfffa..99cb7c5 100644
--- src/hg/hgTracks/extTools.c
+++ src/hg/hgTracks/extTools.c
@@ -196,31 +196,31 @@
 char *chromName;
 int winStart, winEnd;
 char *db = cartString(cart, "db");
 char *pos = cartString(cart, "position");
 
 // Try to deal with virt chrom position used by hgTracks.
 if (startsWith("virt:", cartUsualString(cart, "position", "")))
     pos = cartString(cart, "nonVirtPosition");
 
 findGenomePos(db, pos, &chromName, &winStart, &winEnd, cart);
 int len = winEnd-winStart;
 
 char start1[255];
 safef(start1, sizeof(start1), "%d", winStart+1);
 
-char *url = replaceInUrl(et->url, "", cart, db, chromName, winStart, winEnd, NULL, TRUE);
+char *url = replaceInUrl(et->url, "", cart, db, chromName, winStart, winEnd, NULL, TRUE, NULL);
 
 char *method = "POST";
 if (et->isHttpGet)
     method = "GET";
 
 printf("<form id=\"redirForm\" method=\"%s\" action=\"%s\">\n", method, url);
 
 struct slPair *slp;
 
 if (et->maxSize!=0 && len > et->maxSize)
     {
     printf("Sorry, this tool accepts only a sequence with less than %d base pairs<p>\n"
       "Please zoom in some more.<p>\n", et->maxSize);
     return;
     }
@@ -282,31 +282,31 @@
             // Really we shouldn't be making this entire form... pass db as hail-mary
             val = db;
         }
     else if (sameWord(val, "$ncbiGcf"))
         {
         char *gcf = hNcbiGcfId(db);
         if (gcf)
             val = gcf;
         else
             // Really we shouldn't be making this entire form... pass db as hail-mary
             val = db;
         }
     // any remaining $-expression might be one of the general ones
     else if (stringIn("$", val))
         {
-        val = replaceInUrl(val, "", cart, db, chromName, winStart, winEnd, NULL, TRUE);
+        val = replaceInUrl(val, "", cart, db, chromName, winStart, winEnd, NULL, TRUE, NULL);
         }
 
     // output
     if (debug)
         {
         printf("%s: ", slp->name);
         printf("<input name=\"%s\" value=\"%s\"><p>\n", slp->name, val);
         }
     else
         {
         // parameter named submit is a special case
         if (sameWord(slp->name, "submit"))
             {
             submitDone = TRUE;
             printf("<input type=\"submit\" value=\"%s\" style=\"position: absolute; left: -9999px; "