From 099eda8eadfb9e7ee55aabb4dc5ef9913a929be2 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Thu, 14 Jul 2016 12:43:32 +0300 Subject: [PATCH] xmllite/writer: Fix formatted output with WriteFullEndElement(). Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/xmllite/writer.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/xmllite/writer.c b/dlls/xmllite/writer.c index 699095b360f..bcc0e85804c 100644 --- a/dlls/xmllite/writer.c +++ b/dlls/xmllite/writer.c @@ -414,7 +414,6 @@ static HRESULT writer_close_starttag(xmlwriter *writer) if (!writer->starttagopen) return S_OK; hr = write_output_buffer(writer->output, gtW, ARRAY_SIZE(gtW)); writer->starttagopen = FALSE; - writer->state = XmlWriterState_Content; return hr; } @@ -958,6 +957,12 @@ static HRESULT WINAPI xmlwriter_WriteFullEndElement(IXmlWriter *iface) writer_close_starttag(This); writer_dec_indent(This); + /* don't force full end tag to the next line */ + if (This->state == XmlWriterState_ElemStarted) + This->state = XmlWriterState_Content; + else + write_node_indent(This); + /* write full end tag */ write_output_buffer(This->output, closeelementW, ARRAY_SIZE(closeelementW)); write_output_buffer(This->output, element->qname, element->len);