ceea30345eb5cd239b8fd0c5b472b939ff2b64ee
braney
  Fri Aug 23 15:18:07 2024 -0700
if hub tracks specify a group that doesn't exist they should go into the
generic hub group, not "other"

diff --git src/hg/inc/trackHub.h src/hg/inc/trackHub.h
index 65ccb65..73775ac 100644
--- src/hg/inc/trackHub.h
+++ src/hg/inc/trackHub.h
@@ -177,30 +177,33 @@
 /* Get a list of dbDb structures for all the tracks in this clade/hub. */
 
 struct slPair *trackHubGetCladeLabels();
 /* Get a list of labels describing the loaded assembly data hubs. */
 
 char *trackHubAssemblyClade(char *genome);
 /* Return the clade/hub_name that contains this genome. */
 
 void trackHubFixName(char *name);
 /* Change all characters other than alphanumeric, dash, and underbar
  * to underbar. */
 
 struct grp *trackHubLoadGroups(char *database);
 /* Load the grp structures for this track hub database. */
 
+char *trackHubGetHubName(char *name);
+/* Get the hub_#_ prefix in a hub name. */
+
 char *trackHubSkipHubName(char *name);
 /* Skip the hub_#_ prefix in a hub name. */
 
 struct dbDb *trackHubDbDbFromAssemblyDb(char *database);
 /* Return a dbDb structure for just this database. */
 
 struct hgPositions;
 void trackHubFindPos(struct cart *cart, char *db, char *term, struct hgPositions *hgp, boolean measureTiming);
 /* Look for term in track hubs.  Update hgp if found */
 
 void trackHubAddDescription(char *trackDbFile, struct trackDb *tdb);
 /* Fetch tdb->track's html description (or nearest ancestor's non-empty description)
  * and store in tdb->html. */
 
 void trackHubAddOneDescription(char *trackDbFile, struct trackDb *tdb);