dae62f0954272b7d989ca5c6195b3069dd2eaa93
angie
  Mon Aug 3 13:04:45 2020 -0700
Use string comparison instead of pointer equality (cart db is not a constant; symptoms if position search is unsuccessful).  refs #26002

diff --git src/hg/lib/hgFind.c src/hg/lib/hgFind.c
index 70b8e57..8435920 100644
--- src/hg/lib/hgFind.c
+++ src/hg/lib/hgFind.c
@@ -2288,31 +2288,31 @@
 
 boolean searchSpecial(struct cart *cart,
                              char *db, struct hgFindSpec *hfs, char *term, int limitResults,
 			     struct hgPositions *hgp, boolean relativeFlag,
 			     int relStart, int relEnd, boolean *retFound)
 /* Handle searchTypes for which we have special code.  Return true if 
  * we have special code.  Set retFind according to whether we find term. */
 {
 boolean isSpecial = TRUE;
 boolean found = FALSE;
 char *upcTerm = cloneString(term);
 touppers(upcTerm);
 if (sameString(hfs->searchType, "knownGene"))
     {
     char *knownDatabase = hdbDefaultKnownDb(db);
-    char *name = (knownDatabase == db) ? "knownGene" : knownDatabase;
+    char *name = (sameString(knownDatabase, db)) ? "knownGene" : knownDatabase;
     if (gotFullText(db, name))
 	found = findKnownGeneFullText(db, term, hgp, name);
     }
 else if (sameString(hfs->searchType, "refGene"))
     {
     found = findRefGenes(db, hfs, term, hgp);
     }
 else if (isBigFileFind(hfs))
     {
     found = findBigBed(cart, db, hfs, term, hgp);
     }
 else if (sameString(hfs->searchType, "cytoBand"))
     {
     char *chrom;
     int start, end;