You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by st...@apache.org on 2016/01/19 19:02:02 UTC
[5/5] incubator-mynewt-larva git commit: escape string characters
when encoding...
escape string characters when encoding...
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/commit/4fb9ec50
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/tree/4fb9ec50
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/diff/4fb9ec50
Branch: refs/heads/master
Commit: 4fb9ec506fd010a1dd4b85b7a1abeb56ab990f08
Parents: 7dd823f
Author: Sterling Hughes <st...@apache.org>
Authored: Fri Jan 15 10:12:47 2016 -0800
Committer: Sterling Hughes <st...@apache.org>
Committed: Tue Jan 19 10:01:51 2016 -0800
----------------------------------------------------------------------
libs/json/src/json_encode.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/4fb9ec50/libs/json/src/json_encode.c
----------------------------------------------------------------------
diff --git a/libs/json/src/json_encode.c b/libs/json/src/json_encode.c
index ccaf615..94a877f 100644
--- a/libs/json/src/json_encode.c
+++ b/libs/json/src/json_encode.c
@@ -68,7 +68,24 @@ json_encode_value(struct json_encoder *encoder, struct json_value *jv)
encoder->je_write(encoder->je_arg, encoder->je_encode_buf, len);
break;
case JSON_VALUE_TYPE_STRING:
- encoder->je_write(encoder->je_arg, jv->jv_val.str, jv->jv_len);
+ for (i = 0; i < jv->jv_len; i++) {
+ switch (jv->jv_val.str[i]) {
+ case '"':
+ case '/':
+ case '\\':
+ case '\t':
+ case '\r':
+ case '\n':
+ case '\f':
+ case '\b':
+ encoder->je_write(encoder->je_arg, "\\",
+ sizeof("\\")-1);
+ break;
+ }
+
+ encoder->je_write(encoder->je_arg, (char *) &jv->jv_val.str[i],
+ 1);
+ }
break;
case JSON_VALUE_TYPE_ARRAY:
JSON_ENCODE_ARRAY_START(encoder);