diff --git a/lib/modules/Sql.pmod/sql_result.pike b/lib/modules/Sql.pmod/sql_result.pike index bee46344339c2ff40391980e11487ee57c284c4c..42795852efe0dd7c73a1206bda0a6b83ac66d04a 100644 --- a/lib/modules/Sql.pmod/sql_result.pike +++ b/lib/modules/Sql.pmod/sql_result.pike @@ -1,5 +1,5 @@ /* - * $Id: sql_result.pike,v 1.22 2009/09/09 09:06:41 grubba Exp $ + * $Id: sql_result.pike,v 1.23 2009/09/10 00:01:52 nilsson Exp $ * * Implements the generic result module of the SQL-interface * @@ -117,47 +117,47 @@ class _get_iterator protected void encode_json(String.Buffer res, mixed msg) { if (stringp(msg)) { - res->add("\"" + replace(msg, ([ "\"" : "\\\"", - "\\" : "\\\\", - "\n" : "\\n", - "\b" : "\\b", - "\f" : "\\f", - "\r" : "\\r", - "\t" : "\\t" ])) + "\""); + res->add("\"", replace(msg, ([ "\"" : "\\\"", + "\\" : "\\\\", + "\n" : "\\n", + "\b" : "\\b", + "\f" : "\\f", + "\r" : "\\r", + "\t" : "\\t" ])), "\""); } else if (arrayp(msg)) { - res->add("["); + res->putchar('['); foreach(msg; int i; mixed val) { - if (i) res->add(","); + if (i) res->putchar(','); encode_json(res, val); } - res->add("]"); + res->putchar(']'); } else if (mappingp(msg)) { // NOTE: For reference only, not currently reached. - res->add("{"); + res->putchar('{'); foreach(sort(indices(msg)); int i; string ind) { - if (i) res->add(","); + if (i) res->putchar(','); encode_json(res, ind); - res->add(":"); + res->putchar(':'); encode_json(res, msg[ind]); } - res->add("}"); + res->putchar('}'); } else { res->add((string)msg); } } //! Fetch remaining result as @tt{JSON@}-encoded data. -int|string fetch_json_result() +string fetch_json_result() { if (arrayp(master_res) || !master_res->fetch_json_result) { String.Buffer res = String.Buffer(); - res->add("["); + res->putchar('['); array row; for (int i = 0; row = fetch_row(); i++) { - if(i) res->add(","); + if(i) res->putchar(','); encode_json(res, row); } - res->add("]"); + res->putchar(']'); return string_to_utf8(res->get()); } index = num_rows();