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]

Reply via email to