aboutsummaryrefslogtreecommitdiffstats
path: root/epan/print.c
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2016-06-28 10:42:55 +0200
committerDario Lombardo <lomato@gmail.com>2016-06-28 09:13:35 +0000
commit94830dc145818ce4fcedcfee0ca4432df6d2f6eb (patch)
treed39f3c6ca9ab8783d3b857d062cf6c9ba7e73106 /epan/print.c
parent7fcdc759b4b681f33be9ab4e723fea32e31e14cc (diff)
print: merge json and ek functions.
Change-Id: Ia5d75bab03bfc065651ea83c936aedffb1f69e9f Reviewed-on: https://code.wireshark.org/review/16190 Petri-Dish: Dario Lombardo <lomato@gmail.com> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: Martin Kacer <kacer.martin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Dario Lombardo <lomato@gmail.com>
Diffstat (limited to 'epan/print.c')
-rw-r--r--epan/print.c60
1 files changed, 16 insertions, 44 deletions
diff --git a/epan/print.c b/epan/print.c
index 6367ca5d1a..6dc3e8a6bd 100644
--- a/epan/print.c
+++ b/epan/print.c
@@ -1417,10 +1417,8 @@ print_escaped_xml(FILE *fh, const char *unescaped_string)
}
}
-/* Print a string, escaping out certain characters that need to
- * escaped out for JSON. */
static void
-print_escaped_json(FILE *fh, const char *unescaped_string)
+print_escaped_bare(FILE *fh, const char *unescaped_string, gboolean change_dot)
{
const char *p;
char temp_str[8];
@@ -1451,6 +1449,12 @@ print_escaped_json(FILE *fh, const char *unescaped_string)
case '\t':
fputs("\\t", fh);
break;
+ case '.':
+ if (change_dot)
+ fputs("_", fh);
+ else
+ fputs(".", fh);
+ break;
default:
if (g_ascii_isprint(*p))
fputc(*p, fh);
@@ -1463,51 +1467,19 @@ print_escaped_json(FILE *fh, const char *unescaped_string)
}
/* Print a string, escaping out certain characters that need to
+ * escaped out for JSON. */
+static void
+print_escaped_json(FILE *fh, const char *unescaped_string)
+{
+ print_escaped_bare(fh, unescaped_string, FALSE);
+}
+
+/* Print a string, escaping out certain characters that need to
* escaped out for Elasticsearch title. */
static void
print_escaped_ek(FILE *fh, const char *unescaped_string)
{
- const char *p;
- char temp_str[8];
-
- for (p = unescaped_string; *p != '\0'; p++) {
- switch (*p) {
- case '"':
- fputs("\\\"", fh);
- break;
- case '\\':
- fputs("\\\\", fh);
- break;
- case '/':
- fputs("\\/", fh);
- break;
- case '\b':
- fputs("\\b", fh);
- break;
- case '\f':
- fputs("\\f", fh);
- break;
- case '\n':
- fputs("\\n", fh);
- break;
- case '\r':
- fputs("\\r", fh);
- break;
- case '\t':
- fputs("\\t", fh);
- break;
- case '.':
- fputs("_", fh);
- break;
- default:
- if (g_ascii_isprint(*p))
- fputc(*p, fh);
- else {
- g_snprintf(temp_str, sizeof(temp_str), "\\u00%u", (guint8)*p);
- fputs(temp_str, fh);
- }
- }
- }
+ print_escaped_bare(fh, unescaped_string, TRUE);
}
static void