summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-12-03 12:21:52 +0000
committerburaq <buraq@epfl.ch>2003-12-03 12:21:52 +0000
commite6769e5ed9ee272d3ca96c0579e7ef54890ba00b (patch)
treed5035f82ebf91812a4381b6fb9d35472947e600b
parent6ab80e73d356da9f10e36f8640221bf7a2660316 (diff)
downloadscala-e6769e5ed9ee272d3ca96c0579e7ef54890ba00b.tar.gz
scala-e6769e5ed9ee272d3ca96c0579e7ef54890ba00b.tar.bz2
scala-e6769e5ed9ee272d3ca96c0579e7ef54890ba00b.zip
new, more compliant whitespace handling
-rw-r--r--sources/scala/xml/FactoryAdapter.scala30
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+"\"" );