1c1634ecde5730e83e599863eb4455d97cf80cd4
chmalee
  Wed Sep 25 09:45:03 2019 -0700
Fixing two bugs with hub searching, one where I forgot to htmlEncode a result and one where I was preventing single click expand of the results tree, refs #23812

diff --git src/hg/hgHubConnect/hgHubConnect.c src/hg/hgHubConnect/hgHubConnect.c
index dc18737..6e87bfb 100644
--- src/hg/hgHubConnect/hgHubConnect.c
+++ src/hg/hgHubConnect/hgHubConnect.c
@@ -1183,31 +1183,31 @@
 dyStringClear(tdbArrayDy);
 dyStringClear(idString);
 }
 
 void printHubOutputStructure(struct hubOutputStructure *hubOut, struct hubEntry *hubInfo)
 /* Convert a hubOutputStructure to a jstree-readable string */
 {
 struct dyString *dy = dyStringNew(0);
 // The leading '#' tells the javascript this is a 'root' node
 dyStringPrintf(dy, "trackData['#_%d'] = [", hubInfo->id);
 if (isNotEmpty(dyStringContents(hubOut->descriptionMatch)))
     {
     dyStringPrintf(dy, "{'id':'%d_descriptionMatchText','parent':'#_%d',"
         "'state':{'opened': true},'text': 'Hub Description: "
         "<span class=\"descriptionMatch\"><em>%s</em></span>'},",
-        hubInfo->id, hubInfo->id, dyStringContents(hubOut->descriptionMatch));
+        hubInfo->id, hubInfo->id, htmlEncode(dyStringContents(hubOut->descriptionMatch)));
     }
 struct genomeOutputStructure *genomeOut = hubOut->genomes;
 struct dyString *genomeDy = dyStringNew(0);
 if (genomeOut != NULL)
     {
     dyStringPrintf(dy, "{'id':'%d_assemblies', 'text':'%d Matching Assembl%s', 'parent':'#_%d', "
         "'children':true, 'li_attr': {'state':{'opened': 'false'}}}];\n",
         hubInfo->id, hubOut->genomeCount, hubOut->genomeCount == 1 ? "y" : "ies", hubInfo->id);
     dyStringPrintf(dy, "trackData['%d_assemblies'] = [", hubInfo->id);
 
     while (genomeOut != NULL)
         {
         char *assemblyName = htmlEncode(dyStringContents(genomeOut->shortLabel));
         char genomeNameId[512];
         safef(genomeNameId, sizeof(genomeNameId), "%d_%s", hubInfo->id, assemblyName);