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]