11bc4be74936249529960fb3a532376779debbe5
braney
  Thu Feb 6 11:06:45 2025 -0800
add hgc support for click throughs on quickLifted custom tracks

diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c
index ba7b18863c7..4b5023cfd05 100644
--- src/hg/lib/trackHub.c
+++ src/hg/lib/trackHub.c
@@ -44,30 +44,31 @@
 #include "hgFind.h"
 #include "hubConnect.h"
 #include "trix.h"
 #include "vcf.h"
 #include "vcfUi.h"
 #include "htmshell.h"
 #include "bigBedFind.h"
 #include "customComposite.h"
 #include "interactUi.h"
 #include "bedTabix.h"
 #include "hic.h"
 #include "hui.h"
 #include "chromAlias.h"
 #include "trashDir.h"
 #include "hgConfig.h"
+#include "cartTrackDb.h"
 
 #ifdef USE_HAL
 #include "halBlockViz.h"
 #endif
 
 struct grp *trackHubGrps = NULL;   // global with grps loaded from track hubs
 static struct hash *hubCladeHash;  // mapping of clade name to hub pointer
 static struct hash *hubAssemblyHash; // mapping of assembly name to genome struct
 static struct hash *hubAssemblyUndecoratedHash; // mapping of undecorated assembly name to genome struct
 static struct hash *hubOrgHash;   // mapping from organism name to hub pointer
 static struct trackHub *globalAssemblyHubList; // list of trackHubs in the user's cart
 static struct hash *trackHubHash;
 
 static void tdbListAddHubToGroup(char *hubName, struct trackDb *tdbList)
 /* Prepend hub name to  group name for every tdb. */
@@ -1667,39 +1668,34 @@
                 hashReplace(tdb->settingsHash, "shortLabel", trackDbSetting(tdb, "name"));
                 hashReplace(tdb->settingsHash, "longLabel", trackDbSetting(tdb, "description"));
                 }
 
             struct dyString *dy = trackDbString(tdb);
 
             fprintf(f, "%s\n", dy->string);
             }
         }
     }
 }
 
 char *trackHubBuild(char *db, struct cart *cart, struct dyString *visDy)
 /* Build a track hub using trackDb and the cart. */
 {
-struct trackDb *tdbList = hTrackDb(db);
+struct  trackDb *tdbList;
+struct grp *grpList;
+cartTrackDbInit(cart, &tdbList, &grpList, FALSE);
 
-// add custom tracks
-struct customTrack *ctList, *ct;
-ctList = customTracksParseCart(db, cart, NULL, NULL);
-for (ct = ctList; ct != NULL; ct = ct->next)
-    slAddHead(&tdbList, ct->tdb);
-
-slSort(&tdbList,trackDbCmp);
 char *filename = getHubName(cart, db);
 
 FILE *f = mustOpen(filename, "a");
 chmod(filename, 0666);
 
 walkTree(f, cart, tdbList, visDy);
 fclose(f);
 
 return cloneString(filename);
 }
 
 struct grp *trackHubGetGrps()
 /* Get the groups defined by attached track hubs. */
 {
 return trackHubGrps;