ecf928caa35cb69cc3b6e8b78789c83091559ed2 braney Fri Oct 18 13:41:32 2019 -0700 allow '.' in FilterType statements diff --git src/hg/hgTracks/bigBedTrack.c src/hg/hgTracks/bigBedTrack.c index 464fcf5..9023ef3 100644 --- src/hg/hgTracks/bigBedTrack.c +++ src/hg/hgTracks/bigBedTrack.c @@ -165,31 +165,36 @@ else { filter->comparisonType = COMPARE_WILDCARD; filter->wildCardString = cloneString(value); } return filter; } struct bigBedFilter *bigBedMakeFilterBy(struct cart *cart, struct bbiFile *bbi, struct trackDb *tdb, char *field, struct slName *choices) /* Add a bigBed filter using a trackDb filterBy statement. */ { struct bigBedFilter *filter; char filterType[4096]; safef(filterType, sizeof filterType, "%s%s", field, FILTER_TYPE_NAME); -char *setting = cartOrTdbString(cart, tdb, filterType, FILTERBY_SINGLE); +char *setting = cartOrTdbString(cart, tdb, filterType, NULL); +if (setting == NULL) + { + safef(filterType, sizeof filterType, "%s.%s", field, FILTER_TYPE_NAME); + setting = cartOrTdbString(cart, tdb, filterType, FILTERBY_SINGLE); + } AllocVar(filter); filter->fieldNum = getFieldNum(bbi, field); if (setting && (sameString(setting, FILTERBY_SINGLE_LIST) || sameString(setting, FILTERBY_MULTIPLE_LIST_OR))) filter->comparisonType = COMPARE_HASH_LIST_OR; else if (setting && sameString(setting, FILTERBY_MULTIPLE_LIST_AND)) filter->comparisonType = COMPARE_HASH_LIST_AND; else filter->comparisonType = COMPARE_HASH; filter->valueHash = newHash(5); filter->numValuesInHash = slCount(choices); for(; choices; choices = choices->next) hashStore(filter->valueHash, choices->name);