f8cbb9d40119d1b7fd52578e08c4148e39e10ce4
max
  Tue May 16 17:19:56 2017 -0700
removing external tools link when on alternate chromosomes, e.g. on hg38, refs #16619

diff --git src/hg/hgTracks/extTools.c src/hg/hgTracks/extTools.c
index 84a5288..2e37162 100644
--- src/hg/hgTracks/extTools.c
+++ src/hg/hgTracks/extTools.c
@@ -14,41 +14,45 @@
 #include "hash.h"
 #include "web.h"
 #include "ra.h"
 #include "hgTracks.h"
 #include "extTools.h"
 #include "hgFind.h"
 #include "obscure.h"
 #include "net.h"
 
 boolean extToolsEnabled()
 /* Return TRUE if we can display the external tools menu. */
 {
 return fileExists("extTools.ra");
 }
 
-void printExtMenuData() 
+void printExtMenuData(char *chromName) 
 /* print the external tools aka "send to" menu entries as a javascript list to stdout */
 {
 if (!extToolsEnabled())
     return;
 struct extTool *extTools = readExtToolRa("extTools.ra");
 struct extTool *et;
 struct dyString *dy = dyStringNew(1024);
 dyStringAppend(dy, "extTools = [\n");
 for(et = extTools; et != NULL; et = et->next)
     {
+    // special case for alternate chroms on hg38, skip the Ensembl links
+    if (chromName!=NULL && startsWith("ensembl", et->tool) && endsWith(chromName, "_alt"))
+        continue;
+
     if (et->dbs!=NULL)
         {
         if (!slNameInList(et->dbs, database))
             continue;
         }
     if (et->notDbs!=NULL)
         {
         if (slNameInList(et->notDbs, database))
             continue;
         }
     char* tool = jsonStringEscape(et->tool);
     char* shortLabel = jsonStringEscape(et->shortLabel);
     char* longLabel = jsonStringEscape(et->longLabel);
     dyStringPrintf(dy, "    ['%s', '%s', '%s', %d]", tool, shortLabel, longLabel, et->maxSize);
     if (et->next)