diff options
author | buraq <buraq@epfl.ch> | 2003-12-03 12:21:52 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-12-03 12:21:52 +0000 |
commit | e6769e5ed9ee272d3ca96c0579e7ef54890ba00b (patch) | |
tree | d5035f82ebf91812a4381b6fb9d35472947e600b | |
parent | 6ab80e73d356da9f10e36f8640221bf7a2660316 (diff) | |
download | scala-e6769e5ed9ee272d3ca96c0579e7ef54890ba00b.tar.gz scala-e6769e5ed9ee272d3ca96c0579e7ef54890ba00b.tar.bz2 scala-e6769e5ed9ee272d3ca96c0579e7ef54890ba00b.zip |
new, more compliant whitespace handling
-rw-r--r-- | sources/scala/xml/FactoryAdapter.scala | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/sources/scala/xml/FactoryAdapter.scala b/sources/scala/xml/FactoryAdapter.scala index 54403fabad..bfe1447338 100644 --- a/sources/scala/xml/FactoryAdapter.scala +++ b/sources/scala/xml/FactoryAdapter.scala @@ -94,6 +94,8 @@ abstract class FactoryAdapter def startDocument():Unit = {} */ + val normalizeWhitespace = false; + /** Characters. * @param ch * @param offset @@ -101,20 +103,26 @@ abstract class FactoryAdapter */ override def characters( ch:Array[char] , offset:int , length:int ):Unit = { - var ws:boolean = false; if (capture) { - var i:int = offset; - while (i < offset + length) { - if ( Character.isWhitespace( ch(i) ) ) { - if (!ws) { - buffer.append(' '); - ws = true; + if( normalizeWhitespace ) { // normalizing whitespace is not compliant, but useful */ + var i:int = offset; + var ws:boolean = false; + while (i < offset + length) { + if ( Character.isWhitespace( ch(i) ) ) { + if (!ws) { + buffer.append(' '); + ws = true; + } + } else { + buffer.append(ch(i)); + ws = false; } - } else { - buffer.append(ch(i)); - ws = false; + i = i+1; } - i = i+1; + } else { // compliant:report every character + + buffer.append( ch, offset, length ); + } } //System.err.println( "after \""+buffer+"\"" ); |