313531099a6e334521a493a0fa296b1738ee93a7
galt
  Wed Feb 15 15:18:59 2017 -0800
Trying to make sure that js blocks end with a newline, and often a semi-colon before that. This causes trouble for short fragments of js that used to be able to skate by without it. Now that they are joined into larger blocks of js, the proper puncutation is required. refs #18538

diff --git src/hg/lib/jsHelper.c src/hg/lib/jsHelper.c
index b2e42c7..50cf6b1 100644
--- src/hg/lib/jsHelper.c
+++ src/hg/lib/jsHelper.c
@@ -35,31 +35,31 @@
  * performed upon loading a page and print supporting javascript.
  * Currently this just sets the page vertical position if specified on
  * CGI, and includes jsHelper.js.
  * Subsequent calls do nothing, so this can be called many times. */
 {
 if (! jsInited)
     {
     // jsh_pageVertPos trick taken from
     // http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html
     puts("<INPUT TYPE=HIDDEN NAME=\"jsh_pageVertPos\" VALUE=0>");
     int pos = cgiOptionalInt("jsh_pageVertPos", 0);
     if (pos > 0)
 	{
 	char javascript[1024];
 	safef(javascript, sizeof javascript,
-	       "window.onload = function () { window.scrollTo(0, %d); }", pos);
+	       "window.onload = function () { window.scrollTo(0, %d); }\n", pos);
 	jsInline(javascript);
 	}
     jsInited = TRUE;
     jsIncludeFile("jsHelper.js", NULL);
     }
 }
 
 struct dyString *jsOnChangeStart()
 /* Start up an onChange string */
 {
 struct dyString *dy = dyStringNew(1024);
 return dy;
 }
 
 char *jsOnChangeEnd(struct dyString **pDy)
@@ -119,31 +119,31 @@
 /* Make a radio button that also sets tracking variable
  * in javascript. */
 {
 jsMakeTrackingRadioButtonExtraHtml(cgiVar, jsVar, val, selVal, NULL);
 }
 
 void jsMakeTrackingCheckBox(struct cart *cart,
 	char *cgiVar, char *jsVar, boolean usualVal)
 /* Make a check box filling in with existing value and
  * putting a javascript tracking variable on it. */
 {
 char buf[256];
 boolean oldVal = cartUsualBoolean(cart, cgiVar, usualVal);
 char javascript[1024];
 safef(javascript, sizeof javascript,
-    "var %s=%d;", jsVar, oldVal);
+    "var %s=%d;\n", jsVar, oldVal);
 jsInline(javascript);
 hPrintf("<INPUT TYPE=CHECKBOX NAME='%s' ID='%s' VALUE=1", cgiVar, cgiVar);
 if (oldVal)
     hPrintf(" CHECKED");
 safef(javascript, sizeof javascript, "%s=(%s+1)%%2;", jsVar, jsVar);
 jsOnEventById("click", cgiVar, javascript);
 hPrintf(">");
 safef(buf, sizeof(buf), "%s%s", cgiBooleanShadowPrefix(), cgiVar);
 cgiMakeHiddenVar(buf, "0");
 }
 
 void jsTrackedVarCarryOver(struct dyString *dy, char *cgiVar, char *jsVar)
 /* Carry over tracked variable (radio button?) to hidden form. */
 {
 dyStringPrintf(dy, "document.hiddenForm.%s.value=%s; ", cgiVar, jsVar);