0999158088e0fb3715eb27703c8c4f7123d77144
galt
  Mon Sep 21 16:51:20 2015 -0700
added GNU-C attributes to function declarations in src/inc, src/hg/inc, and some CGIs so that the compiler can catch errors where the parameter list given by the user does not match their format string. These var-args functions are like printf.

diff --git src/hg/hgTables/great.c src/hg/hgTables/great.c
index 8e41c66..f047d87 100644
--- src/hg/hgTables/great.c
+++ src/hg/hgTables/great.c
@@ -161,35 +161,35 @@
 /* has the send to GREAT checkbox been selected? */
 {
 return cartUsualBoolean(cart, "sendToGreat", FALSE);
 }
 
 void doSubmitToGreat(const char *path)
 /* Send a URL to GREAT that it can use to retrieve the results. */
 {
 struct dyString *requestName = getRequestName();
 struct dyString *requestURL = dyStringCreate("http://%s/%s", cgiServerNamePort(), path);
 struct dyString *greatRequest;
 
 // archive server for hg18
 if (sameWord("hg18", database))
   greatRequest = dyStringCreate(
-    "<meta http-equiv='refresh' content='0;url=http://bejerano.stanford.edu/great/public-2.0.2/cgi-bin/greatStart.php?requestURL=%s&requestSpecies=%s&requestName=%s&requestSender=UCSC%20Table%20Browser'>",
+    "<meta http-equiv='refresh' content='0;url=http://bejerano.stanford.edu/great/public-2.0.2/cgi-bin/greatStart.php?requestURL=%s&requestSpecies=%s&requestName=%s&requestSender=UCSC%%20Table%%20Browser'>",
     dyStringContents(requestURL), database, dyStringContents(requestName));
 else
   greatRequest = dyStringCreate(
-    "<meta http-equiv='refresh' content='0;url=http://great.stanford.edu/public/cgi-bin/greatStart.php?requestURL=%s&requestSpecies=%s&requestName=%s&requestSender=UCSC%20Table%20Browser'>",
+    "<meta http-equiv='refresh' content='0;url=http://great.stanford.edu/public/cgi-bin/greatStart.php?requestURL=%s&requestSpecies=%s&requestName=%s&requestSender=UCSC%%20Table%%20Browser'>",
     dyStringContents(requestURL), database, dyStringContents(requestName));
 
 hPrintf("<b>GREAT</b> is processing BED data from \"%s\"...please wait.\n", dyStringContents(requestName));
 hWrites(dyStringContents(greatRequest));
 freeDyString(&greatRequest);
 freeDyString(&requestName);
 freeDyString(&requestURL);
 }
 
 void doGetGreatOutput(void (*dispatch)())
 {
 struct tempName tn;
 int saveStdout;
 FILE *f;