58c24abcdc7e2fe836db993243c6ac15fce457b5 chmalee Wed Mar 4 15:20:15 2026 -0800 Fix more universal species search bugs: hgConvert re-factor meant two hidden form variables were created for the hglft_toDb variable, so remove one of them; make organism comparison case insensitive so 'human' matches 'Human', as genark results are typically lower case; append hubUrl to hgGateway gotohgTracks form so any searched genark hub shows up as a connected hub on hgHubConnect, refs #36535, #36232 diff --git src/hg/hgConvert/hgConvert.c src/hg/hgConvert/hgConvert.c index 44fde6ffc9f..9d3bfd6b5e0 100644 --- src/hg/hgConvert/hgConvert.c +++ src/hg/hgConvert/hgConvert.c @@ -102,31 +102,30 @@ puts("
\n"); /* SOURCE SECTION (read-only) */ puts("
\n"); puts("\n"); hPrintf("
Genome: %s
\n", fromDb->organism); hPrintf("
Assembly: %s
\n", fromDb->description); puts("
\n"); /* DESTINATION SECTION (editable) */ puts("
\n"); puts("\n"); /* Hidden fields for form submission */ hPrintf("\n", HGLFT_TOORG_VAR, toDb->organism); -hPrintf("\n", HGLFT_TODB_VAR, liftOver->toDb); /* Search bar */ char *searchBarId = "toGenomeSearch"; puts("
\n"); puts("Search:\n"); printGenomeSearchBar(searchBarId, "Search for target genome...", NULL, TRUE, NULL, NULL); puts("
\n"); /* Current selection display */ char *selectedLabel = getCurrentGenomeLabel(liftOver->toDb); hPrintf("
%s
\n", selectedLabel); /* Assembly dropdown (updates based on genome selection) */ puts("
\n"); puts("Assembly:\n"); dbList = hGetLiftOverToDatabases(liftOver->fromDb); @@ -282,31 +281,31 @@ { char *toOrg, *toDb; struct liftOverChain *choice = NULL; struct hash *dbRank = hGetDatabaseRank(); double bestScore = -1; struct liftOverChain *this = NULL; /* Get the initial values. */ toOrg = cartCgiUsualString(cart, HGLFT_TOORG_VAR, "0"); toDb = cartCgiUsualString(cart, HGLFT_TODB_VAR, "0"); if (sameWord(toOrg,"0")) toOrg = NULL; if (sameWord(toDb,"0")) toDb = NULL; -if ((toDb != NULL) && !sameOk(toOrg, hOrganism(toDb))) +if ((toDb != NULL) && !sameWordOk(toOrg, hOrganism(toDb))) toDb = NULL; if (toOrg == NULL) toOrg = "Human"; for (this = chainList; this != NULL; this = this->next) { double score = scoreLiftOverChain(this, fromOrg, fromDb, toOrg, toDb, dbRank); if (score > bestScore) { choice = this; bestScore = score; } }