Remove extra space in an empty tag for format_raw
When using format_raw the space in the empty tag (<node />) is the only character that does not have to be there; so format_raw almost results in a minimal XML but not quite. It's pretty unlikely that this is crucial for any users - the formatting change should be benign, and it's better to improve format_raw than to add yet another flag. Fixes #87.
This commit is contained in:
parent
c6539ccef0
commit
2e0ed8284b
@ -4014,7 +4014,10 @@ PUGI__NS_BEGIN
|
|||||||
{
|
{
|
||||||
if (!node->first_child)
|
if (!node->first_child)
|
||||||
{
|
{
|
||||||
writer.write(' ', '/', '>');
|
if ((flags & format_raw) == 0)
|
||||||
|
writer.write(' ');
|
||||||
|
|
||||||
|
writer.write('/', '>');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -417,12 +417,12 @@ TEST_XML(document_save_bom, "<n/>")
|
|||||||
unsigned int flags = format_no_declaration | format_raw | format_write_bom;
|
unsigned int flags = format_no_declaration | format_raw | format_write_bom;
|
||||||
|
|
||||||
// specific encodings
|
// specific encodings
|
||||||
CHECK(test_save_narrow(doc, flags, encoding_utf8, "\xef\xbb\xbf<n />", 8));
|
CHECK(test_save_narrow(doc, flags, encoding_utf8, "\xef\xbb\xbf<n/>", 7));
|
||||||
CHECK(test_save_narrow(doc, flags, encoding_utf16_be, "\xfe\xff\x00<\x00n\x00 \x00/\x00>", 12));
|
CHECK(test_save_narrow(doc, flags, encoding_utf16_be, "\xfe\xff\x00<\x00n\x00/\x00>", 10));
|
||||||
CHECK(test_save_narrow(doc, flags, encoding_utf16_le, "\xff\xfe<\x00n\x00 \x00/\x00>\x00", 12));
|
CHECK(test_save_narrow(doc, flags, encoding_utf16_le, "\xff\xfe<\x00n\x00/\x00>\x00", 10));
|
||||||
CHECK(test_save_narrow(doc, flags, encoding_utf32_be, "\x00\x00\xfe\xff\x00\x00\x00<\x00\x00\x00n\x00\x00\x00 \x00\x00\x00/\x00\x00\x00>", 24));
|
CHECK(test_save_narrow(doc, flags, encoding_utf32_be, "\x00\x00\xfe\xff\x00\x00\x00<\x00\x00\x00n\x00\x00\x00/\x00\x00\x00>", 20));
|
||||||
CHECK(test_save_narrow(doc, flags, encoding_utf32_le, "\xff\xfe\x00\x00<\x00\x00\x00n\x00\x00\x00 \x00\x00\x00/\x00\x00\x00>\x00\x00\x00", 24));
|
CHECK(test_save_narrow(doc, flags, encoding_utf32_le, "\xff\xfe\x00\x00<\x00\x00\x00n\x00\x00\x00/\x00\x00\x00>\x00\x00\x00", 20));
|
||||||
CHECK(test_save_narrow(doc, flags, encoding_latin1, "<n />", 5));
|
CHECK(test_save_narrow(doc, flags, encoding_latin1, "<n/>", 4));
|
||||||
|
|
||||||
// encodings synonyms
|
// encodings synonyms
|
||||||
CHECK(save_narrow(doc, flags, encoding_utf16) == save_narrow(doc, flags, (is_little_endian() ? encoding_utf16_le : encoding_utf16_be)));
|
CHECK(save_narrow(doc, flags, encoding_utf16) == save_narrow(doc, flags, (is_little_endian() ? encoding_utf16_le : encoding_utf16_be)));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user