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);
             }
         }