jdonohue    00/03/17 14:19:09

  Modified:    c/src/XMLSupport FormatterToXML.cpp
  Log:
  Sync up with java on unescaped text handling
  
  Revision  Changes    Path
  1.11      +33 -19    xml-xalan/c/src/XMLSupport/FormatterToXML.cpp
  
  Index: FormatterToXML.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToXML.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- FormatterToXML.cpp        2000/03/16 20:48:58     1.10
  +++ FormatterToXML.cpp        2000/03/17 22:19:09     1.11
  @@ -595,31 +595,45 @@
                        const XMLCh* const      target,
                        const XMLCh* const      data)
   {
  -     try
  -     {
  -             writeParentTagEnd();
  +// @@ Need to add this --
  +//    if(m_inEntityRef)
  +//      return;
   
  -             if (shouldIndent() == true)  
  +     // Use a fairly nasty hack to tell if the next node is supposed to be 
  +     // unescaped text.
  +     if(equals(target, DOMString("xslt-next-is-raw"))
  +             && equals(data, DOMString("formatter-to-dom")))
  +     {
  +             m_nextIsRaw = true;
  +     }
  +     else    
  +     {
  +             try
                {
  -                     indent(m_writer, m_currentIndent);
  -             }
  +                     writeParentTagEnd();
   
  -             m_writer.write("<?");
  -             m_writer.write(target);
  +                     if (shouldIndent() == true)  
  +                     {
  +                             indent(m_writer, m_currentIndent);
  +                     }
   
  -             if (length(data) > 0 && !isSpace(data[0]))
  -             {
  -                     m_writer.write(" ");
  -             }
  +                     m_writer.write("<?");
  +                     m_writer.write(target);
   
  -             m_writer.write(data);
  -             m_writer.write("?>");
  +                     if (length(data) > 0 && !isSpace(data[0]))
  +                     {
  +                             m_writer.write(" ");
  +                     }
   
  -             m_startNewLine = true;
  -     }
  -     catch(...)
  -     {
  -       throw SAXException();
  +                     m_writer.write(data);
  +                     m_writer.write("?>");
  +
  +                     m_startNewLine = true;
  +             }
  +             catch(...)
  +             {
  +                     throw SAXException();
  +             }
        }
   }
   
  
  
  

Reply via email to