be4311c07e14feb728abc6425ee606ffaa611a58
markd
  Fri Jan 22 06:46:58 2021 -0800
merge with master

diff --git src/hg/inc/trackDb.h src/hg/inc/trackDb.h
index 39d7e09..9acfd36 100644
--- src/hg/inc/trackDb.h
+++ src/hg/inc/trackDb.h
@@ -348,37 +348,39 @@
 
 /* ----------- End of AutoSQL generated code --------------------- */
 
 struct trackDb *trackDbNew();
 /* Allocate a new trackDb with just very minimal stuff filled in. */
 
 int trackDbCmp(const void *va, const void *vb);
 /* Sort track by priority. */
 
 int trackDbCmpShortLabel(const void *va, const void *vb);
 /* Sort track by shortLabel. */
 
 void trackDbOverridePriority(struct hash *tdHash, char *priorityRa);
 /* Override priority settings using a ra file. */
 
-struct trackDb *trackDbFromRa(char *raFile, char *releaseTag);
+struct trackDb *trackDbFromRa(char *raFile, char *releaseTag, struct dyString *incFiles);
 /* Load track info from ra file into list.  If releaseTag is non-NULL
- * then only load tracks that mesh with release. */
+ * then only load tracks that mesh with release. if incFiles is non-null, 
+ * add included file names to it.*/
 
-struct trackDb *trackDbFromOpenRa(struct lineFile *lf, char *releaseTag);
+struct trackDb *trackDbFromOpenRa(struct lineFile *lf, char *releaseTag, struct dyString *incFiles);
 /* Load track info from ra file already opened as lineFile into list.  If releaseTag is
- * non-NULL then only load tracks that mesh with release. */
+ * non-NULL then only load tracks that mesh with release. If incFiles is not-NULL, put
+ * list of included files in there. */
 
 void trackDbPolish(struct trackDb *bt);
 /* Fill in missing values with defaults. */
 
 void trackDbFieldsFromSettings(struct trackDb *td);
 /* Update trackDb fields from settings hash */
 
 char *trackDbLocalSetting(struct trackDb *tdb, char *name);
 /* Return setting from tdb, but *not* any of it's parents. */
 
 struct hash *trackDbHashSettings(struct trackDb *tdb);
 /* Force trackDb to hash up it's settings.  Usually this is just
  * done on demand. Returns settings hash. */
 
 struct hash *trackDbSettingsFromString(struct trackDb *tdb, char *string);
@@ -715,37 +717,42 @@
  * or a  tab-separated or tagStorm file with a foreign key specified by the "meta" tag.
  */
 
 char *trackDbViewSetting(struct trackDb *tdb, char *name);
 /* Return view setting from tdb, but *not* any of it's parents. */
 
 struct trackDb *lmCloneTdb(struct lm *lm, struct trackDb *tdb, struct trackDb *parent, struct hash *superHash);
 /* clone a single tdb structure.  Will clone its children if it has any */
 
 struct trackDb *lmCloneTdbList(struct lm *lm, struct trackDb *list, struct trackDb *parent, struct hash *superHash);
 /* clone a list of tdb structures. */
 
 struct trackDb *lmCloneSuper(struct lm *lm, struct trackDb *tdb, struct hash *superHash);
 /* clone a super track tdb structure. */
 
-void trackDbHubCloneTdbListToSharedMem(char *trackDbUrl, struct trackDb *list, unsigned long size);
-/* For this hub, Allocate shared memory and clone trackDb list into it. */
+void trackDbHubCloneTdbListToSharedMem(char *trackDbUrl, struct trackDb *list, unsigned long size, char *incFiles);
+/* For this hub, Allocate shared memory and clone trackDb list into it. incFiles has a list of include files that may be null. */
 
 void trackDbCloneTdbListToSharedMem(char *db, char *tdbPathString, struct trackDb *list, unsigned long size);
 /* For this native db, allocate shared memory and clone trackDb list into it. */
 
 struct trackDb *trackDbCache(char *db, char *tdbPathString, time_t time);
 /* Check to see if this db and trackDb table has a cached trackDb. */
 
 struct trackDb *trackDbHubCache(char *trackDbUrl, time_t time);
 /* Check to see if this hub has a cached trackDb. */
 
 boolean trackDbCacheOn();
 /* Check to see if we're caching trackDb contents. */
 
+boolean trackSettingIsFile(char *setting);
+/* Returns TRUE if setting found in trackDb stanza is a file setting that
+ * would benefit from directory $D substitution among other things - looks for
+ * settings that ends in "Url" and a few others. */
+
 char *labelAsFiltered(char *label);
 /* add text to label to indicate filter is active */
 
 char *labelAsFilteredNumber(char *label, unsigned number);
 /* add text to label to indicate filter is active */
 #endif /* TRACKDB_H */