f5bc011a1d5dd3daa3211c93eead19e8c7f50ce3
braney
  Thu Mar 16 16:53:32 2023 -0700
polishing up squishyPack for release

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 03335ba..309d1ad 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -4733,55 +4733,61 @@
 {
 struct track *nextTrack = NULL, *track;
 for (track = trackList; track != NULL; track = nextTrack)
     {
     nextTrack = track->next;
 
     if (track->visibility != tvPack)
         continue;
 
     char *string = trackDbSetting(track->tdb, "squishyPackPoint");
     if (string != NULL)
         {
         double squishyPackPoint = atof(string);
 
         /* clone the track */
+        char buffer[strlen(track->track) + strlen("Squish") + 1];
+        safef(buffer, sizeof buffer, "%sSquish", track->track);
+
         struct track *squishTrack = CloneVar(track);
         squishTrack->tdb = CloneVar(track->tdb);
+        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)
                 slAddHead(&squishTrack->items, lf);
             else
                 slAddHead(&track->items, lf);
             }
         slReverse(&track->items);
         slReverse(&squishTrack->items);
         
-        /* these should be changed to something more rational. */
-        squishTrack->track = cloneString("knownGeneSquish");
-        squishTrack->shortLabel = cloneString("knownGeneSquish");
-        squishTrack->longLabel = cloneString("knownGeneSquish");
+        squishTrack->track = cloneString(buffer);
+        squishTrack->originalTrack = track->track;
+        squishTrack->shortLabel = cloneString(buffer);
+        squishTrack->longLabel = cloneString(buffer);
 
         /* insert the squished track */
         track->next = squishTrack;
         squishTrack->next = nextTrack;
         }
     }
 }
 
 void makeActiveImage(struct track *trackList, char *psOutput)
 /* Make image and image map. */
 {
 struct track *track;
 MgFont *font = tl.font;
 struct hvGfx *hvg;
 struct tempName pngTn;