4a030195664cbdd1d3c1a4b81b1ed41dbf6d9bc5
angie
  Fri Feb 15 14:02:58 2019 -0800
Prevent hgFind lib (specifically genomePos -> hgPositionsHtml) from opening a web page; instead, pass up results and warning messages to the calling CGI so it can open the page its own way.  refs #22945
hgTracks, hgTables and hgVai used to call findGenomePos{,Web} to resolve positions; hgTables and hgVai had to detect after the fact whether an HTML page had been started (with warnings and/or multiple results).
In fact, hgPositionsHtml called webEnd which could cause conflicts with what the CGI was doing afterwards.
Now, instead of findGenomePos{,Web} there is hgFindSearch which returns hgp and also warning messages, if any, via a dyString parameter.
The calling CGI decides how to open the page if necessary (for hgTracks, it's already open) and displays warnings/multiple results -- or just proceeds as usual with the single position result.

diff --git src/hg/hgTracks/extTools.c src/hg/hgTracks/extTools.c
index 99cb7c5..f28eb44 100644
--- src/hg/hgTracks/extTools.c
+++ src/hg/hgTracks/extTools.c
@@ -190,31 +190,32 @@
 generateCspMetaHeader(stdout);
 printf("</head>\n<body>\n");
 
 if (debug)
     printf("Target URL: %s<p>", et->url);
 
 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);
+if (!parsePosition(pos, &chromName, (uint *)&winStart, (uint *)&winEnd))
+    errAbort("Can't parse position '%s'", pos);
 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, NULL);
 
 char *method = "POST";
 if (et->isHttpGet)
     method = "GET";
 
 printf("<form id=\"redirForm\" method=\"%s\" action=\"%s\">\n", method, url);
 
 struct slPair *slp;