aboutsummaryrefslogtreecommitdiffstats
path: root/wsutil/json_dumper.c
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2018-12-10 13:42:17 +0100
committerPeter Wu <peter@lekensteyn.nl>2018-12-10 19:58:25 +0000
commit3f01aaac49ee5701af3c053aabdfb7f592401055 (patch)
treecfd7198cda46e9455e2fccd214652c23b586079a /wsutil/json_dumper.c
parent3f09bf685ff657bacdc8a69b7ef3fec75ccc534b (diff)
json_dumper: add support to convert dots in underscores.
This is needed for ek json compatibility. Change-Id: I75c74a1dc7996f3f4c17071508655ae6e3c6b94c Reviewed-on: https://code.wireshark.org/review/30993 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Diffstat (limited to 'wsutil/json_dumper.c')
-rw-r--r--wsutil/json_dumper.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/wsutil/json_dumper.c b/wsutil/json_dumper.c
index 7ae9a0674a..6a0568ce7e 100644
--- a/wsutil/json_dumper.c
+++ b/wsutil/json_dumper.c
@@ -37,7 +37,7 @@ enum json_dumper_change {
};
static void
-json_puts_string(FILE *fp, const char *str)
+json_puts_string(FILE *fp, const char *str, gboolean dot_to_underscore)
{
if (!str) {
fputs("null", fp);
@@ -58,7 +58,10 @@ json_puts_string(FILE *fp, const char *str)
if (str[i] == '\\' || str[i] == '"') {
fputc('\\', fp);
}
- fputc(str[i], fp);
+ if (dot_to_underscore && str[i] == '.')
+ fputc('_', fp);
+ else
+ fputc(str[i], fp);
}
}
fputc('"', fp);
@@ -200,7 +203,7 @@ json_dumper_set_member_name(json_dumper *dumper, const char *name)
}
prepare_token(dumper);
- json_puts_string(dumper->output_file, name);
+ json_puts_string(dumper->output_file, name, dumper->flags & JSON_DUMPER_DOT_TO_UNDERSCORE);
fputc(':', dumper->output_file);
if ((dumper->flags & JSON_DUMPER_FLAGS_PRETTY_PRINT)) {
fputc(' ', dumper->output_file);
@@ -256,7 +259,7 @@ json_dumper_value_string(json_dumper *dumper, const char *value)
}
prepare_token(dumper);
- json_puts_string(dumper->output_file, value);
+ json_puts_string(dumper->output_file, value, FALSE);
dumper->state[dumper->current_depth] = JSON_DUMPER_TYPE_VALUE;
}