Mercurial > dovecot > core-2.2
changeset 15441:009287402687
Added json_append_escaped()
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 01 Dec 2012 06:54:55 +0200 |
parents | 9cab24687819 |
children | cea9a269311a |
files | src/lib/json-parser.c src/lib/json-parser.h |
diffstat | 2 files changed, 38 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/json-parser.c Sat Dec 01 02:41:34 2012 +0200 +++ b/src/lib/json-parser.c Sat Dec 01 06:54:55 2012 +0200 @@ -626,3 +626,38 @@ } return ret; } + +void json_append_escaped(string_t *dest, const char *src) +{ + for (; *src != '\0'; src++) { + switch (*src) { + case '\b': + str_append(dest, "\\b"); + break; + case '\f': + str_append(dest, "\\f"); + break; + case '\n': + str_append(dest, "\\n"); + break; + case '\r': + str_append(dest, "\\r"); + break; + case '\t': + str_append(dest, "\\t"); + break; + case '"': + str_append(dest, "\\\""); + break; + case '\\': + str_append(dest, "\\\\"); + break; + default: + if (*src < 32) + str_printfa(dest, "\\u%04x", *src); + else + str_append_c(dest, *src); + break; + } + } +}
--- a/src/lib/json-parser.h Sat Dec 01 02:41:34 2012 +0200 +++ b/src/lib/json-parser.h Sat Dec 01 06:54:55 2012 +0200 @@ -36,4 +36,7 @@ int json_parse_next_stream(struct json_parser *parser, struct istream **input_r); +/* Append data to already opened JSON string. */ +void json_append_escaped(string_t *dest, const char *src); + #endif