8715d83d38d8bb18adfdd9ce05771b4cede85407
angie
  Fri Dec 5 09:52:07 2014 -0800
Moved some hgTables code that had been copied into a couple differentplaces into a new lib module, cartTrackDb.  hgGenome/import.c has code
that is fairly similar but that also needs to filter out custom tracks
that were generated by hgGenome.

diff --git src/hg/inc/cartTrackDb.h src/hg/inc/cartTrackDb.h
new file mode 100644
index 0000000..6208b80
--- /dev/null
+++ src/hg/inc/cartTrackDb.h
@@ -0,0 +1,20 @@
+/* cartTrackDb - Combine custom, hub & sql trackDb's to get unified groups/tracks/tables */
+
+#include "cart.h"
+#include "trackDb.h"
+#include "grp.h"
+
+void cartTrackDbInit(struct cart *cart, struct trackDb **retFullTrackList,
+                     struct grp **retFullGroupList, boolean useAccessControl);
+/* Get lists of all tracks and of groups that actually have tracks in them.
+ * If useAccessControl, exclude tracks with 'tableBrowser off' nor tables listed
+ * in the table tableAccessControl. */
+
+boolean cartTrackDbIsAccessDenied(char *db, char *table);
+/* Return TRUE if useAccessControl=TRUE was passed to cartTrackDbInit and
+ * if access to table is denied (at least on this host) by 'tableBrowser off'
+ * or by the tableAccessControl table. */
+
+struct slName *cartTrackDbTablesForTrack(char *db, struct trackDb *track, boolean useJoiner);
+/* Return list of all tables associated with track.  If useJoiner, the result can include
+ * non-positional tables that are related to track by all.joiner. */