From d0ec1edfc5597905041f256f5014a39f635cead9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Iv=C3=A1n=20L=C3=B3pez?= Date: Wed, 6 Nov 2019 08:42:06 +0000 Subject: [PATCH] Add control char escapes Co-Authored-By: Martin Vidner --- client/utils/JsonFormatter.cc | 8 ++++++-- testsuite/json-formatter.cc | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/client/utils/JsonFormatter.cc b/client/utils/JsonFormatter.cc index 4da11f7a..ec2f7c66 100644 --- a/client/utils/JsonFormatter.cc +++ b/client/utils/JsonFormatter.cc @@ -48,7 +48,11 @@ namespace snapper boost::algorithm::replace_all(fixed_value, "\\", "\\\\"); boost::algorithm::replace_all(fixed_value, "\"", "\\\""); - boost::algorithm::replace_all(fixed_value, "\n", ""); + boost::algorithm::replace_all(fixed_value, "\b", "\\b"); + boost::algorithm::replace_all(fixed_value, "\f", "\\f"); + boost::algorithm::replace_all(fixed_value, "\n", "\\n"); + boost::algorithm::replace_all(fixed_value, "\r", "\\r"); + boost::algorithm::replace_all(fixed_value, "\t", "\\t"); return fixed_value; } @@ -125,4 +129,4 @@ namespace snapper } } -} \ No newline at end of file +} diff --git a/testsuite/json-formatter.cc b/testsuite/json-formatter.cc index 6a6193be..541a85ad 100644 --- a/testsuite/json-formatter.cc +++ b/testsuite/json-formatter.cc @@ -17,8 +17,12 @@ BOOST_AUTO_TEST_CASE(test1_escape_values) { "key1", "value1" }, { "key2", "value\"2" }, { "key3", "value\\3" }, - { "key3", "value\n3" }, - { "key4", "\"value4\"" } + { "key3", "value\b4" }, + { "key3", "value\f5" }, + { "key3", "value\n6" }, + { "key3", "value\r7" }, + { "key3", "value\t8" }, + { "key4", "\"value9\"" } }; string expected_result = @@ -26,8 +30,12 @@ BOOST_AUTO_TEST_CASE(test1_escape_values) " \"key1\": \"value1\",\n" " \"key2\": \"value\\\"2\",\n" " \"key3\": \"value\\\\3\",\n" - " \"key3\": \"value3\",\n" - " \"key4\": \"\\\"value4\\\"\"\n" + " \"key3\": \"value\\b4\",\n" + " \"key3\": \"value\\f5\",\n" + " \"key3\": \"value\\n6\",\n" + " \"key3\": \"value\\r7\",\n" + " \"key3\": \"value\\t8\",\n" + " \"key4\": \"\\\"value9\\\"\"\n" "}"; snapper::cli::JsonFormatter formatter(data); -- 2.47.3