4898794edd81be5285ea6e544acbedeaeb31bf78 max Tue Nov 23 08:10:57 2021 -0800 Fixing pointers to README file for license in all source code files. refs #27614 diff --git src/hg/encode/hgEncodeDataVersions/hgEncodeDataVersions.c src/hg/encode/hgEncodeDataVersions/hgEncodeDataVersions.c index d926fa7..d0e602e 100644 --- src/hg/encode/hgEncodeDataVersions/hgEncodeDataVersions.c +++ src/hg/encode/hgEncodeDataVersions/hgEncodeDataVersions.c @@ -1,148 +1,148 @@ /* hgEncodeDataVersions - print ENCODE tracks with data version */ /* Copyright (C) 2011 The Regents of the University of California - * See README in this or parent directory for licensing information. */ + * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #include "common.h" #include "cheapcgi.h" #include "hui.h" #include "trackDb.h" #include "grp.h" #include "hdb.h" #include "hCommon.h" #include "cart.h" #include "web.h" /* Global variables */ struct cart *cart; struct hash *oldCart = NULL; struct trackRef /* reference to trackDb, for constructing lists on top of lists */ { struct trackRef *next; /* Next in list */ struct trackDb *track; /* Underlying trackDb */ }; struct group /* group with list of its tracks */ { struct group *next; /* Next in singly linked list. */ char *name; /* Group name. Connects with trackDb.grp */ char *label; /* Label to display to user */ struct trackRef *tracks; }; int cmpGroupPri(const void *va, const void *vb) /* Compare groups based on priority */ { const struct grp *a = *((struct grp **)va); const struct grp *b = *((struct grp **)vb); return (a->priority - b->priority); } int cmpTrackPri(const void *va, const void *vb) /* Compare tracks based on priority */ { const struct trackRef *a = *((struct trackRef **)va); const struct trackRef *b = *((struct trackRef **)vb); return (a->track->priority - b->track->priority); } struct group *groupTracks(char *db, struct trackDb *tracks) /* Make up groups and assign tracks to groups. */ { struct trackDb *track; struct trackRef *tr; struct group *group, *groups = NULL; struct grp *grp; struct grp *grps = hLoadGrps(db); struct hash *groupHash = newHash(8); /* Sort groups by priority */ slSort(&grps, cmpGroupPri); /* Create hash and list of groups */ for (grp = grps; grp != NULL; grp = grp->next) { AllocVar(group); group->name = cloneString(grp->name); group->label = cloneString(grp->label); slAddTail(&groups, group); hashAdd(groupHash, grp->name, group); } /* Add tracks to group */ for (track = tracks; track != NULL; track = track->next) { AllocVar(tr); tr->track = track; group = hashFindVal(groupHash, track->grp); slAddHead(&group->tracks, tr); } /* order tracks within groups by priority */ for (group = groups; group != NULL; group = group->next) slSort(&group->tracks, cmpTrackPri); hashFree(&groupHash); return groups; } void doMiddle(struct cart *theCart) /* Set up globals and make web page */ { char *db = NULL; char *ignored; struct trackDb *tracks; struct trackRef *tr; struct group *group, *groups = NULL; cart = theCart; cartWebStart(cart, NULL, "ENCODE Track Data Versions (%s)", db); getDbAndGenome(cart, &db, &ignored, NULL); tracks = hTrackDb(db); groups = groupTracks(db, tracks); for (group = groups; group != NULL; group = group->next) { if (group->tracks == NULL || !startsWith("encode", group->name)) continue; hTableStart(); puts("<TR>"); puts("<TH align=LEFT colspan=3 BGCOLOR='#536ED3'>"); printf("<B> %s</B> ", wrapWhiteFont(group->label)); printf(" "); puts("</TH>\n"); puts("</TR>"); for (tr = group->tracks; tr != NULL; tr = tr->next) { char *version = trackDbSetting(tr->track, "dataVersion"); if (version) stripString(version, "ENCODE "); puts("<TR><TD>"); printf(" %s", tr->track->shortLabel); puts("</TD><TD>"); printf(" %s", version ? version : " "); puts("</TD><TD>"); printf(" %s", tr->track->longLabel); puts("</TD></TR>"); } /* printf("\t%s\t%s\t%s\n", version, tr->track->shortLabel, tr->track->longLabel); */ hTableEnd(); puts("<BR>"); } cartWebEnd(); } int main(int argc, char *argv[]) /* Process command line */ { oldCart = hashNew(8); cgiSpoof(&argc, argv); cartEmptyShell(doMiddle, hUserCookie(), NULL, oldCart); return 0; }