3c460f56a582ae4fe383b219f7d0715c7f0092f3 kent Sun Jan 9 10:55:01 2011 -0800 Fixing subtrack sorting problem in composite tracks in track hub. diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c index 24f21eb..f863c3d 100644 --- src/hg/lib/hdb.c +++ src/hg/lib/hdb.c @@ -3366,36 +3366,43 @@ if (loadOneTrackDb(db, where, one->name, &tdbList, loaded)) foundOne = TRUE; } if (!foundOne) errAbort("can not find any trackDb tables for %s, check db.trackDb specification in hg.conf", db); slNameFreeList(&tableList); hashFree(&loaded); /* fill in supertrack fields, if any in settings */ trackDbSuperMarkup(tdbList); trackDbAddTableField(tdbList); return tdbList; } +static boolean trackDataAccessible(char *database, struct trackDb *tdb) +/* Return TRUE if data accessible - meaning either it has a bigDataUrl, or the + * table exists. */ +{ +return trackDbSetting(tdb, "bigDataUrl") != NULL || hTableForTrack(database, tdb->table) != NULL; +} + static void addTrackIfDataAccessible(char *database, struct trackDb *tdb, boolean privateHost, struct trackDb **tdbRetList) /* check if a trackDb entry should be included in display, and if so * add it to the list, otherwise free it */ { -if ((!tdb->private || privateHost) && hTableForTrack(database, tdb->table) != NULL) +if ((!tdb->private || privateHost) && trackDataAccessible(database, tdb)) slAddHead(tdbRetList, tdb); else if (sameWord(tdb->type,"downloadsOnly")) { if (sameString(tdb->table,tdb->track)) tdb->table = NULL; slAddHead(tdbRetList, tdb); } else trackDbFree(&tdb); } #ifdef UNUSED static void inheritFieldsFromParents(struct trackDb *tdb, struct trackDb *parent) /* Inherit undefined fields (outside of settings) from parent. */ {