dbertoni    2004/11/05 12:05:02

  Modified:    c/src/xalanc/XSLT XSLTEngineImpl.cpp
  Log:
  Use getFormatterListenerImpl() instead of getFormatterListener().  Get indent 
flag from the StylesheetRoot when switching to HTML on the fly.
  
  Revision  Changes    Path
  1.18      +47 -44    xml-xalan/c/src/xalanc/XSLT/XSLTEngineImpl.cpp
  
  Index: XSLTEngineImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XSLT/XSLTEngineImpl.cpp,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- XSLTEngineImpl.cpp        13 Aug 2004 15:49:47 -0000      1.17
  +++ XSLTEngineImpl.cpp        5 Nov 2004 20:05:02 -0000       1.18
  @@ -78,7 +78,6 @@
   
   
   #include "Constants.hpp"
  -#include "ElemWithParam.hpp"
   #include "FunctionCurrent.hpp"
   #include "FunctionDocument.hpp"
   #include "FunctionElementAvailable.hpp"
  @@ -1351,7 +1350,7 @@
   void
   XSLTEngineImpl::startDocument()
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(m_executionContext != 0);
   
        if (getHasPendingStartDocument() == false)
  @@ -1371,7 +1370,7 @@
        }
        else if (getMustFlushPendingStartDocument() == true)
        {
  -             getFormatterListener()->startDocument();
  +             getFormatterListenerImpl()->startDocument();
   
                if(getTraceListeners() > 0)
                {
  @@ -1391,14 +1390,14 @@
   void
   XSLTEngineImpl::endDocument()
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(m_executionContext != 0);
   
        setMustFlushPendingStartDocument(true);
   
        flushPending();
   
  -     getFormatterListener()->endDocument();
  +     getFormatterListenerImpl()->endDocument();
   
        if(getTraceListeners() > 0)
        {
  @@ -1537,7 +1536,7 @@
   {
        if(getHasPendingStartDocument() == true && 0 != 
length(getPendingElementName()))
        {
  -             assert(getFormatterListener() != 0);
  +             assert(getFormatterListenerImpl() != 0);
                assert(m_executionContext != 0);
   
                if (m_stylesheetRoot->isOutputMethodSet() == false)
  @@ -1546,11 +1545,11 @@
                                                                 
Constants::ELEMNAME_HTML_STRING) == true &&
                                pendingAttributesHasDefaultNS() == false)
                        {
  -                             if (getFormatterListener()->getOutputFormat() 
== FormatterListener::OUTPUT_METHOD_XML)
  +                             if 
(getFormatterListenerImpl()->getOutputFormat() == 
FormatterListener::OUTPUT_METHOD_XML)
                                {
                                        // Yuck!!! Ugly hack to switch to HTML 
on-the-fly.
                                        FormatterListener* const        
theFormatter =
  -                                                     getFormatterListener();
  +                                                     
getFormatterListenerImpl();
                                        assert(theFormatter->getWriter() != 0);
   
                                        setFormatterListenerImpl(
  @@ -1560,7 +1559,7 @@
                                                        
theFormatter->getMediaType(),
                                                        
theFormatter->getDoctypeSystem(),
                                                        
theFormatter->getDoctypePublic(),
  -                                                     true,   // indent
  +                                                     
m_stylesheetRoot->getOutputIndent(),
                                                        
theFormatter->getIndent() > 0 ? theFormatter->getIndent() :
                                                                                
        StylesheetExecutionContext::eDefaultHTMLIndentAmount));
   
  @@ -1582,7 +1581,7 @@
   
        if(0 != length(thePendingElementName) && 
getMustFlushPendingStartDocument() == true)
        {
  -             assert(getFormatterListener() != 0);
  +             assert(getFormatterListenerImpl() != 0);
                assert(m_executionContext != 0);
   
                if(m_hasCDATASectionElements == true)
  @@ -1593,7 +1592,9 @@
                AttributeListImpl&      thePendingAttributes =
                                getPendingAttributesImpl();
   
  -             
getFormatterListener()->startElement(c_wstr(thePendingElementName), 
thePendingAttributes);
  +             getFormatterListenerImpl()->startElement(
  +                c_wstr(thePendingElementName),
  +                thePendingAttributes);
   
                if(getTraceListeners() > 0)
                {
  @@ -1616,7 +1617,7 @@
   void
   XSLTEngineImpl::startElement(const XalanDOMChar*     name)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(name != 0);
   
        flushPending();
  @@ -1635,7 +1636,7 @@
                        const XalanDOMChar*             name,
                        AttributeListType&              atts)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(name != 0);
   
        flushPending();
  @@ -1667,12 +1668,12 @@
   void
   XSLTEngineImpl::endElement(const XalanDOMChar*       name)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(name != 0);
   
        flushPending();
   
  -     getFormatterListener()->endElement(name);
  +     getFormatterListenerImpl()->endElement(name);
   
        if(getTraceListeners() > 0)
        {
  @@ -1698,9 +1699,10 @@
                        const XalanDOMChar*                     ch,
                        XalanDOMString::size_type       length)
   {
  -     characters(ch,
  -                        0,
  -                        length);
  +     characters(
  +        ch,
  +             0,
  +             length);
   }
   
   
  @@ -1711,7 +1713,7 @@
                        XalanDOMString::size_type       start,
                        XalanDOMString::size_type       length)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(ch != 0);
        assert(m_hasCDATASectionElements == 
m_stylesheetRoot->hasCDATASectionElements());
   
  @@ -1719,7 +1721,7 @@
   
        if(generateCDATASection() == true)
        {
  -             getFormatterListener()->cdata(ch + start, length);
  +             getFormatterListenerImpl()->cdata(ch + start, length);
   
                if(getTraceListeners() > 0)
                {
  @@ -1728,7 +1730,7 @@
        }
        else
        {
  -             getFormatterListener()->characters(ch + start, length);
  +             getFormatterListenerImpl()->characters(ch + start, length);
   
                if(getTraceListeners() > 0)
                {
  @@ -1742,14 +1744,14 @@
   void
   XSLTEngineImpl::characters(const XalanNode&          node)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(m_hasCDATASectionElements == 
m_stylesheetRoot->hasCDATASectionElements());
   
        doFlushPending();
   
        if(generateCDATASection() == true)
        {
  -             DOMServices::getNodeData(node, *getFormatterListener(), 
&FormatterListener::cdata);
  +             DOMServices::getNodeData(node, *getFormatterListenerImpl(), 
&FormatterListener::cdata);
   
                if(getTraceListeners() > 0)
                {
  @@ -1758,7 +1760,7 @@
        }
        else
        {
  -             DOMServices::getNodeData(node, *getFormatterListener(), 
&FormatterListener::characters);
  +             DOMServices::getNodeData(node, *getFormatterListenerImpl(), 
&FormatterListener::characters);
   
                if(getTraceListeners() > 0)
                {
  @@ -1772,7 +1774,7 @@
   void
   XSLTEngineImpl::characters(const XObjectPtr& xobject)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(xobject.null() == false);
        assert(m_hasCDATASectionElements == 
m_stylesheetRoot->hasCDATASectionElements());
   
  @@ -1780,7 +1782,7 @@
   
        if(generateCDATASection() == true)
        {
  -             xobject->str(*getFormatterListener(), 
&FormatterListener::cdata);
  +             xobject->str(*getFormatterListenerImpl(), 
&FormatterListener::cdata);
   
                if(getTraceListeners() > 0)
                {
  @@ -1789,7 +1791,7 @@
        }
        else
        {
  -             xobject->str(*getFormatterListener(), 
&FormatterListener::characters);
  +             xobject->str(*getFormatterListenerImpl(), 
&FormatterListener::characters);
   
                if(getTraceListeners() > 0)
                {
  @@ -1810,7 +1812,7 @@
   
        doFlushPending();
   
  -     getFormatterListener()->charactersRaw(ch, length);
  +     getFormatterListenerImpl()->charactersRaw(ch, length);
   
        if(getTraceListeners() > 0)
        {
  @@ -1825,7 +1827,7 @@
   {
        doFlushPending();
   
  -     DOMServices::getNodeData(node, *getFormatterListener(), 
&FormatterListener::charactersRaw);
  +     DOMServices::getNodeData(node, *getFormatterListenerImpl(), 
&FormatterListener::charactersRaw);
   
        if(getTraceListeners() > 0)
        {
  @@ -1840,7 +1842,7 @@
   {
        doFlushPending();
   
  -     xobject->str(*getFormatterListener(), 
&FormatterListener::charactersRaw);
  +     xobject->str(*getFormatterListenerImpl(), 
&FormatterListener::charactersRaw);
   
        if(getTraceListeners() > 0)
        {
  @@ -1853,11 +1855,11 @@
   void
   XSLTEngineImpl::resetDocument()
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
   
        flushPending();
  -     
  -     getFormatterListener()->resetDocument();
  +
  +     getFormatterListenerImpl()->resetDocument();
   }
   
   
  @@ -1867,12 +1869,12 @@
                        const XalanDOMChar*                     ch,
                        XalanDOMString::size_type       length)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(ch != 0);
   
        doFlushPending();
   
  -     getFormatterListener()->ignorableWhitespace(ch, length);
  +     getFormatterListenerImpl()->ignorableWhitespace(ch, length);
   
        if(getTraceListeners() > 0)
        {
  @@ -1890,13 +1892,13 @@
                        const XalanDOMChar*             target,
                        const XalanDOMChar*             data)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(target != 0);
        assert(data != 0);
   
        doFlushPending();
   
  -     getFormatterListener()->processingInstruction(target, data);
  +     getFormatterListenerImpl()->processingInstruction(target, data);
   
        if(getTraceListeners() > 0)
        {
  @@ -1914,12 +1916,12 @@
   void
   XSLTEngineImpl::comment(const XalanDOMChar*          data)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(data != 0);
   
        doFlushPending();
   
  -     getFormatterListener()->comment(data);
  +     getFormatterListenerImpl()->comment(data);
   
        if(getTraceListeners() > 0)
        {
  @@ -1933,12 +1935,12 @@
   void
   XSLTEngineImpl::entityReference(const XalanDOMChar*          name)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(name != 0);
   
        doFlushPending();
   
  -     getFormatterListener()->entityReference(name);
  +     getFormatterListenerImpl()->entityReference(name);
   
        if(getTraceListeners() > 0)
        {
  @@ -1957,14 +1959,14 @@
                        XalanDOMString::size_type       start,
                        XalanDOMString::size_type       length)
   {
  -     assert(getFormatterListener() != 0);
  +     assert(getFormatterListenerImpl() != 0);
        assert(ch != 0);
   
        setMustFlushPendingStartDocument(true);
   
        flushPending();
   
  -     getFormatterListener()->cdata(ch, length);
  +     getFormatterListenerImpl()->cdata(ch, length);
   
        if(getTraceListeners() > 0)
        {
  @@ -3004,7 +3006,8 @@
   void
   XSLTEngineImpl::setFormatterListener(FormatterListener*              
flistener)
   {
  -     if (getHasPendingStartDocument() == true && getFormatterListener() != 0)
  +     if (getHasPendingStartDocument() == true &&
  +        getFormatterListenerImpl() != 0)
        {
                setMustFlushPendingStartDocument(true);
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to