e70152e44cc66cc599ff6b699eb8adc07f3e656a
kent
  Sat May 24 21:09:34 2014 -0700
Adding Copyright NNNN Regents of the University of California to all files I believe with reasonable certainty were developed under UCSC employ or as part of Genome Browser copyright assignment.
diff --git src/hg/hgTrackUi/cgapSageUi.c src/hg/hgTrackUi/cgapSageUi.c
index ea55d66..c762b2a 100644
--- src/hg/hgTrackUi/cgapSageUi.c
+++ src/hg/hgTrackUi/cgapSageUi.c
@@ -1,72 +1,75 @@
+/* Copyright (C) 2013 The Regents of the University of California 
+ * See README in this or parent directory for licensing information. */
+
 #include "common.h"
 #include "cheapcgi.h"
 #include "hgTrackUi.h"
 #include "trackDb.h"
 #include "cgapSage/cgapSage.h"
 #include "cgapSage/cgapSageLib.h"
 
 static struct slName *getListFromCgapSageLibs(struct sqlConnection *conn, char *column, boolean returnIds, boolean distinct)
 /* Return [unique] list of tissues sorted alphabetically. */
 {
 struct slName *list = NULL;
 struct dyString *dy = dyStringNew(0);
 char **row;
 struct sqlResult *sr;
 sqlDyStringPrintf(dy, "select ");
 if (distinct)
     dyStringAppend(dy, "distinct ");
 sqlDyStringPrintf(dy, "%s", column);
 if (returnIds)
     dyStringAppend(dy, ",libId");
 sqlDyStringPrintf(dy, " from cgapSageLib order by %s", column);
 sr = sqlGetResult(conn, dy->string);
 while ((row = sqlNextRow(sr)) != NULL)
     {
     char *word = (returnIds) ? row[1] : row[0];
     slNameAddHead(&list, word);
     }
 slReverse(&list);
 sqlFreeResult(&sr);
 dyStringFree(&dy);
 return list;
 }
 
 static void cgapSageDropList(struct slName *choices, struct slName *valList, char *dropName, char *selected)
 /* Make a drop list from the slName list. */
 {
 struct slName *choice;
 char **items;
 char **vals;
 int i;
 int size = slCount(choices);
 AllocArray(items, size + 1);
 items[0] = "All";
 for (choice = choices, i = 1; choice != NULL; choice = choice->next, i++)
     items[i] = choice->name;
 if (valList)
     {
     struct slName *val;
     int vSize = slCount(valList);
     if (size != vSize)
 	errAbort("Number of Lib IDs and Lib Names should be the same but they aren not.");
     AllocArray(vals, size + 1);
     vals[0] = "All";
     for (val = valList, i = 1; val != NULL; val = val->next, i++)
 	vals[i] = val->name;
     cgiMakeDropListWithVals(dropName, items, vals, size + 1, selected);
     }
 else
     cgiMakeDropList(dropName, items, size + 1, selected);
 }
 
 void cgapSageUi(struct trackDb *tdb)
 /* CGAP SAGE UI options. Highlight certain libs/tissues and filter by score. */
 {
 struct sqlConnection *conn = hAllocConn(database);
 struct slName *tissueList = getListFromCgapSageLibs(conn, "tissue", FALSE, TRUE);
 char *tissueHl = cartUsualString(cart, "cgapSage.tissueHl", "All");
 puts("<BR><B>Tissue:</B>");
 cgapSageDropList(tissueList, NULL, "cgapSage.tissueHl", tissueHl);
 hFreeConn(&conn);
 slNameFreeList(&tissueList);
 }