c521796a3d530b285cf15f713fac2aa0961c3bcb larrym Mon Jul 18 21:40:47 2011 -0700 add jsonErrPrintf diff --git src/hg/lib/jsHelper.c src/hg/lib/jsHelper.c index 987f2f1..afa079e 100644 --- src/hg/lib/jsHelper.c +++ src/hg/lib/jsHelper.c @@ -526,15 +526,29 @@ indentBuf[i] = 0; if(hashNumEntries(hash)) { struct hashEl *el, *list = hashElListHash(hash); slSort(&list, hashElCmp); // We add START and END comments to facilitate scraping out this variable by javascript. hPrintf("// START %s\n%svar %s = {\n", name, indentBuf, name); for (el = list; el != NULL; el = el->next) { hPrintf("%s\t\"%s\": %s%s\n", indentBuf, el->name, (char *) el->val, el->next == NULL ? "" : ","); } hPrintf("%s};\n// END %s\n", indentBuf, name); hashElFreeList(&list); } } + +void jsonErrPrintf(struct dyString *ds, char *format, ...) +// Printf a json error to a dyString for communicating with ajax code; format is: +// {"error": error message here} +{ +va_list args; +va_start(args, format); +dyStringPrintf(ds, "{\"error\": \""); +struct dyString *buf = newDyString(1000); +dyStringVaPrintf(buf, format, args); +dyStringAppend(ds, javaScriptLiteralEncode(dyStringCannibalize(&buf))); +dyStringPrintf(ds, "\"}"); +va_end(args); +}