You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@apache.org on 2001/09/14 17:38:29 UTC

cvs commit: xml-xalan/c/src/XMLSupport FormatterToHTML.cpp FormatterToHTML.hpp

dbertoni    01/09/14 08:38:29

  Modified:    c/src/XMLSupport FormatterToHTML.cpp FormatterToHTML.hpp
  Log:
  Fix for bug 3583.
  
  Revision  Changes    Path
  1.61      +32 -6     xml-xalan/c/src/XMLSupport/FormatterToHTML.cpp
  
  Index: FormatterToHTML.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToHTML.cpp,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- FormatterToHTML.cpp	2001/08/14 16:22:01	1.60
  +++ FormatterToHTML.cpp	2001/09/14 15:38:29	1.61
  @@ -67,8 +67,7 @@
   
   
   #include <cassert>
  -//#include <climits>
  -#include <map>
  +//#include <map>
   
   
   
  @@ -120,6 +119,7 @@
   	m_inBlockElem(false),
   	m_isRawStack(),
   	m_isScriptOrStyleElem(false),
  +	m_inScriptElemStack(),
   	m_escapeURLs(true),
   	m_isFirstElement(false),
   	m_isUTF8(XalanTranscodingServices::encodingIsUTF8(m_encoding)),
  @@ -216,7 +216,12 @@
   	m_isFirstElement = true;
       m_startNewLine = false;
   	m_shouldWriteXMLHeader = false;
  +	m_isScriptOrStyleElem = false;
   
  +	m_isRawStack.clear();
  +	m_inScriptElemStack.push_back(false);
  +	m_hasNamespaceStack.clear();
  +
   	const bool	isEmptySystem = isEmpty(m_doctypeSystem);
   
   	const bool	isEmptyPublic = isEmpty(m_doctypePublic);
  @@ -263,6 +268,8 @@
   {
   	assert(m_elementLevel == 0);
   
  +	m_inScriptElemStack.pop_back();
  +
   	FormatterToXML::endDocument();
   }
   
  @@ -279,7 +286,6 @@
   	}
   	else
   	{
  -
   		writeParentTagEnd();
   
   		const ElemDesc&		elemDesc =
  @@ -287,10 +293,22 @@
   
   		const bool	isBlockElement = elemDesc.is(ElemDesc::BLOCK);
   
  -		m_isScriptOrStyleElem = 
  -				equalsIgnoreCaseASCII(name, c_wstr(s_scriptString)) ||
  -				equalsIgnoreCaseASCII(name, c_wstr(s_styleString));
  +		if (equalsIgnoreCaseASCII(name, c_wstr(s_scriptString)) == true)
  +		{
  +			m_isScriptOrStyleElem = true;
   
  +			m_inScriptElemStack.push_back(true);
  +		}
  +		else
  +		{
  +			if (equalsIgnoreCaseASCII(name, c_wstr(s_styleString)) == true)
  +			{
  +				m_isScriptOrStyleElem = true;
  +			}
  +
  +			m_inScriptElemStack.push_back(m_inScriptElemStack.back());
  +		}
  +
   		// Increment the level...
   		++m_elementLevel;
   
  @@ -367,7 +385,11 @@
   
   		const bool	hasChildNodes = childNodesWereAdded();
   
  +		assert(m_isRawStack.empty() == false);
  +		assert(m_inScriptElemStack.empty() == false);
  +
   		m_isRawStack.pop_back();
  +		m_inScriptElemStack.pop_back();
       
   		const ElemDesc&		elemDesc =
   				getElemDesc(name);
  @@ -455,6 +477,10 @@
   		{
   			m_nextIsRaw = false;
   
  +			charactersRaw(chars, length);
  +		}
  +		else if (m_inScriptElemStack.back() == true)
  +		{
   			charactersRaw(chars, length);
   		}
   		else if (m_isRawStack.empty() == false &&
  
  
  
  1.27      +3 -1      xml-xalan/c/src/XMLSupport/FormatterToHTML.hpp
  
  Index: FormatterToHTML.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToHTML.hpp,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- FormatterToHTML.hpp	2001/07/08 18:16:13	1.26
  +++ FormatterToHTML.hpp	2001/09/14 15:38:29	1.27
  @@ -58,7 +58,7 @@
   #define FORMATTERTOHTML_HEADER_GUARD_1357924680
   
   /**
  - * $Id: FormatterToHTML.hpp,v 1.26 2001/07/08 18:16:13 dbertoni Exp $
  + * $Id: FormatterToHTML.hpp,v 1.27 2001/09/14 15:38:29 dbertoni Exp $
    * 
    * $State: Exp $
    * 
  @@ -443,6 +443,8 @@
   	BoolStackType			m_isRawStack;
   
   	bool					m_isScriptOrStyleElem;
  +
  +	BoolStackType			m_inScriptElemStack;
   
   	bool					m_escapeURLs;
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org