6ff14cbe503f6d3b20d61308887dc91a692ec507
braney
  Wed May 28 09:21:47 2025 -0700
fix some problems with quickLift reported by QA refs #35609

diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index fb22cbd0d5e..b7b9fadab39 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -10083,30 +10083,54 @@
     }
 else
     {
     tableName = hTableForTrack(database, tdb->table);
     conn = hAllocConnTrack(database, tdb);
     }
 if (tableName)
     {
     char *date = firstWordInLine(sqlTableUpdate(conn, tableName));
     if (date != NULL)
 	printf("<B>Data last updated at UCSC:&nbsp;</B>%s<BR>\n", date);
     }
 hFreeConn(&conn);
 }
 
+char *getTrackHtml(char *db, char *trackName)
+/* Grab HTML from trackDb in native database for quickLift tracks. */
+{
+char query[4096];
+
+sqlSafef(query, sizeof query,  "tableName = '%s'", trackHubSkipHubName(trackName));
+struct trackDb *loadTrackDb(char *db, char *where);
+struct trackDb *tdb = loadTrackDb(db, query);
+
+char *html = tdb->html;
+if (isEmpty(tdb->html))
+    {
+    char *parent = trackDbSetting(tdb, "parent");
+    char *words[10];
+
+    chopLine(parent,words);
+    sqlSafef(query, sizeof query,  "tableName = '%s'", trackHubSkipHubName(words[0]));
+    struct trackDb *tdb = loadTrackDb(db, query);
+
+    html = tdb->html;
+    }
+return html;
+}
+
 void printBbiUpdateTime(time_t *timep)
 /* for bbi files, print out the timep value */
 {
     printf("<B>Data last updated at UCSC:&nbsp;</B>%s<BR>\n", sqlUnixTimeToDate(timep, FALSE));
 }
 
 static boolean tableDescriptionsExists(struct sqlConnection *conn)
 /* Cache flag for whether tableDescriptions exists in conn, in case we will need to
  * fetch a lot of descriptions from tableDescriptions. */
 {
 static struct hash *hash = NULL;
 if (hash == NULL)
     hash = hashNew(0);
 char *db = sqlGetDatabase(conn);
 int exists =  hashIntValDefault(hash, db, -1);