59dff194de2f867c3a8d3daaacace8d59dc7775b braney Fri Jul 31 12:26:14 2026 -0700 quickLift: match trackDb types without regard to case, so 'type bigbed' is accepted diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c index 49a69f76283..2b030736a15 100644 --- src/hg/lib/trackHub.c +++ src/hg/lib/trackHub.c @@ -1871,50 +1871,52 @@ dyStringPrintf(dy, "superTrack on show\n"); } if (!isVetted(track)) dyStringPrintf(dy, "avoidHandler on\n"); dumpTdbAndChildren(cart, dy, tdb); return dy; } static boolean validateOneTdb(char *db, struct trackDb *tdb, struct trackDb **badList) /* Make sure the tdb is a track type we grok. badList may be NULL to validate * silently (no user-facing complaint about non-liftable types). */ { +// trackDb types are matched without regard to case since that's how the rest of the +// browser reads them (some trackDb stanzas say "bigbed" rather than "bigBed"). if (sameString("cytoBandIdeo", trackHubSkipHubName(tdb->track)) || - !( startsWith("bigBed", tdb->type) || \ - startsWith("bigWig", tdb->type) || \ - startsWith("bigDbSnp", tdb->type) || \ - startsWith("bigGenePred", tdb->type) || \ - startsWith("gvf", tdb->type) || \ - startsWith("genePred", tdb->type) || \ - startsWith("narrowPeak", tdb->type) || \ - startsWith("bigLolly", tdb->type) || \ - sameString("bed", tdb->type) || - startsWith("bed ", tdb->type))) + !( startsWithNoCase("bigBed", tdb->type) || \ + startsWithNoCase("bigWig", tdb->type) || \ + startsWithNoCase("bigDbSnp", tdb->type) || \ + startsWithNoCase("bigGenePred", tdb->type) || \ + startsWithNoCase("gvf", tdb->type) || \ + startsWithNoCase("genePred", tdb->type) || \ + startsWithNoCase("narrowPeak", tdb->type) || \ + startsWithNoCase("bigLolly", tdb->type) || \ + sameWord("bed", tdb->type) || + startsWithNoCase("bed ", tdb->type))) { if (badList != NULL) slAddHead(badList, tdb); return FALSE; } // make sure we have a bigDataUrl -if (startsWith("bigBed", tdb->type) || \ - startsWith("bigWig", tdb->type)) +if (startsWithNoCase("bigBed", tdb->type) || \ + startsWithNoCase("bigWig", tdb->type)) { char *fileName = cloneString(trackDbSetting(tdb, "bigDataUrl")); if (fileName == NULL) { struct sqlConnection *conn = hAllocConnTrack(db, tdb); fileName = bbiNameFromSettingOrTable(tdb, conn, tdb->table); hashAdd(tdb->settingsHash, "bigDataUrl", fileName); hFreeConn(&conn); } } return TRUE; }