6412b58f4efb9beba7d01f8cf50f6026d0188436
braney
  Thu Apr 27 13:31:02 2023 -0700
fix a couple of bugs in squishyPack mode

diff --git src/hg/inc/trackDb.h src/hg/inc/trackDb.h
index b7ef667..a5877a1 100644
--- src/hg/inc/trackDb.h
+++ src/hg/inc/trackDb.h
@@ -26,31 +26,31 @@
 
 #define TRACKDB_NUM_COLS 21
 
 // Forward definitions
 struct tdbExtras;
 
 // A structure to keep track of our min and max values if we're a wig 
 struct minMax 
 {
     double min, max;
 };
 
 /* DO NOT CHANGE THE TRACKDB STRUCTURE WITHOUT INCREMENTING THE VERSION NUMBER */
 /* This number is tacked onto the end of cached trackDb entries to make sure we
  * don't use a cached structure that has different contents. */
-#define TRACKDB_VERSION 6
+#define TRACKDB_VERSION 7
 
 struct trackDb
 /* This describes an annotation track.  */
 /* DO NOT CHANGE THE TRACKDB STRUCTURE WITHOUT INCREMENTING THE VERSION NUMBER */
     {
     struct trackDb *next;  /* Next in singly linked list.  Next sibling in tree. */
     char *track; /* Symbolic ID of Track - used in cart. Is tableName in database historically. */
     char *table; /* Symbolic ID of Table - used in database. Same as track usually. */
     char *shortLabel;	/* Short label displayed on left */
     char *type;	/* Track type: bed, psl, genePred, etc. */
     char *longLabel;	/* Long label displayed in middle */
     unsigned char visibility;	/* 0=hide, 1=dense, 2=full, 3=pack, 4=squish */
     float priority;	/* 0-100 - where to position.  0 is top */
     unsigned char colorR;	/* Color red component 0-255 */
     unsigned char colorG;	/* Color green component 0-255 */
@@ -83,30 +83,31 @@
     struct trackDb *subtracks;  // children of composite not supers. NOTE: only in one sl at a time!
     struct slRef *children;     // children of folders (superTracks) only.
                                 // Needed as slRef since these children are on the main trackList
                                 // and can't be in 2 sl's at once
     char *parentName;           // set if this is a supertrack member 
     boolean isShow;             // for supertracks: true if supertrack with pseudo-vis 'show'
     struct hash *overrides;     /* If not NULL, this is an override
                                  * entry.  It contains the names, but not the
                                  * values of the fields and settings that were
                                  * specified in the entry. */
     struct tdbExtras *tdbExtras;// This struct allows storing extra values which may be used
                                 // multiple times within a single cgi. An example is the metadata
                                 // looked up once in the metaDb and used again and again.
     struct hash *isNewFilterHash;    // if a field is specified in the "new" way, the trackDb variable will be in this hash
     char *errMessage;           // if there's an error in the trackDb specification, there will be a message in here
+    char *originalTrack; /* Normally NULL, if populated holds the track name to use to fetch cart variables. */
 /* DO NOT CHANGE THE TRACKDB STRUCTURE WITHOUT INCREMENTING THE VERSION NUMBER */
     };
 
 #define FOLDER_MASK                      0x10
 #define COMPOSITE_MASK                   0x20
 #define MULTI_TRACK_MASK                 0x80
 #define FOLDER_CHILD_MASK                0x01
 #define COMPOSITE_CHILD_MASK             0x02
 #define COMPOSITE_VIEW_MASK              0x04
 #define MULTI_TRACK_CHILD_MASK           0x08
 #define PARENT_MASK                      0xF0
 #define CHILD_MASK                       0x0F
 #define TREETYPE_MASK                    0xFF
 #define PARENT_NODE(nodeType)            ((nodeType) & PARENT_MASK)
 #define CHILD_NODE(nodeType)             ((nodeType) & CHILD_MASK)