diff --git a/main/manager.c b/main/manager.c index d07ceb83a5..fd045e833d 100644 --- a/main/manager.c +++ b/main/manager.c @@ -5755,9 +5755,10 @@ static void xml_translate(struct ast_str **out, char *in, struct ast_variable *g } if (in_data) { - /* Process data field in Opaque mode */ - xml_copy_escape(out, val, 0); /* data field */ + /* Process data field in Opaque mode. This is a + * followup, so we re-add line feeds. */ ast_str_append(out, 0, xml ? "\n" : "
\n"); + xml_copy_escape(out, val, 0); /* data field */ continue; } @@ -5793,7 +5794,9 @@ static void xml_translate(struct ast_str **out, char *in, struct ast_variable *g ao2_ref(vc, -1); ast_str_append(out, 0, xml ? "='" : ""); xml_copy_escape(out, val, 0); /* data field */ - ast_str_append(out, 0, xml ? "'" : "\n"); + if (!in_data || !*in) { + ast_str_append(out, 0, xml ? "'" : "\n"); + } } if (inobj) {