sboag 01/07/05 13:26:31
Modified: java/src/org/apache/xml/utils FastStringBuffer.java
Log:
Fix bug reported by "Carsten Ziegeler" <[EMAIL PROTECTED]>.
Test for this is whitespace23.
Revision Changes Path
1.12 +25 -3
xml-xalan/java/src/org/apache/xml/utils/FastStringBuffer.java
Index: FastStringBuffer.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xml/utils/FastStringBuffer.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- FastStringBuffer.java 2001/06/12 19:15:58 1.11
+++ FastStringBuffer.java 2001/07/05 20:26:29 1.12
@@ -1040,6 +1040,7 @@
}
boolean whiteSpaceFound = false;
+ boolean needToFlushSpace = false;
int d = s;
for (; s < end; s++)
{
@@ -1052,8 +1053,16 @@
whiteSpaceFound = true;
if(c != ' ')
{
- handler.characters(ch, d, (s-d));
- handler.characters(m_oneChar, 0, 1);
+ int len = (s-d);
+ if( len > 0)
+ {
+ if(needToFlushSpace)
+ handler.characters(m_oneChar, 0, 1);
+
+ handler.characters(ch, d, len);
+ needToFlushSpace = true;
+ // handler.characters(m_oneChar, 0, 1);
+ }
d = s+1;
}
}
@@ -1074,7 +1083,16 @@
end = s;
break; // Let the flush at the end handle it.
}
- handler.characters(ch, d, len);
+ if(len > 0)
+ {
+ if(needToFlushSpace)
+ {
+ handler.characters(m_oneChar, 0, 1);
+ needToFlushSpace = false;
+ }
+
+ handler.characters(ch, d, len);
+ }
whiteSpaceFound = false;
d = s = z;
@@ -1092,7 +1110,11 @@
int len = (s-d);
if(len > 0)
+ {
+ if(needToFlushSpace)
+ handler.characters(m_oneChar, 0, 1);
handler.characters(ch, d, len);
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]