b7e9dd0d463ab03a94586c7fa6bdff6564f1b73b
tdreszer
  Fri Jun 10 13:44:05 2011 -0700
Simple bullet-proofing against tdb->table being empty.
diff --git src/hg/hgText/hgText.c src/hg/hgText/hgText.c
index a71da3e..4e54b2b 100644
--- src/hg/hgText/hgText.c
+++ src/hg/hgText/hgText.c
@@ -574,30 +574,32 @@
 struct trackDb *trackList = hTrackDb(NULL), *t;
 char *value = cartCgiUsualString(cart, varName, NULL);
 int trackCount = slCount(trackList);
 char **trackLabels, **trackNames;
 char *selected = NULL;
 char chrN_track[256];
 char tbl[256];
 int i;
 
 AllocArray(trackLabels, trackCount+1);
 AllocArray(trackNames, trackCount+1);
 trackLabels[0] = "Browser tracks";
 trackNames[0] = "Choose table";
 for (t = trackList, i=1; t != NULL; t = t->next, ++i)
     {
+    if (tdbIsDownloadsOnly(tdb) || tdb->table == NULL)  // Don't bother with downloadsOnly for now
+        continue;
     trackLabels[i] = t->shortLabel;
     safef(chrN_track, sizeof(chrN_track), "%s_%s", hDefaultChrom(),
 	  t->table);
     if (hTableExists(chrN_track))
 	safef(tbl, sizeof(tbl), "%s.chrN_%s", database, t->table);
     else
 	safef(tbl, sizeof(tbl), "%s.%s", database, t->table);
     trackNames[i] = cloneString(tbl);
     if (value != NULL && sameString(value, tbl))
         selected = trackNames[i];
     }
 if (selected == NULL)
     selected = trackNames[0];
 cgiMakeDropListFull(varName, trackLabels, trackNames,
 	trackCount+1, selected, javascript);