742efb6ff310c75a30cf13088111139cf713b9db
angie
  Tue Feb 23 11:06:52 2016 -0800
Unifying some triplicate code to print an HTTP error 400 response (Bad Request) and exit.

diff --git src/hg/hgApi/hgApi.c src/hg/hgApi/hgApi.c
index 26f086a..57deea7 100644
--- src/hg/hgApi/hgApi.c
+++ src/hg/hgApi/hgApi.c
@@ -19,46 +19,47 @@
 metaDb: return list of values for metaDb parameter
 
 hgt_mdbVal: return metaDb value control - see code for details
 
 tableMetadata: returns an html table with metadata for track parameter
 
 codonToPos: returns genomic position for given codon; parameters: codon, table and name (which is gene name).
 
 codonToPos: returns genomic position for given exon; parameters: exon, table and name (which is gene name).
 */
 
 #include "common.h"
 #include "hdb.h"
 #include "mdb.h"
 #include "cheapcgi.h"
+#include "htmshell.h"
 #include "hPrint.h"
 #include "dystring.h"
 #include "hui.h"
 #include "search.h"
 #include "cv.h"
 #include "api.h"
 
 int main(int argc, char *argv[])
 {
 long enteredMainTime = clock1000();
 struct dyString *output = newDyString(10000);
 
 setUdcCacheDir();
 cgiSpoof(&argc, argv);
-pushWarnHandler(apiWarnAbortHandler);
-pushAbortHandler(apiWarnAbortHandler);
+pushWarnHandler(htmlVaBadRequestAbort);
+pushAbortHandler(htmlVaBadRequestAbort);
 
 char *database = cgiString("db");
 char *cmd = cgiString("cmd");
 char *jsonp = cgiOptionalString("jsonp");
 if (!hDbExists(database))
     errAbort("Invalid database '%s'", database);
 
 if (!strcmp(cmd, "defaultPos"))
     {
     dyStringPrintf(output, "{\"pos\": \"%s\"}", hDefaultPos(database));
     }
 else if (!strcmp(cmd, "metaDb"))
     {
     // Return list of values for given metaDb var
     // e.g. http://genome.ucsc.edu/hgApi?db=hg18&cmd=metaDb&var=cell