9266c869b3ff3f5829cd406e11a1315a6822d565 chmalee Thu Dec 4 12:28:41 2025 -0800 When doing an HGVS search that is not from the auto-suggestions, if the term resolves, save it to the search stack so it will show up in the recent searches list, refs #35984 diff --git src/hg/hgSearch/hgSearch.c src/hg/hgSearch/hgSearch.c index 1b62e0e1cb5..f78d366a1f8 100644 --- src/hg/hgSearch/hgSearch.c +++ src/hg/hgSearch/hgSearch.c @@ -562,31 +562,38 @@ if (!sameString(trackName, "chromInfo")) { track = tdbForTrack(db, trackName, &hgFindTdbList); if (!track && startsWith("all_", trackName)) track = tdbForTrack(db, trackName+strlen("all_"), &hgFindTdbList); if (!track) errAbort("no track for table \"%s\" found via a findSpec", trackName); } if (track) { trackName = cloneString(track->track); } trackHubFixName(trackName); puts("Content-type:text/html\n"); puts("<HTML>\n<HEAD>\n"); - printf("<script>window.location.href=\"../cgi-bin/hgTracks?"); + printf("<script type='text/javascript' src='../js/utils.js'></script>\n"); + printf("<script>\n"); + // we are about to redirect back to hgTracks, save the search term onto the + // history stack so it will appear in the dropdown of auto-suggestions before + // redirecting + printf("addRecentSearch(\"%s\", \"%s\", {\"label\": \"%s\", \"value\": \"%s\", \"id\": \"%s\"});\n", + db, userSearch, userSearch, userSearch, newPosBuf); + printf("window.location.href=\"../cgi-bin/hgTracks?"); printf("db=%s", db); printf("&position=%s", newPosBuf); if (!sameString(trackName, "chromInfo")) printf("&%s=pack", trackName); printf("&hgFind.matches=%s", hgp->singlePos->name); if (track && track->parent) { if (tdbIsSuperTrackChild(track)) printf("&%s=show", track->parent->track); else { // tdb is a subtrack of a composite or a view printf("&%s_sel=1&%s_sel=1", trackName, track->parent->track); } }