diff --git a/jvm/src/test/scala/scala/xml/XMLTest.scala b/jvm/src/test/scala/scala/xml/XMLTest.scala
index cc40e998e..5d90054c7 100644
--- a/jvm/src/test/scala/scala/xml/XMLTest.scala
+++ b/jvm/src/test/scala/scala/xml/XMLTest.scala
@@ -542,4 +542,24 @@ class XMLTestJVM {
pp.format(x, sb)
assertEquals(expected, sb.toString)
}
+
+ @UnitTest
+ def issue46: Unit = {
+ // val x =
+ val x =
+ // val x = Elem(null, "node", e, sc)
+ val pp = new xml.PrettyPrinter(80, 2)
+ // This assertion passed
+ assertEquals("", x.toString)
+ // This was the bug, producing
+ assertEquals("", pp.format(x.copy(minimizeEmpty = true)))
+ }
+
+ @UnitTest
+ def issue90: Unit = {
+ val pp = new xml.PrettyPrinter(80, 2, minimizeEmpty = true)
+ val x =
+ assertEquals("\n \n", pp.format(x))
+ }
+
}
diff --git a/shared/src/main/scala/scala/xml/PrettyPrinter.scala b/shared/src/main/scala/scala/xml/PrettyPrinter.scala
index b3f4f9940..2da75a160 100755
--- a/shared/src/main/scala/scala/xml/PrettyPrinter.scala
+++ b/shared/src/main/scala/scala/xml/PrettyPrinter.scala
@@ -23,8 +23,11 @@ import Utility.sbToString
* @param width the width to fit the output into
* @param step indentation
*/
-class PrettyPrinter(width: Int, step: Int) {
+class PrettyPrinter(width: Int, step: Int, minimizeEmpty: Boolean) {
+ def this(width: Int, step: Int) = this(width, step, minimizeEmpty = false)
+
+ val minimizeMode = if (minimizeEmpty) MinimizeMode.Always else MinimizeMode.Default
class BrokenException() extends java.lang.Exception
class Item
@@ -150,7 +153,7 @@ class PrettyPrinter(width: Int, step: Int) {
case _ =>
val test = {
val sb = new StringBuilder()
- Utility.serialize(node, pscope, sb, stripComments = false)
+ Utility.serialize(node, pscope, sb, stripComments = false, minimizeTags = minimizeMode)
if (doPreserve(node)) sb.toString
else TextBuffer.fromString(sb.toString).toText(0).data
}
diff --git a/shared/src/test/scala/scala/xml/UtilityTest.scala b/shared/src/test/scala/scala/xml/UtilityTest.scala
index f6b3828fa..58aadf780 100644
--- a/shared/src/test/scala/scala/xml/UtilityTest.scala
+++ b/shared/src/test/scala/scala/xml/UtilityTest.scala
@@ -51,4 +51,10 @@ class UtilityTest {
.hashCode // Bug #777
}
+ @Test
+ def issue90: Unit = {
+ val x =
+ assertEquals("", Utility.serialize(x, minimizeTags = MinimizeMode.Always).toString)
+ }
+
}