1d677ef02ee511f17c526869d9d058158771f6dc jcasper Fri Apr 15 17:15:05 2022 -0700 Enforcing non-negative values for hicDistanceMin and hicDistanceMax, refs #29280 diff --git src/hg/lib/hicUi.c src/hg/lib/hicUi.c index 1ff21ad..8eabb72 100644 --- src/hg/lib/hicUi.c +++ src/hg/lib/hicUi.c @@ -313,46 +313,52 @@ printf("
\n", i); printf("
%s
", htmlEncode(trackMeta->attributes[i+1])); printf("
\n"); safef(scriptline, sizeof(scriptline), "$('label.trackUiHicAttrToggle%d').click(function() {$(this).children('img').toggleClass('open'); $('div.hicAttr%d').toggle();});", i, i); jsInline(scriptline); } printf("\n"); printf("

For questions concerning the content of a file's metadata header, please contact the file creator.

\n"); } double hicUiMaxInteractionRange(struct cart *cart, struct trackDb *tdb) /* Retrieve the maximum range for an interaction to be drawn. Range is * calculated from the left-most start to the right-most end of the interaction. */ { -double defaultValue = 0; +double defaultValue = 0, returnVal = 0; char *tdbString = trackDbSetting(tdb, HIC_TDB_MAX_DISTANCE); if (!isEmpty(tdbString)) defaultValue = atof(tdbString); -return cartUsualDoubleClosestToHome(cart, tdb, FALSE, HIC_DRAW_MAX_DISTANCE, defaultValue); +returnVal = cartUsualDoubleClosestToHome(cart, tdb, FALSE, HIC_DRAW_MAX_DISTANCE, defaultValue); +if (returnVal < 0) + return 0; +return returnVal; } double hicUiMinInteractionRange(struct cart *cart, struct trackDb *tdb) /* Retrieve the minimum range for an interaction to be drawn. Range is * calculated from the left-most start to the right-most end of the interaction. */ { -double defaultValue = 0; +double defaultValue = 0, returnVal = 0; char *tdbString = trackDbSetting(tdb, HIC_TDB_MIN_DISTANCE); if (!isEmpty(tdbString)) defaultValue = atof(tdbString); -return cartUsualDoubleClosestToHome(cart, tdb, FALSE, HIC_DRAW_MIN_DISTANCE, defaultValue); +returnVal = cartUsualDoubleClosestToHome(cart, tdb, FALSE, HIC_DRAW_MIN_DISTANCE, defaultValue); +if (returnVal < 0) + return 0; +return returnVal; } void hicUiMinMaxRangeMenu(struct cart *cart, struct trackDb *tdb) { char cartVar[2048]; double minRange = hicUiMinInteractionRange(cart, tdb); double maxRange = hicUiMaxInteractionRange(cart, tdb); printf("Filter by interaction distance in bp (0 for no limit): "); safef(cartVar, sizeof(cartVar), "%s.%s", tdb->track, HIC_DRAW_MIN_DISTANCE); printf("minimum "); cgiMakeDoubleVarWithMin(cartVar, minRange, NULL, 0, 0); safef(cartVar, sizeof(cartVar), "%s.%s", tdb->track, HIC_DRAW_MAX_DISTANCE); printf(" maximum "); cgiMakeDoubleVarWithMin(cartVar, maxRange, NULL, 0, 0); }