dovecot-2.2: Added json_append_escaped()
dovecot at dovecot.org
dovecot at dovecot.org
Sat Dec 1 06:55:05 EET 2012
details: http://hg.dovecot.org/dovecot-2.2/rev/009287402687
changeset: 15441:009287402687
user: Timo Sirainen <tss at iki.fi>
date: Sat Dec 01 06:54:55 2012 +0200
description:
Added json_append_escaped()
diffstat:
src/lib/json-parser.c | 35 +++++++++++++++++++++++++++++++++++
src/lib/json-parser.h | 3 +++
2 files changed, 38 insertions(+), 0 deletions(-)
diffs (53 lines):
diff -r 9cab24687819 -r 009287402687 src/lib/json-parser.c
--- 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;
+ }
+ }
+}
diff -r 9cab24687819 -r 009287402687 src/lib/json-parser.h
--- 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
More information about the dovecot-cvs
mailing list