6412b58f4efb9beba7d01f8cf50f6026d0188436 braney Thu Apr 27 13:31:02 2023 -0700 fix a couple of bugs in squishyPack mode diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index fa37c97..df4d281 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -4742,44 +4742,45 @@ } } } lineFileClose(&lf); return nonEmptySubtracksHash; } static void expandSquishyPackTracks(struct track *trackList) /* Step through track list and duplicated tracks with squishyPackPoint defined */ { struct track *nextTrack = NULL, *track; for (track = trackList; track != NULL; track = nextTrack) { nextTrack = track->next; - if (track->visibility != tvPack) + if ((track->visibility != tvPack) || checkIfWiggling(cart, track)) continue; char *string = cartOrTdbString(cart, track->tdb, "squishyPackPoint", NULL); if (string != NULL) { double squishyPackPoint = atof(string); /* clone the track */ char buffer[strlen(track->track) + strlen("Squinked") + 1]; safef(buffer, sizeof buffer, "%sSquinked", track->track); struct track *squishTrack = CloneVar(track); squishTrack->tdb = CloneVar(track->tdb); + squishTrack->tdb->originalTrack = squishTrack->tdb->track; squishTrack->tdb->track = cloneString(buffer); squishTrack->tdb->next = NULL; squishTrack->visibility = tvSquish; squishTrack->limitedVis = tvSquish; hashAdd(trackHash, squishTrack->tdb->track, squishTrack); struct linkedFeatures *lf = track->items; /* distribute the items based on squishyPackPoint */ track->items = NULL; squishTrack->items = NULL; struct linkedFeatures *nextLf; for(; lf; lf = nextLf) { nextLf = lf->next; if (lf->squishyPackVal >= squishyPackPoint)