15290acda21d8a883abfadbea853913a5740d45d jcasper Fri Oct 23 11:36:47 2015 -0700 Fixed logic bug with oreganno filters, also made case-insensitive, refs #16257, #15957 diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c index 0811269..9b6e316 100644 --- src/hg/hgTracks/simpleTracks.c +++ src/hg/hgTracks/simpleTracks.c @@ -1689,34 +1689,34 @@ char query[256]; struct sqlConnection *conn = hAllocConn(database); sqlSafef(query, sizeof(query), "select * from oregannoAttr where id = '%s' and attribute = 'type'", el->id); attr = oregannoAttrLoadByQuery(conn, query); hFreeConn(&conn); if (attr == NULL) { AllocVar(attr); attr->attrVal = cloneString("NULL"); attr->id = NULL; /* so free will work */ attr->attribute = NULL; } for (cnt = 0; cnt < oregannoTypeSize; cnt++) { - if (!cartVarExists(cart, oregannoTypeString[cnt]) + if ((!cartVarExists(cart, oregannoTypeString[cnt]) || (cartString(cart, oregannoTypeString[cnt]) != NULL - && differentString(cartString(cart, oregannoTypeString[cnt]), "0") - && sameString(oregannoTypeDbValue[cnt], attr->attrVal))) + && differentString(cartString(cart, oregannoTypeString[cnt]), "0"))) + && (cmpWordsWithEmbeddedNumbers(oregannoTypeDbValue[cnt], attr->attrVal))==0) { oregannoAttrFree(&attr); return TRUE; /* include this type */ } } oregannoAttrFree(&attr); return FALSE; } void loadOreganno (struct track *tg) /* loads the oreganno track */ { struct oreganno *list = NULL; struct sqlConnection *conn = hAllocConn(database); struct sqlResult *sr;