dbertoni    00/08/22 13:21:55

  Modified:    c/src/XSLT ElemAttribute.cpp ElemChoose.cpp ElemElement.cpp
                        ElemFallback.cpp ElemLiteralResult.cpp
                        ElemLiteralResult.hpp ElemNumber.cpp ElemNumber.hpp
                        ElemTemplateElement.cpp ElemTemplateElement.hpp
                        ElemTextLiteral.cpp ExtensionFunctionHandler.hpp
                        ExtensionNSHandler.hpp FunctionDocument.cpp
                        FunctionGenerateID.cpp FunctionKey.cpp
                        FunctionUnparsedEntityURI.cpp KeyDeclaration.hpp
                        KeyTable.cpp KeyTable.hpp NodeSortKey.cpp
                        NodeSortKey.hpp NodeSorter.cpp Stylesheet.cpp
                        Stylesheet.hpp
                        StylesheetConstructionContextDefault.hpp
                        StylesheetExecutionContext.hpp
                        StylesheetExecutionContextDefault.cpp
                        StylesheetExecutionContextDefault.hpp
                        StylesheetHandler.cpp StylesheetHandler.hpp
                        TopLevelArg.cpp TopLevelArg.hpp
                        TraceListenerDefault.cpp TracerEvent.cpp
                        XSLTEngineImpl.cpp XSLTEngineImpl.hpp
  Log:
  Changes for AIX port.
  
  Revision  Changes    Path
  1.7       +12 -0     xml-xalan/c/src/XSLT/ElemAttribute.cpp
  
  Index: ElemAttribute.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemAttribute.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ElemAttribute.cpp 2000/04/20 16:47:34     1.6
  +++ ElemAttribute.cpp 2000/08/22 20:21:16     1.7
  @@ -118,6 +118,12 @@
   
        if(0 == m_pNameAVT)
        {
  +#if defined(XALAN_CANNOT_DELETE_CONST)
  +             delete (AVT*)m_pNamespaceAVT;
  +#else
  +             delete m_pNamespaceAVT;
  +#endif
  +
                constructionContext.error(name + " must have a name 
attribute.");
        } 
        
  @@ -127,9 +133,15 @@
   
   ElemAttribute::~ElemAttribute()
   {
  +#if defined(XALAN_CANNOT_DELETE_CONST)
  +     delete (AVT*)m_pNameAVT;
  +
  +     delete (AVT*)m_pNamespaceAVT;
  +#else
        delete m_pNameAVT;
   
        delete m_pNamespaceAVT;
  +#endif
   }
   
   
  
  
  
  1.7       +6 -1      xml-xalan/c/src/XSLT/ElemChoose.cpp
  
  Index: ElemChoose.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemChoose.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ElemChoose.cpp    2000/07/06 20:19:24     1.6
  +++ ElemChoose.cpp    2000/08/22 20:21:16     1.7
  @@ -124,7 +124,12 @@
   
                if(Constants::ELEMNAME_WHEN == type)
                {
  -                     const ElemWhen* when = static_cast<const 
ElemWhen*>(node);
  +                     const ElemWhen* when = 
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const ElemWhen*)node;
  +#else
  +                             static_cast<const ElemWhen*>(node);
  +#endif
   
                        const XPath* const              theXPath = 
when->getXPath();
                        assert(theXPath != 0);
  
  
  
  1.7       +6 -0      xml-xalan/c/src/XSLT/ElemElement.cpp
  
  Index: ElemElement.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemElement.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ElemElement.cpp   2000/05/24 19:38:48     1.6
  +++ ElemElement.cpp   2000/08/22 20:21:17     1.7
  @@ -123,9 +123,15 @@
   
   ElemElement::~ElemElement()
   {
  +#if defined(XALAN_CANNOT_DELETE_CONST)
  +     delete (AVT*)m_nameAVT;
  +
  +     delete (AVT*)m_namespaceAVT;
  +#else
        delete m_nameAVT;
   
        delete m_namespaceAVT;
  +#endif
   }
   
   
  
  
  
  1.2       +4 -0      xml-xalan/c/src/XSLT/ElemFallback.cpp
  
  Index: ElemFallback.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemFallback.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ElemFallback.cpp  2000/05/26 19:25:07     1.1
  +++ ElemFallback.cpp  2000/08/22 20:21:17     1.2
  @@ -133,7 +133,11 @@
        if(parent->getXSLToken() == Constants::ELEMNAME_EXTENSIONCALL)
        {
                const ElemExtensionCall* const  extensionParent =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                     (const ElemExtensionCall*)parent;
  +#else
                        static_cast<const ElemExtensionCall*>(parent); 
  +#endif
   
                if(extensionParent->elementAvailable(executionContext) == false)
                {
  
  
  
  1.18      +12 -0     xml-xalan/c/src/XSLT/ElemLiteralResult.cpp
  
  Index: ElemLiteralResult.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemLiteralResult.cpp,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- ElemLiteralResult.cpp     2000/08/15 19:39:34     1.17
  +++ ElemLiteralResult.cpp     2000/08/22 20:21:18     1.18
  @@ -319,6 +319,18 @@
   
   bool
   ElemLiteralResult::isAttrOK(
  +                     int                                             tok,
  +                     const XalanDOMChar*             attrName,
  +                     const AttributeList&    atts,
  +                     int                                             which) 
const
  +{
  +     return ElemUse::isAttrOK(tok, attrName, atts, which);
  +}
  +
  +
  +
  +bool
  +ElemLiteralResult::isAttrOK(
                        const XalanDOMChar*                             
attrName,
                        const AttributeList&                    /* atts */,
                        int                                                     
        /* which */,
  
  
  
  1.10      +7 -0      xml-xalan/c/src/XSLT/ElemLiteralResult.hpp
  
  Index: ElemLiteralResult.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemLiteralResult.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- ElemLiteralResult.hpp     2000/08/07 19:52:03     1.9
  +++ ElemLiteralResult.hpp     2000/08/22 20:21:18     1.10
  @@ -103,6 +103,13 @@
        
        virtual bool
        isAttrOK(
  +                     int                                             tok,
  +                     const XalanDOMChar*             attrName,
  +                     const AttributeList&    atts,
  +                     int                                             which) 
const;
  +
  +     virtual bool
  +     isAttrOK(
                        const XalanDOMChar*                             
attrName,
                        const AttributeList&                    atts,
                        int                                                     
        which,
  
  
  
  1.21      +12 -19    xml-xalan/c/src/XSLT/ElemNumber.cpp
  
  Index: ElemNumber.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemNumber.cpp,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- ElemNumber.cpp    2000/08/10 18:43:04     1.20
  +++ ElemNumber.cpp    2000/08/22 20:21:19     1.21
  @@ -67,6 +67,7 @@
   
   
   #include <PlatformSupport/DOMStringHelper.hpp>
  +#include <PlatformSupport/XalanAutoPtr.hpp>
   #include <PlatformSupport/XalanNumberFormat.hpp>
   
   
  @@ -76,6 +77,7 @@
   
   
   
  +#include "AVT.hpp"
   #include "Constants.hpp"
   #include "StylesheetConstructionContext.hpp"
   #include "StylesheetExecutionContext.hpp"
  @@ -209,11 +211,19 @@
        
   ElemNumber::~ElemNumber()
   {
  +#if defined(XALAN_CANNOT_DELETE_CONST)
  +     delete  (AVT*)m_format_avt;
  +     delete  (AVT*)m_lang_avt;
  +     delete  (AVT*)m_lettervalue_avt;
  +     delete  (AVT*)m_groupingSeparator_avt;
  +     delete  (AVT*)m_groupingSize_avt;
  +#else
        delete  m_format_avt;
        delete  m_lang_avt;
        delete  m_lettervalue_avt;
        delete  m_groupingSeparator_avt;
        delete  m_groupingSize_avt;
  +#endif
   }
   
   
  @@ -394,7 +404,7 @@
                                m_valueExpr->execute(sourceNode, *this, 
executionContext));
                assert(countObj.get() != 0);
   
  -             numberList.push_back(static_cast<int>(countObj->num()));
  +             numberList.push_back(int(countObj->num()));
        }
        else
        {
  @@ -623,31 +633,14 @@
   } // end getMatchingAncestors method
   
   
  -#if !defined(XALAN_NO_LOCALES)
   
  -std::locale
  -ElemNumber::getLocale(
  -                     StylesheetExecutionContext&             /* 
executionContext */,
  -                     XalanNode*                                              
/* contextNode */) const
  -{
  -     //TODO
  -     return std::locale();
  -}
  -
  -#endif
  -
  -
   XalanNumberFormat*
   ElemNumber::getNumberFormatter(
                        StylesheetExecutionContext&             
executionContext,
                        XalanNode*                                              
contextNode) const
   {
  -#if ! defined(__GNUC__)
  -//   std::locale loc = getLocale(executionContext, contextNode);
  -#endif
  -
       // Helper to format local specific numbers to strings.
  -     std::auto_ptr<XalanNumberFormat>        
formatter(executionContext.createXalanNumberFormat());
  +     XalanAutoPtr<XalanNumberFormat>         
formatter(executionContext.createXalanNumberFormat());
   
        XalanDOMString  digitGroupSepValue;
        if (0 != m_groupingSeparator_avt)
  
  
  
  1.16      +24 -32    xml-xalan/c/src/XSLT/ElemNumber.hpp
  
  Index: ElemNumber.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemNumber.hpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ElemNumber.hpp    2000/08/10 18:43:04     1.15
  +++ ElemNumber.hpp    2000/08/22 20:21:19     1.16
  @@ -58,7 +58,7 @@
   #define XALAN_ELEMNUMBER_HEADER_GUARD 
   
   /**
  - * $Id: ElemNumber.hpp,v 1.15 2000/08/10 18:43:04 dbertoni Exp $
  + * $Id: ElemNumber.hpp,v 1.16 2000/08/22 20:21:19 dbertoni Exp $
    * 
    * $State: Exp $
    * 
  @@ -72,16 +72,10 @@
   
   // Base class header file.
   #include "ElemTemplateElement.hpp"
  -#include "AVT.hpp"
   
  -#include "XPath/MutableNodeRefList.hpp"
  -
   
   
  -// Just locale.h in G++
  -#if ! defined(__GNUC__)
  -#include <locale>
  -#endif
  +#include "XPath/MutableNodeRefList.hpp"
   
   
   
  @@ -89,6 +83,7 @@
   
   
   
  +class AVT;
   class QName;
   class XalanNumberFormat;
   class XPath;
  @@ -105,17 +100,17 @@
   public:
   
   #if defined(XALAN_NO_NAMESPACES)
  -#     define XALAN_STD
  +     typedef vector<int>                                             
IntArrayType;
  +     typedef vector<Counter>                                 
CounterVectorType;
  +     typedef map<const ElemNumber*,
  +                             CounterVectorType,
  +                             less<const ElemNumber*> >       
ElemToCounterVectorMapType;
   #else
  -#     define XALAN_STD std::
  +     typedef std::vector<int>                                IntArrayType;
  +     typedef std::vector<Counter>                    CounterVectorType;
  +     typedef std::map<const ElemNumber*,
  +                                      CounterVectorType>             
ElemToCounterVectorMapType;
   #endif
  -     typedef XALAN_STD vector<int>           IntArrayType;
  -     typedef XALAN_STD vector<Counter>       CounterVectorType;
  -     typedef XALAN_STD map<const ElemNumber*,        CounterVectorType>      
ElemToCounterVectorMapType;
  -#    if !defined(XALAN_NO_LOCALES)
  -     typedef XALAN_STD locale LocaleType;
  -#    endif
  -#undef XALAN_STD
   
        /**
         * Construct an object corresponding to an "xsl:number" element
  @@ -228,16 +223,12 @@
                        XalanNode*                                              
node, 
                        bool                                                    
stopAtFirstFound) const;
   
  -#if !defined(XALAN_NO_LOCALES)
        /**
  -      * Get the locale we should be using.
  +      * Get a formatter.
  +      * @param executionContext The current execution context.
  +      * @param contextNode The current context node.
  +      * @return A new XalanNumberFormat instance.  The caller owns the 
memory.
         */
  -     LocaleType
  -     getLocale(
  -                     StylesheetExecutionContext&             
executionContext,
  -                     XalanNode*                                              
contextNode) const;
  -#endif
  -
        XalanNumberFormat*
        getNumberFormatter(
                        StylesheetExecutionContext&             
executionContext,
  @@ -245,6 +236,7 @@
   
        /**
         * Format a vector of numbers into a formatted string.
  +      * @param executionContext The current execution context.
         * @param xslNumberElement Element that takes %conversion-atts; 
attributes.
         * @param list Array of one or more integer numbers.
         * @return String that represents list according to 
  @@ -335,12 +327,12 @@
        const XPath*    m_valueExpr;
   
        int                             m_level; // = 
Constants.NUMBERLEVEL_SINGLE;
  -     
  -     AVT*    m_format_avt;
  -     AVT*    m_lang_avt;
  -     AVT*    m_lettervalue_avt;
  -     AVT*    m_groupingSeparator_avt;
  -     AVT*    m_groupingSize_avt;
  +
  +     const AVT*              m_format_avt;
  +     const AVT*              m_lang_avt;
  +     const AVT*              m_lettervalue_avt;
  +     const AVT*              m_groupingSeparator_avt;
  +     const AVT*              m_groupingSize_avt;
   
        /**
        * Chars for converting integers into alpha counts.
  @@ -539,7 +531,7 @@
                /**
                 * Construct a counter object.
                 */
  -             Counter(const ElemNumber*       numberElem) :
  +             Counter(const ElemNumber*       numberElem = 0) :
                        m_countNodesStartCount(0),
                        m_countNodes(),
                        m_fromNode(0),
  
  
  
  1.30      +14 -4     xml-xalan/c/src/XSLT/ElemTemplateElement.cpp
  
  Index: ElemTemplateElement.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemTemplateElement.cpp,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- ElemTemplateElement.cpp   2000/08/15 15:17:09     1.29
  +++ ElemTemplateElement.cpp   2000/08/22 20:21:20     1.30
  @@ -96,7 +96,6 @@
   #include "ElemForEach.hpp"
   #include "ElemSort.hpp"
   #include "ElemTemplate.hpp"
  -//#include "NodeSortKey.hpp"
   #include "Stylesheet.hpp"
   #include "StylesheetExecutionContext.hpp"
   #include "StylesheetRoot.hpp"
  @@ -591,7 +590,13 @@
        if((Constants::ELEMNAME_APPLY_TEMPLATES == tok) ||
                (Constants::ELEMNAME_FOREACH == tok))
        {
  -             const ElemForEach* foreach = static_cast<const ElemForEach 
*>(&xslInstruction);
  +             const ElemForEach* foreach =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                     (const ElemForEach*)&xslInstruction;
  +#else
  +                     static_cast<const ElemForEach*>(&xslInstruction);
  +#endif
  +
                const unsigned int nChildren = foreach->getSortElems().size();
   
                // Reserve the space now...
  @@ -990,7 +995,12 @@
   
                                        case XalanNode::ATTRIBUTE_NODE:
                                                {
  -                                                     const XalanAttr* const  
attr = static_cast<const XalanAttr*>(child);
  +                                                     const XalanAttr* const  
attr =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                                             (const 
XalanAttr*)child;
  +#else
  +                                                             
static_cast<const XalanAttr*>(child);
  +#endif
   
                                                        const XalanDOMString    
val = attr->getValue();
   
  @@ -1565,7 +1575,7 @@
                         }
                         else
                         {
  -                              ElemTemplateElement*  elem = 
const_cast<ElemTemplateElement *>(this);
  +                              const ElemTemplateElement*  elem = this;
   
                                 while(isEmpty(nameSpace) && elem != 0)
                                 {
  
  
  
  1.16      +4 -0      xml-xalan/c/src/XSLT/ElemTemplateElement.hpp
  
  Index: ElemTemplateElement.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemTemplateElement.hpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ElemTemplateElement.hpp   2000/08/10 18:43:05     1.15
  +++ ElemTemplateElement.hpp   2000/08/22 20:21:20     1.16
  @@ -76,6 +76,10 @@
   
   
   
  +#include <PlatformSupport/DOMStringHelper.hpp>
  +
  +
  +
   #include <XPath/PrefixResolver.hpp>
   #include <XPath/NameSpace.hpp>
   
  
  
  
  1.4       +3 -4      xml-xalan/c/src/XSLT/ElemTextLiteral.cpp
  
  Index: ElemTextLiteral.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemTextLiteral.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ElemTextLiteral.cpp       2000/04/11 15:09:26     1.3
  +++ ElemTextLiteral.cpp       2000/08/22 20:21:21     1.4
  @@ -93,8 +93,7 @@
        m_ch(ch + start, ch + start + length),
        m_disableOutputEscaping(disableOutputEscaping)
   {
  -     
assert(static_cast<XMLChVectorType::size_type>(static_cast<int>(m_ch.size()))
  -                     == m_ch.size());
  +     assert(XMLChVectorType::size_type(int(m_ch.size())) == m_ch.size());
   }
   
   
  @@ -116,10 +115,10 @@
   
       if(!m_disableOutputEscaping)
       {
  -             executionContext.characters(m_ch.begin(), 0, 
static_cast<unsigned int>(m_ch.size()));
  +             executionContext.characters(m_ch.begin(), 0, 
unsigned(m_ch.size()));
       }
       else
       {
  -             executionContext.charactersRaw(m_ch.begin(), 0, 
static_cast<unsigned int>(m_ch.size()));
  +             executionContext.charactersRaw(m_ch.begin(), 0, 
unsigned(m_ch.size()));
       }
   }
  
  
  
  1.6       +1 -1      xml-xalan/c/src/XSLT/ExtensionFunctionHandler.hpp
  
  Index: ExtensionFunctionHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ExtensionFunctionHandler.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ExtensionFunctionHandler.hpp      2000/08/15 19:43:43     1.5
  +++ ExtensionFunctionHandler.hpp      2000/08/22 20:21:21     1.6
  @@ -73,7 +73,7 @@
   
   
   
  -#include <XalanDOM/XalanDOMString.hpp>
  +#include <PlatformSupport/DOMStringHelper.hpp>
   
   
   
  
  
  
  1.7       +2 -1      xml-xalan/c/src/XSLT/ExtensionNSHandler.hpp
  
  Index: ExtensionNSHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ExtensionNSHandler.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ExtensionNSHandler.hpp    2000/08/15 19:43:43     1.6
  +++ ExtensionNSHandler.hpp    2000/08/22 20:21:21     1.7
  @@ -203,7 +203,8 @@
   private:
   
   #if defined(XALAN_NO_NAMESPACES)
  -     typedef set<XalanDOMString>                     ExtensionSetType;
  +     typedef set<XalanDOMString,
  +                             less<XalanDOMString> >  ExtensionSetType;
   #else
        typedef std::set<XalanDOMString>        ExtensionSetType;
   #endif
  
  
  
  1.13      +37 -15    xml-xalan/c/src/XSLT/FunctionDocument.cpp
  
  Index: FunctionDocument.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionDocument.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- FunctionDocument.cpp      2000/08/14 16:34:43     1.12
  +++ FunctionDocument.cpp      2000/08/22 20:21:22     1.13
  @@ -161,7 +161,11 @@
        else
        {
                XalanDocument* const    docContext = XalanNode::DOCUMENT_NODE 
== context->getNodeType() ?
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                                                             
(XalanDocument*)context :
  +#else
                                                                                
static_cast<XalanDocument*>(context) :
  +#endif
                                                                                
        context->getOwnerDocument();
   
                const XObject* const    arg = args[0];
  @@ -169,33 +173,51 @@
   
                XalanDOMString                          base;
   
  -             if(args.size() > 1)
  +             if(args.size() == 1)
                {
  +                     assert(executionContext.getPrefixResolver() != 0);
  +
  +                     base = executionContext.getPrefixResolver()->getURI();
  +             }
  +             else
  +             {
                        const XObject* const    arg2 = args[1];
                        assert(arg2 != 0);
   
                        if(XObject::eTypeNodeSet == arg2->getType())
                        {
  -                             XalanNode* const                baseNode =
  -                                                     arg2->nodeset().item(0);
  -                             assert(baseNode != 0);
  -
  -                             XalanDocument* const    baseDoc = 
XalanNode::DOCUMENT_NODE == baseNode->getNodeType() ?
  -                                                                             
                static_cast<XalanDocument*>(baseNode) :
  -                                                                             
                        baseNode->getOwnerDocument();
  +                             const NodeRefListBase&  nodeset = 
arg2->nodeset();
  +
  +                             if (nodeset.getLength() == 0)
  +                             {
  +                                     executionContext.warn("Ignoring the 
empty node-set provided as the second argument to the function document().",
  +                                                                             
  context);
  +
  +                                     
assert(executionContext.getPrefixResolver() != 0);
  +
  +                                     base = 
executionContext.getPrefixResolver()->getURI();
  +                             }
  +                             else
  +                             {
  +                                     XalanNode* const                
baseNode =
  +                                                             nodeset.item(0);
  +                                     assert(baseNode != 0);
  +
  +                                     XalanDocument* const    baseDoc = 
XalanNode::DOCUMENT_NODE == baseNode->getNodeType() ?
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                                                             
                        (XalanDocument*)baseNode :
  +#else
  +                                                                             
                        static_cast<XalanDocument*>(baseNode) :
  +#endif
  +                                                                             
                                baseNode->getOwnerDocument();
   
  -                             base = executionContext.findURIFromDoc(baseDoc);
  +                                     base = 
executionContext.findURIFromDoc(baseDoc);
  +                             }
                        }
                        else
                        {
                                base = arg2->str();
                        }
  -             }
  -             else
  -             {
  -                     assert(executionContext.getPrefixResolver() != 0);
  -
  -                     base = executionContext.getPrefixResolver()->getURI();
                }
   
                typedef XPathExecutionContext::BorrowReturnMutableNodeRefList   
BorrowReturnMutableNodeRefList;
  
  
  
  1.4       +5 -1      xml-xalan/c/src/XSLT/FunctionGenerateID.cpp
  
  Index: FunctionGenerateID.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionGenerateID.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- FunctionGenerateID.cpp    2000/08/10 18:43:06     1.3
  +++ FunctionGenerateID.cpp    2000/08/22 20:21:22     1.4
  @@ -97,7 +97,11 @@
        {
                // We're assuming here that each nodes has an implementation 
with a 
                // unique address that we can convert into a string
  -             return UnsignedLongToDOMString(unsigned long(theNode));
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +             return UnsignedLongToDOMString((unsigned long)theNode);
  +#else
  +             return UnsignedLongToDOMString(reinterpret_cast<unsigned 
long>(theNode));
  +#endif
        }
        else
        {
  
  
  
  1.11      +4 -0      xml-xalan/c/src/XSLT/FunctionKey.cpp
  
  Index: FunctionKey.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionKey.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- FunctionKey.cpp   2000/08/15 19:43:43     1.10
  +++ FunctionKey.cpp   2000/08/22 20:21:23     1.11
  @@ -123,7 +123,11 @@
        {
                XalanDocument* const    docContext = 
                                XalanNode::DOCUMENT_NODE == 
context->getNodeType() ?
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                             (XalanDocument*)context :
  +#else
                                                
static_cast<XalanDocument*>(context) :
  +#endif
                                                        
context->getOwnerDocument();
   
                if(0 == docContext)
  
  
  
  1.5       +4 -0      xml-xalan/c/src/XSLT/FunctionUnparsedEntityURI.cpp
  
  Index: FunctionUnparsedEntityURI.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionUnparsedEntityURI.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FunctionUnparsedEntityURI.cpp     2000/05/15 15:57:09     1.4
  +++ FunctionUnparsedEntityURI.cpp     2000/08/22 20:21:23     1.5
  @@ -114,7 +114,11 @@
   
        XalanDocument* const    doc =
                        XalanNode::DOCUMENT_NODE == context->getNodeType() ?
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (XalanDocument*)context :
  +#else
                                static_cast<XalanDocument*>(context) :
  +#endif
                                context->getOwnerDocument();
        assert(doc != 0);
   
  
  
  
  1.7       +25 -6     xml-xalan/c/src/XSLT/KeyDeclaration.hpp
  
  Index: KeyDeclaration.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/KeyDeclaration.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- KeyDeclaration.hpp        2000/08/14 22:08:05     1.6
  +++ KeyDeclaration.hpp        2000/08/22 20:21:23     1.7
  @@ -88,14 +88,33 @@
         */
        KeyDeclaration(
                        const XalanDOMString&   name,
  -                     XPath&                                  matchPattern,
  -                     XPath&                                  use) :
  +                     const XPath&                    matchPattern,
  +                     const XPath&                    use) :
                m_name(name),
                m_match(&matchPattern),
                m_use(&use)
        {
        }
   
  +     explicit
  +     KeyDeclaration() :
  +             m_name(),
  +             m_match(0),
  +             m_use(0)
  +     {
  +     }
  +
  +     KeyDeclaration(const KeyDeclaration&    theSource) :
  +             m_name(theSource.m_name),
  +             m_match(theSource.m_match),
  +             m_use(theSource.m_use)
  +     {
  +     }
  +
  +     ~KeyDeclaration()
  +     {
  +     }
  +
        /**
         * Retrieves name of element
         * 
  @@ -112,10 +131,10 @@
         * 
         * @return XPath for "use" attribute
         */
  -     const XPath&
  +     const XPath*
        getUse() const
        {
  -             return *m_use;
  +             return m_use;
        }
   
        /**
  @@ -123,10 +142,10 @@
         * 
         * @return XPath for "match" attribute
         */
  -     const XPath&
  +     const XPath*
        getMatchPattern() const
        {
  -             return *m_match;
  +             return m_match;
        }
   
   private:
  
  
  
  1.10      +13 -5     xml-xalan/c/src/XSLT/KeyTable.cpp
  
  Index: KeyTable.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/KeyTable.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- KeyTable.cpp      2000/08/14 22:08:05     1.9
  +++ KeyTable.cpp      2000/08/22 20:21:24     1.10
  @@ -110,8 +110,11 @@
   
                if(XalanNode::ELEMENT_NODE == pos->getNodeType())
                {
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                     attrs = ((const XalanElement*)pos)->getAttributes();
  +#else
                        attrs = static_cast<const 
XalanElement*>(pos)->getAttributes();
  -
  +#endif
                        nNodes = attrs->getLength();
           
                        if(0 == nNodes)
  @@ -144,9 +147,12 @@
   
                                                // See if our node matches the 
given key declaration according to 
                                                // the match attribute on 
xsl:key.
  -                                             const double    score = 
kd.getMatchPattern().getMatchScore(testNode,
  -                                                                             
                                                                                
   resolver,
  -                                                                             
                                                                                
   executionContext);
  +                                             assert(kd.getMatchPattern() != 
0);
  +
  +                                             const double    score =
  +                                                     
kd.getMatchPattern()->getMatchScore(testNode,
  +                                                                             
                                                resolver,
  +                                                                             
                                                executionContext);
   
                                                if(score == 
XPath::s_MatchScoreNone)
                                                {
  @@ -156,8 +162,10 @@
                                                {
                                                        // Query from the node, 
according the the select pattern in the
                                                        // use attribute in 
xsl:key.
  +                                                     assert(kd.getUse() != 
0);
  +
                                                        const XObject* const    
xuse =
  -                                                             
kd.getUse().execute(testNode, resolver, NodeRefList(), executionContext);
  +                                                             
kd.getUse()->execute(testNode, resolver, NodeRefList(), executionContext);
   
                                                        const NodeRefListBase*  
nl = 0;
                                                        unsigned int nUseValues;
  
  
  
  1.8       +2 -3      xml-xalan/c/src/XSLT/KeyTable.hpp
  
  Index: KeyTable.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/KeyTable.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- KeyTable.hpp      2000/08/14 22:08:06     1.7
  +++ KeyTable.hpp      2000/08/22 20:21:24     1.8
  @@ -58,7 +58,7 @@
   #define XALAN_KEYTABLE_HEADER_GUARD 
   
   /**
  - * $Id: KeyTable.hpp,v 1.7 2000/08/14 22:08:06 dbertoni Exp $
  + * $Id: KeyTable.hpp,v 1.8 2000/08/22 20:21:24 dbertoni Exp $
    * 
    * $State: Exp $
    * 
  @@ -77,7 +77,7 @@
   
   
   
  -#include <XalanDOM/XalanDOMString.hpp>
  +#include <PlatformSupport/DOMStringHelper.hpp>
   
   
   
  @@ -170,7 +170,6 @@
         */
        const XalanNode*        m_docKey;
   
  -     /**
        /**
         * Table of element keys.  The table will be built on demand, 
         * when a key is requested, or set by the XMLParserLiaison or 
  
  
  
  1.5       +22 -0     xml-xalan/c/src/XSLT/NodeSortKey.cpp
  
  Index: NodeSortKey.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/NodeSortKey.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NodeSortKey.cpp   2000/04/11 15:09:28     1.4
  +++ NodeSortKey.cpp   2000/08/22 20:21:25     1.5
  @@ -111,6 +111,28 @@
   
   
   
  +NodeSortKey::NodeSortKey() :
  +     m_executionContext(0),
  +     m_selectPat(0),
  +     m_treatAsNumbers(false),
  +     m_descending(false),
  +     m_prefixResolver(0)
  +{
  +}
  +
  +
  +
  +NodeSortKey::NodeSortKey(const NodeSortKey&          theSource) :
  +     m_executionContext(theSource.m_executionContext),
  +     m_selectPat(theSource.m_selectPat),
  +     m_treatAsNumbers(theSource.m_treatAsNumbers),
  +     m_descending(theSource.m_descending),
  +     m_prefixResolver(theSource.m_prefixResolver)
  +{
  +}
  +
  +
  +
   NodeSortKey::~NodeSortKey()
   {
   }
  
  
  
  1.7       +8 -4      xml-xalan/c/src/XSLT/NodeSortKey.hpp
  
  Index: NodeSortKey.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/NodeSortKey.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- NodeSortKey.hpp   2000/04/11 15:09:28     1.6
  +++ NodeSortKey.hpp   2000/08/22 20:21:25     1.7
  @@ -110,6 +110,10 @@
                        const XalanDOMString&   langValue, 
                        const PrefixResolver&   resolver);
   
  +     NodeSortKey();
  +
  +     NodeSortKey(const NodeSortKey&  theSource);
  +
        ~NodeSortKey();
   
        NodeSortKey&
  @@ -120,10 +124,10 @@
         * 
         * @return XPath for selection
         */
  -     const XPath&
  +     const XPath*
        getSelectPattern() const
        {
  -             return *m_selectPat;
  +             return m_selectPat;
        }
   
        /**
  @@ -153,10 +157,10 @@
         * 
         * @return object for namespace resolution
         */
  -     const PrefixResolver&
  +     const PrefixResolver*
        getPrefixResolver() const
        {
  -             return *m_prefixResolver;
  +             return m_prefixResolver;
        }
   
   private:
  
  
  
  1.14      +15 -12    xml-xalan/c/src/XSLT/NodeSorter.cpp
  
  Index: NodeSorter.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/NodeSorter.cpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- NodeSorter.cpp    2000/08/07 19:52:04     1.13
  +++ NodeSorter.cpp    2000/08/22 20:21:25     1.14
  @@ -144,8 +144,7 @@
                        theList, 
                        theNodes,
                        keys);
  -     assert(theNodes.size() ==
  -                             
static_cast<NodeVectorType::size_type>(theLength));
  +     assert(theNodes.size() == NodeVectorType::size_type(theLength));
   
        // Copy the nodes back to the list in sorted order.
        theList.clear();
  @@ -284,10 +283,11 @@
                                const NodeSortKey&      theKey,
                                XalanNode*                      node) const
   {
  -     const XPath&            xpath = theKey.getSelectPattern();
  +     const XPath* const      xpath = theKey.getSelectPattern();
  +     assert(xpath != 0);
   
        const NumberResultsCacheMapType::const_iterator         i =
  -             m_numberResultsCache.find(&xpath);
  +             m_numberResultsCache.find(xpath);
   
        if (i != m_numberResultsCache.end())
        {
  @@ -303,15 +303,15 @@
   
        const XObjectGuard      result(
                m_executionContext.getXObjectFactory(),
  -             xpath.execute(node, theKey.getPrefixResolver(), dummy, 
m_executionContext));
  +             xpath->execute(node, *theKey.getPrefixResolver(), dummy, 
m_executionContext));
        assert(result.get() != 0);
   
        const double    theResult = result->num();
   
   #if defined(XALAN_NO_MUTABLE)
  -     ((NodeSortKeyCompare*)this)->m_numberResultsCache[&xpath][node] = 
theResult;
  +     ((NodeSortKeyCompare*)this)->m_numberResultsCache[xpath][node] = 
theResult;
   #else
  -     m_numberResultsCache[&xpath][node] = theResult;
  +     m_numberResultsCache[xpath][node] = theResult;
   #endif
   
        return theResult;
  @@ -324,10 +324,13 @@
                                const NodeSortKey&      theKey,
                                XalanNode*                      node) const
   {
  -     const XPath&            xpath = theKey.getSelectPattern();
  +     assert(theKey.getPrefixResolver() != 0);
   
  +     const XPath* const      xpath = theKey.getSelectPattern();
  +     assert(xpath != 0);
  +
        const StringResultsCacheMapType::const_iterator         i =
  -             m_stringResultsCache.find(&xpath);
  +             m_stringResultsCache.find(xpath);
   
        if (i != m_stringResultsCache.end())
        {
  @@ -343,15 +346,15 @@
   
        const XObjectGuard      result(
                m_executionContext.getXObjectFactory(),
  -             xpath.execute(node, theKey.getPrefixResolver(), dummy, 
m_executionContext));
  +             xpath->execute(node, *theKey.getPrefixResolver(), dummy, 
m_executionContext));
        assert(result.get() != 0);
   
        const XalanDOMString    theResult = result->str();
   
   #if defined(XALAN_NO_MUTABLE)
  -     ((NodeSortKeyCompare*)this)->m_stringResultsCache[&xpath][node] = 
theResult;
  +     ((NodeSortKeyCompare*)this)->m_stringResultsCache[xpath][node] = 
theResult;
   #else
  -     m_stringResultsCache[&xpath][node] = theResult;
  +     m_stringResultsCache[xpath][node] = theResult;
   #endif
   
        return theResult;
  
  
  
  1.33      +7 -3      xml-xalan/c/src/XSLT/Stylesheet.cpp
  
  Index: Stylesheet.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/Stylesheet.cpp,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- Stylesheet.cpp    2000/08/14 22:08:06     1.32
  +++ Stylesheet.cpp    2000/08/22 20:21:26     1.33
  @@ -797,8 +797,12 @@
                {
                        const bool              quietConflictWarnings = 
executionContext.getQuietConflictWarnings();
   
  -                     XalanDOMString  conflictsString = 
(quietConflictWarnings == false) 
  -                                                                      ? 
XALAN_STATIC_UCODE_STRING("Specificity conflicts found: ") : XalanDOMString();
  +                     XalanDOMString  conflictsString;
  +                     
  +                     if (quietConflictWarnings == false)
  +                     {
  +                             conflictsString = 
XALAN_STATIC_UCODE_STRING("Specificity conflicts found: ");
  +                     }
   
                        for(unsigned int i = 0; i < nConflicts; i++)
                        {
  @@ -1107,7 +1111,7 @@
                                        {
                                                isParam = true;
   
  -                                             XObject* const  theXObject = 
arg.getXObject();
  +                                             const XObject* const    
theXObject = arg.getXObject();
   
                                                if (theXObject != 0)
                                                {
  
  
  
  1.24      +38 -19    xml-xalan/c/src/XSLT/Stylesheet.hpp
  
  Index: Stylesheet.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/Stylesheet.hpp,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- Stylesheet.hpp    2000/08/14 22:08:07     1.23
  +++ Stylesheet.hpp    2000/08/22 20:21:26     1.24
  @@ -121,28 +121,47 @@
   public:
   
   #if defined(XALAN_NO_NAMESPACES)
  -#    define XALAN_STD
  +     typedef map<XalanDOMString,
  +                             XalanDOMString,
  +                             less<XalanDOMString> >                          
PrefixAliasesMapType;
  +     typedef map<XalanDOMString,
  +                             ExtensionNSHandler*,
  +                             less<XalanDOMString> >                          
ExtensionNamespacesMapType;
  +     typedef map<QName,
  +                             ElemTemplate*,
  +                             less<QName> >                                   
        ElemTemplateMapType;
  +     typedef vector<ElemAttributeSet*>                               
AttributeSetMapType;
  +     typedef vector<ElemVariable*>                                   
ElemVariableVectorType;
  +     typedef vector<KeyDeclaration>                                  
KeyDeclarationVectorType;
  +     typedef vector<KeyTable*>                                               
KeyTableVectorType;
  +     typedef map<const XalanNode*,
  +                             KeyTable*,
  +                             less<const XalanNode*> >                        
KeyTablesTableType;
  +     typedef vector<NameSpace>                                               
NamespaceVectorType;
  +     typedef vector<NamespaceVectorType>                             
NamespacesStackType;
  +     typedef vector<QName>                                                   
QNameVectorType;
  +     typedef vector<const Stylesheet*>                               
StylesheetVectorType;
  +     typedef vector<XalanDOMString>                                  
URLStackType;
  +     typedef vector<const XPath*>                                    
XPathVectorType;
  +     typedef vector<ElemDecimalFormat*>                              
ElemDecimalFormatVectorType;
   #else
  -#    define XALAN_STD std::
  +     typedef std::map<XalanDOMString, XalanDOMString>                
PrefixAliasesMapType;
  +     typedef std::map<XalanDOMString, ExtensionNSHandler*>   
ExtensionNamespacesMapType;
  +     typedef std::map<QName, ElemTemplate*>                                  
ElemTemplateMapType;
  +     typedef std::vector<ElemAttributeSet*>                                  
AttributeSetMapType;
  +     typedef std::vector<ElemVariable*>                                      
        ElemVariableVectorType;
  +     typedef std::vector<KeyDeclaration>                                     
        KeyDeclarationVectorType;
  +     typedef std::vector<KeyTable*>                                          
        KeyTableVectorType;
  +     typedef std::map<const XalanNode*, KeyTable*>                   
KeyTablesTableType;
  +     typedef std::vector<NameSpace>                                          
        NamespaceVectorType;
  +     typedef std::vector<NamespaceVectorType>                                
NamespacesStackType;
  +     typedef std::vector<QName>                                              
                QNameVectorType;
  +     typedef std::vector<const Stylesheet*>                                  
StylesheetVectorType;
  +     typedef std::vector<XalanDOMString>                                     
        URLStackType;
  +     typedef std::vector<const XPath*>                                       
        XPathVectorType;
  +     typedef std::vector<ElemDecimalFormat*>                                 
ElemDecimalFormatVectorType;
   #endif
   
  -typedef XALAN_STD map<XalanDOMString, XalanDOMString>                
PrefixAliasesMapType;
  -typedef XALAN_STD map<XalanDOMString, ExtensionNSHandler*>   
ExtensionNamespacesMapType;
  -typedef XALAN_STD map<QName, ElemTemplate*>                                  
ElemTemplateMapType;
  -typedef XALAN_STD vector<ElemAttributeSet*>                          
AttributeSetMapType;
  -typedef XALAN_STD vector<ElemVariable*>                                      
ElemVariableVectorType;
  -typedef XALAN_STD vector<KeyDeclaration>                                     
KeyDeclarationVectorType;
  -typedef XALAN_STD vector<KeyTable*>                                          
KeyTableVectorType;
  -typedef XALAN_STD map<const XalanNode*, KeyTable*>                   
KeyTablesTableType;
  -typedef XALAN_STD vector<NameSpace>                                          
NamespaceVectorType;
  -typedef XALAN_STD vector<NamespaceVectorType>                                
NamespacesStackType;
  -typedef XALAN_STD vector<QName>                                              
        QNameVectorType;
  -typedef XALAN_STD vector<const Stylesheet*>                                  
StylesheetVectorType;
  -typedef XALAN_STD vector<XalanDOMString>                                     
URLStackType;
  -typedef XALAN_STD vector<const XPath*>                                       
        XPathVectorType;
  -typedef XALAN_STD vector<ElemDecimalFormat*>                         
ElemDecimalFormatVectorType;
  -
  -#undef XALAN_STD
   
        typedef StylesheetExecutionContext::ParamVectorType     ParamVectorType;
   
  
  
  
  1.13      +12 -5     
xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.hpp
  
  Index: StylesheetConstructionContextDefault.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.hpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- StylesheetConstructionContextDefault.hpp  2000/08/15 19:43:43     1.12
  +++ StylesheetConstructionContextDefault.hpp  2000/08/22 20:21:27     1.13
  @@ -66,12 +66,21 @@
   
   
   
  +#if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
  +#include <XPath/XPathProcessor.hpp>
  +#endif
  +
  +
  +
  +#include <PlatformSupport/XalanAutoPtr.hpp>
  +
  +
  +
   // Base class header file...
   #include <XSLT/StylesheetConstructionContext.hpp>
   
   
   
  -#include <memory>
   #include <set>
   #include <vector>
   
  @@ -215,14 +224,12 @@
        XPathEnvSupport&                                        
m_xpathEnvSupport;
        XPathFactory&                                           m_xpathFactory;
   
  -#if defined(XALAN_NO_NAMESPACES)
  -     typedef auto_ptr<XPathProcessor>                XPathProcessAutoPtr;
  +     typedef XalanAutoPtr<XPathProcessor>    XPathProcessAutoPtr;
   
  +#if defined(XALAN_NO_NAMESPACES)
        typedef set<StylesheetRoot*,
                                less<StylesheetRoot*> >         
StylesheetSetType;
   #else
  -     typedef std::auto_ptr<XPathProcessor>   XPathProcessAutoPtr;
  -
        typedef std::set<StylesheetRoot*>               StylesheetSetType;
   #endif
   
  
  
  
  1.29      +13 -13    xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp
  
  Index: StylesheetExecutionContext.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- StylesheetExecutionContext.hpp    2000/08/15 15:18:33     1.28
  +++ StylesheetExecutionContext.hpp    2000/08/22 20:21:27     1.29
  @@ -90,7 +90,14 @@
   
   
   
  +#if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
  +#include <PlatformSupport/XalanNumberFormat.hpp>
  +#endif
  +
  +
  +
   #include <PlatformSupport/AttributeListImpl.hpp>
  +#include <PlatformSupport/XalanAutoPtr.hpp>
   
   
   
  @@ -146,13 +153,6 @@
        // These interfaces are new...
   
        /**
  -      * Reset the instance, and prepare to re-use the
  -      * context.
  -      */
  -     virtual void
  -     reset() = 0;
  -
  -     /**
         * Determine whether conflicts should be reported.
         * 
         * @return true if conflicts should not be warned
  @@ -1398,16 +1398,13 @@
        createFormatterToText(Writer&   writer) = 0;
   
   
  -#if defined(XALAN_NO_NAMESPACES)
  -     typedef auto_ptr<XalanNumberFormat>                     
XalanNumberFormatAutoPtr;
  -#else
  -     typedef std::auto_ptr<XalanNumberFormat>        
XalanNumberFormatAutoPtr;
  -#endif
  +     typedef XalanAutoPtr<XalanNumberFormat>         
XalanNumberFormatAutoPtr;
   
        /**
         * Create a new XalanNumberFormat instance.
         *
  -      * @return an auto_ptr that owns a new XalanNumberFormat instance.
  +      * @return an XalanNumberFormatAutoPtr that owns a new
  +      * XalanNumberFormat instance.
         */
        virtual XalanNumberFormatAutoPtr
        createXalanNumberFormat() = 0;
  @@ -1518,6 +1515,9 @@
        endConstruction(const KeyDeclaration& keyDeclaration) = 0;
   
        // These interfaces are inherited from XPathExecutionContext...
  +
  +     virtual void
  +     reset() = 0;
   
        virtual XalanNode*
        getCurrentNode() const = 0;
  
  
  
  1.31      +55 -51    
xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp
  
  Index: StylesheetExecutionContextDefault.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- StylesheetExecutionContextDefault.cpp     2000/08/15 15:18:33     1.30
  +++ StylesheetExecutionContextDefault.cpp     2000/08/22 20:21:27     1.31
  @@ -157,46 +157,6 @@
   
   
   
  -void
  -StylesheetExecutionContextDefault::reset()
  -{
  -#if !defined(XALAN_NO_NAMESPACES)
  -     using std::for_each;
  -#endif
  -     
  -     for_each(m_formatterListeners.begin(),
  -                      m_formatterListeners.end(),
  -                      DeleteFunctor<FormatterListener>());
  -
  -     m_formatterListeners.clear();
  -
  -     for_each(m_printWriters.begin(),
  -                      m_printWriters.end(),
  -                      DeleteFunctor<PrintWriter>());
  -
  -     m_printWriters.clear();
  -
  -     for_each(m_textOutputStreams.begin(),
  -                      m_textOutputStreams.end(),
  -                      DeleteFunctor<TextOutputStream>());
  -
  -     m_textOutputStreams.clear();
  -
  -     clearLiveVariablesStack();
  -
  -     m_variablesStack.reset();
  -
  -     // Clean up the key table vector
  -     for_each(m_keyTables.begin(),
  -                      m_keyTables.end(),
  -                      makeMapValueDeleteFunctor(m_keyTables));
  -
  -     m_keyTables.clear();
  -     assert(m_matchPatternCache.size() == 0);
  -}
  -
  -
  -
   bool
   StylesheetExecutionContextDefault::getQuietConflictWarnings() const
   {
  @@ -756,9 +716,9 @@
                        {
                                const ElemWithParam* const      xslParamElement 
=
   #if defined(XALAN_OLD_STYLE_CASTS)
  -                                                     (ElemWithParam*)child;
  +                                             (ElemWithParam*)child;
   #else
  -                             static_cast<const ElemWithParam*>(child);
  +                                             static_cast<const 
ElemWithParam*>(child);
   #endif
   
                                const XPath* const      pxpath = 
xslParamElement->getSelectPattern();
  @@ -965,11 +925,7 @@
                        XalanNode*                                      
sourceNode,
                        const QName&                            mode)
   {
  -#if !defined(XALAN_NO_NAMESPACES)
  -     using std::auto_ptr;
  -#endif
  -
  -     auto_ptr<ResultTreeFragBase>
  +     XalanAutoPtr<ResultTreeFragBase>
                theFragment(m_xsltProcessor.createResultTreeFrag(*this,
                                                                                
                                 templateChild,
                                                                                
                                 sourceTree,
  @@ -1324,15 +1280,15 @@
   
   
   bool
  -StylesheetExecutionContextDefault::getInConstruction(const KeyDeclaration& 
keyDeclaration) const
  +StylesheetExecutionContextDefault::getInConstruction(const KeyDeclaration&   
keyDeclaration) const
   {
  -     return m_keyDeclarationSet.count(&keyDeclaration)?true:false;
  +     return m_keyDeclarationSet.count(&keyDeclaration) != 0 ? true : false;
   }
   
   
   
   void
  -StylesheetExecutionContextDefault::beginConstruction(const KeyDeclaration& 
keyDeclaration)
  +StylesheetExecutionContextDefault::beginConstruction(const KeyDeclaration&   
keyDeclaration)
   {    
        m_keyDeclarationSet.insert(&keyDeclaration);
   }
  @@ -1340,9 +1296,57 @@
        
   
   void
  -StylesheetExecutionContextDefault::endConstruction(const KeyDeclaration& 
keyDeclaration)
  +StylesheetExecutionContextDefault::endConstruction(const KeyDeclaration&     
keyDeclaration)
   {
        m_keyDeclarationSet.erase(&keyDeclaration);
  +}
  +
  +
  +
  +void
  +StylesheetExecutionContextDefault::reset()
  +{
  +     assert(m_elementRecursionStack.size() == 0);
  +
  +     // Reset the support objects...
  +     m_xpathExecutionContextDefault.reset();
  +
  +     m_xsltProcessor.reset();
  +
  +#if !defined(XALAN_NO_NAMESPACES)
  +     using std::for_each;
  +#endif
  +     
  +     for_each(m_formatterListeners.begin(),
  +                      m_formatterListeners.end(),
  +                      DeleteFunctor<FormatterListener>());
  +
  +     m_formatterListeners.clear();
  +
  +     for_each(m_printWriters.begin(),
  +                      m_printWriters.end(),
  +                      DeleteFunctor<PrintWriter>());
  +
  +     m_printWriters.clear();
  +
  +     for_each(m_textOutputStreams.begin(),
  +                      m_textOutputStreams.end(),
  +                      DeleteFunctor<TextOutputStream>());
  +
  +     m_textOutputStreams.clear();
  +
  +     clearLiveVariablesStack();
  +
  +     m_variablesStack.reset();
  +
  +     // Clean up the key table vector
  +     for_each(m_keyTables.begin(),
  +                      m_keyTables.end(),
  +                      makeMapValueDeleteFunctor(m_keyTables));
  +
  +     m_keyTables.clear();
  +
  +     assert(m_matchPatternCache.size() == 0);
   }
   
   
  
  
  
  1.30      +3 -3      
xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp
  
  Index: StylesheetExecutionContextDefault.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- StylesheetExecutionContextDefault.hpp     2000/08/15 19:43:43     1.29
  +++ StylesheetExecutionContextDefault.hpp     2000/08/22 20:21:28     1.30
  @@ -112,9 +112,6 @@
   
        // These interfaces are inherited from StylesheetExecutionContext...
   
  -     virtual void
  -     reset();
  -
        virtual bool
        getQuietConflictWarnings() const;
   
  @@ -539,6 +536,9 @@
        endConstruction(const KeyDeclaration& keyDeclaration);
   
        // These interfaces are inherited from XPathExecutionContext...
  +
  +     virtual void
  +     reset();
   
        virtual XalanNode*
        getCurrentNode() const;
  
  
  
  1.38      +21 -7     xml-xalan/c/src/XSLT/StylesheetHandler.cpp
  
  Index: StylesheetHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.cpp,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- StylesheetHandler.cpp     2000/08/11 21:15:46     1.37
  +++ StylesheetHandler.cpp     2000/08/22 20:21:28     1.38
  @@ -59,7 +59,6 @@
   
   
   #include <algorithm>
  -#include <memory>
   
   
   
  @@ -78,6 +77,7 @@
   #include <PlatformSupport/DoubleSupport.hpp>
   #include <PlatformSupport/StringTokenizer.hpp>
   #include <PlatformSupport/STLHelper.hpp>
  +#include <PlatformSupport/XalanAutoPtr.hpp>
   
   
   
  @@ -636,7 +636,12 @@
             
                        case Constants::ELEMNAME_SORT:
                                {
  -                                     ElemForEach* foreach = 
static_cast<ElemForEach*>(m_elemStack.back());
  +                                     ElemForEach* foreach =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                             
(ElemForEach*)m_elemStack.back();
  +#else
  +                                             
static_cast<ElemForEach*>(m_elemStack.back());
  +#endif
   
                                        ElemSort* sortElem = new 
ElemSort(m_constructionContext,
                                                                                
                 m_stylesheet,
  @@ -1127,9 +1132,6 @@
   
                if(equals(aname, Constants::ATTRNAME_HREF))
                {
  -#if !defined(XALAN_NO_NAMESPACES)
  -                     using std::auto_ptr;
  -#endif
                        foundIt = true;
                        
                        if(m_foundNotImport)
  @@ -1160,7 +1162,7 @@
                        
                        // This will take care of cleaning up the stylesheet if 
an exception
                        // is thrown.
  -                     auto_ptr<Stylesheet>    importedStylesheet( 
  +                     XalanAutoPtr<Stylesheet>        importedStylesheet( 
                                m_constructionContext.create(
                                m_stylesheet.getStylesheetRoot(), 
                                hrefUrl));
  @@ -1173,7 +1175,7 @@
                        m_stylesheet.addImport(importedStylesheet.get(), true);
   
                        // The imported stylesheet is now owned by the 
stylesheet, so
  -                     // release the auto_ptr.
  +                     // release the XalanAutoPtr.
                        importedStylesheet.release();
   
                        assert(equals(importStack.back(), hrefUrl));
  @@ -1271,7 +1273,11 @@
        else if((Constants::ELEMNAME_PARAMVARIABLE == tok) ||
                Constants::ELEMNAME_VARIABLE == tok)
        {
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +             ElemVariable* const             var = 
(ElemVariable*)m_lastPopped;
  +#else
                ElemVariable* const             var = 
static_cast<ElemVariable*>(m_lastPopped);
  +#endif
   
                if(var->isTopLevel())
                {
  @@ -1339,7 +1345,11 @@
   
                if(Constants::ELEMNAME_TEXT == parent->getXSLToken())
                {
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                     disableOutputEscaping = 
((ElemText*)parent)->getDisableOutputEscaping();
  +#else
                        disableOutputEscaping = 
static_cast<ElemText*>(parent)->getDisableOutputEscaping();
  +#endif
                        parent = m_elemStack[m_elemStack.size()-2];
                        preserveSpace = true;
                }
  @@ -1427,7 +1437,11 @@
   
                if(Constants::ELEMNAME_TEXT == parent->getXSLToken())
                {
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                     disableOutputEscaping = 
((ElemText*)parent)->getDisableOutputEscaping();
  +#else
                        disableOutputEscaping = 
static_cast<ElemText*>(parent)->getDisableOutputEscaping();
  +#endif
                        parent = m_elemStack[m_elemStack.size()-2];
                        preserveSpace = true;
                }
  
  
  
  1.15      +15 -12    xml-xalan/c/src/XSLT/StylesheetHandler.hpp
  
  Index: StylesheetHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.hpp,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- StylesheetHandler.hpp     2000/07/11 19:54:53     1.14
  +++ StylesheetHandler.hpp     2000/08/22 20:21:29     1.15
  @@ -101,6 +101,14 @@
   
   public:
   
  +#if defined(XALAN_NO_NAMESPACES)
  +     typedef vector<ElemTemplateElement*>            ElemTemplateStackType;
  +     typedef vector<ElemTextLiteral*>                        
ElemTextLiteralStackType;
  +#else
  +     typedef std::vector<ElemTemplateElement*>       ElemTemplateStackType;
  +     typedef std::vector<ElemTextLiteral*>           
ElemTextLiteralStackType;
  +#endif
  +
        /**
         * Stack to keep track of the current include base.
         */
  @@ -395,14 +403,6 @@
        XalanDOMString  m_pendingException;
        bool                    m_exceptionPending;
   
  -#if defined(XALAN_NO_NAMESPACES)
  -     typedef vector<ElemTemplateElement*>            ElemTemplateStackType;
  -     typedef vector<ElemTextLiteral*>                        
ElemTextLiteralStackType;
  -#else
  -     typedef std::vector<ElemTemplateElement*>       ElemTemplateStackType;
  -     typedef std::vector<ElemTextLiteral*>           
ElemTextLiteralStackType;
  -#endif
  -
        /**
         * The owning stylesheet.
         */
  @@ -470,10 +470,13 @@
        /**
         * Init the wrapperless template
         */
  -     ElemTemplateElement* initWrapperless (const XalanDOMString& name,
  -                                                     const AttributeList& 
atts,
  -                                                     int lineNumber,
  -                                                     int columnNumber);
  +     ElemTemplateElement*
  +     initWrapperless(
  +                     const XalanDOMString& name,
  +                     const AttributeList& atts,
  +                     int lineNumber,
  +                     int columnNumber);
  +
   
        class PushPopIncludeState
        {
  
  
  
  1.2       +1 -1      xml-xalan/c/src/XSLT/TopLevelArg.cpp
  
  Index: TopLevelArg.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/TopLevelArg.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TopLevelArg.cpp   2000/07/21 19:46:11     1.1
  +++ TopLevelArg.cpp   2000/08/22 20:21:29     1.2
  @@ -75,7 +75,7 @@
   
   TopLevelArg::TopLevelArg(
                const QName&    name,
  -             XObject*                variable) :
  +             const XObject*  variable) :
        m_qname(name),
        m_expression(),
        m_xobject(variable)
  
  
  
  1.2       +6 -6      xml-xalan/c/src/XSLT/TopLevelArg.hpp
  
  Index: TopLevelArg.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/TopLevelArg.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TopLevelArg.hpp   2000/07/21 19:46:11     1.1
  +++ TopLevelArg.hpp   2000/08/22 20:21:29     1.2
  @@ -105,8 +105,8 @@
         * @param variable      the XObject instance.
         */
        TopLevelArg(
  -             const QName&    name,
  -             XObject*                variable);
  +             const QName&    name = QName(),
  +             const XObject*  variable = 0);
   
        /**
         * Copy constructor
  @@ -147,7 +147,7 @@
         * 
         * @return pointer to the XObject instance
         */
  -     XObject*
  +     const XObject*
        getXObject() const
        {
                return m_xobject;
  @@ -171,11 +171,11 @@
   
   private:
   
  -     QName                                                   m_qname;
  +     QName                           m_qname;
   
  -     XalanDOMString                                  m_expression;
  +     XalanDOMString          m_expression;
   
  -     XObject*                                                m_xobject;
  +     const XObject*          m_xobject;
   };
   
   
  
  
  
  1.4       +12 -2     xml-xalan/c/src/XSLT/TraceListenerDefault.cpp
  
  Index: TraceListenerDefault.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/TraceListenerDefault.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TraceListenerDefault.cpp  2000/08/10 18:43:11     1.3
  +++ TraceListenerDefault.cpp  2000/08/22 20:21:30     1.4
  @@ -121,7 +121,12 @@
                        m_printWriter.print(ev.m_styleNode.getElementName());
                        m_printWriter.print(XALAN_STATIC_UCODE_STRING("    "));
   
  -                     const ElemTextLiteral&  etl = static_cast<const 
ElemTextLiteral&>(ev.m_styleNode);
  +                     const ElemTextLiteral&  etl =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const ElemTextLiteral&)ev.m_styleNode;
  +#else
  +                             static_cast<const 
ElemTextLiteral&>(ev.m_styleNode);
  +#endif
   
                        m_printWriter.println(c_wstr(etl.getText()), 
etl.getText().size());
                }
  @@ -130,7 +135,12 @@
        case Constants::ELEMNAME_TEMPLATE:
                if(m_traceTemplates == true || m_traceElements == true)
                {
  -                     const ElemTemplate&             et = static_cast<const 
ElemTemplate&>(ev.m_styleNode);
  +                     const ElemTemplate&             et =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const ElemTemplate&)ev.m_styleNode;
  +#else
  +                             static_cast<const 
ElemTemplate&>(ev.m_styleNode);
  +#endif
   
                        m_printWriter.print(XALAN_STATIC_UCODE_STRING("Line 
#"));
                        m_printWriter.print(ev.m_styleNode.getLineNumber());
  
  
  
  1.4       +11 -2     xml-xalan/c/src/XSLT/TracerEvent.cpp
  
  Index: TracerEvent.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/TracerEvent.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TracerEvent.cpp   2000/04/11 15:09:30     1.3
  +++ TracerEvent.cpp   2000/08/22 20:21:30     1.4
  @@ -93,7 +93,11 @@
   XalanDOMString
   TracerEvent::printNode(const XalanNode&              n)
   {
  -     XalanDOMString  r = LongToDOMString(reinterpret_cast<long>(&n)) + 
XALAN_STATIC_UCODE_STRING(" ");
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +     XalanDOMString  r = UnsignedLongToDOMString((unsigned long)&n) + 
XALAN_STATIC_UCODE_STRING(" ");
  +#else
  +     XalanDOMString  r = UnsignedLongToDOMString(reinterpret_cast<unsigned 
long>(&n)) + XALAN_STATIC_UCODE_STRING(" ");
  +#endif
   
        if (n.getNodeType() == XalanNode::ELEMENT_NODE)
        {
  @@ -142,8 +146,13 @@
   XalanDOMString
   TracerEvent::printNodeList(const XalanNodeList&      l)
   {
  -     XalanDOMString  r = LongToDOMString(reinterpret_cast<long>(&l)) +
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +     XalanDOMString  r = UnsignedLongToDOMString((unsigned long)&l) +
                                                                
XALAN_STATIC_UCODE_STRING("[");
  +#else
  +     XalanDOMString  r = UnsignedLongToDOMString(reinterpret_cast<long>(&l)) 
+
  +                                                             
XALAN_STATIC_UCODE_STRING("[");
  +#endif
   
        unsigned int    len = l.getLength();
        unsigned int    i = 0;
  
  
  
  1.58      +106 -16   xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp
  
  Index: XSLTEngineImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp,v
  retrieving revision 1.57
  retrieving revision 1.58
  diff -u -r1.57 -r1.58
  --- XSLTEngineImpl.cpp        2000/08/11 21:15:47     1.57
  +++ XSLTEngineImpl.cpp        2000/08/22 20:21:31     1.58
  @@ -327,9 +327,19 @@
   {
        try
        {
  -             XalanDOMString xslIdentifier(0 == 
stylesheetSource.getSystemId() 
  -                                                                             
 ? XalanDOMString(XALAN_STATIC_UCODE_STRING("Input XSL")) : 
stylesheetSource.getSystemId());
  +             XalanDOMString  xslIdentifier;
  +
  +             if (0 == stylesheetSource.getSystemId())
  +             {
  +                     xslIdentifier = 
XalanDOMString(XALAN_STATIC_UCODE_STRING("Input XSL"));
  +             }
  +             else
  +             {
  +                     xslIdentifier = stylesheetSource.getSystemId();
  +             }
  +
                bool totalTimeID = true;
  +
                pushTime(&totalTimeID);
   
                XalanNode*      sourceTree = 
getSourceTreeFromInput(inputSource);
  @@ -706,14 +716,15 @@
                        bool                                                    
isRoot,
                        StylesheetConstructionContext&  constructionContext)
   {
  -     Stylesheet*                     stylesheet = 0;
  +     Stylesheet*                             stylesheet = 0;
   
        XalanDOMString                  stringHolder;
  +
        const XalanDOMString    localXSLURLString = clone(trim(xslURLString));
   
  -     const unsigned int      fragIndex = indexOf(localXSLURLString, '#');
  +     const unsigned int              fragIndex = indexOf(localXSLURLString, 
'#');
   
  -     XalanDocument*          stylesheetDoc = 0;
  +     const XalanDocument*    stylesheetDoc = 0;
   
        if(fragIndex == 0)
        {
  @@ -721,18 +732,26 @@
   
                const XalanDOMString    fragID = substring(localXSLURLString, 
1);
   
  -             XalanElement*                   nsNode = 0;
  +             const XalanElement*             nsNode = 0;
   
                if (fragBase.getNodeType() == XalanNode::DOCUMENT_NODE)
                {
                        const XalanDocument&    doc =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const XalanDocument&)fragBase;
  +#else
                                static_cast<const XalanDocument&>(fragBase);
  +#endif
   
                        nsNode = doc.getDocumentElement(); 
                }
                else if (fragBase.getNodeType() == XalanNode::ELEMENT_NODE)
                {
  -                     nsNode = static_cast<XalanElement*>(&fragBase);
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                     nsNode = (const XalanElement*)&fragBase;
  +#else
  +                     nsNode = static_cast<const XalanElement*>(&fragBase);
  +#endif
                }
                else
                {
  @@ -740,7 +759,11 @@
   
                        if      (node->getNodeType() == 
XalanNode::ELEMENT_NODE) 
                        {
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             nsNode = (const XalanElement*)&fragBase;
  +#else
                                nsNode = static_cast<XalanElement*>(node);
  +#endif
                        }
                        else
                        {
  @@ -842,7 +865,11 @@
                        }
                        else
                        {
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             stylesheet = 
constructionContext.create(*((StylesheetRoot*)m_stylesheetRoot), stringHolder);
  +#else
                                stylesheet = 
constructionContext.create(*const_cast<StylesheetRoot*>(m_stylesheetRoot), 
stringHolder);
  +#endif
                        }
   
                        StylesheetHandler stylesheetProcessor(*stylesheet, 
constructionContext);
  @@ -881,7 +908,11 @@
                }
                else
                {
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                     stylesheet = new 
Stylesheet(*(StylesheetRoot*)m_stylesheetRoot, localXSLURLString, 
constructionContext);
  +#else
                        stylesheet = new 
Stylesheet(*const_cast<StylesheetRoot*>(m_stylesheetRoot), localXSLURLString, 
constructionContext);
  +#endif
                }
   
                StylesheetHandler stylesheetProcessor(*stylesheet, 
constructionContext);
  @@ -1258,7 +1289,11 @@
   {
        if(0 != key)
        {
  +#if defined(XALAN_NO_MUTABLE)
  +             
((XSLTEngineImpl*)this)->m_durationsTable.insert(DurationsTableMapType::value_type(key,
 clock()));
  +#else
                m_durationsTable.insert(DurationsTableMapType::value_type(key, 
clock()));
  +#endif
        }
   }
   
  @@ -1272,7 +1307,11 @@
        if(0 != key)
        {
                const DurationsTableMapType::iterator   i =
  +#if defined(XALAN_NO_MUTABLE)
  +                             
((XSLTEngineImpl*)this)->m_durationsTable.find(key);
  +#else
                                m_durationsTable.find(key);
  +#endif
   
                assert(i != m_durationsTable.end());
   
  @@ -1280,7 +1319,11 @@
                {
                        clockTicksDuration = clock() - (*i).second;
   
  +#if defined(XALAN_NO_MUTABLE)
  +                     ((XSLTEngineImpl*)this)->m_durationsTable.erase(i);
  +#else
                        m_durationsTable.erase(i);
  +#endif
                }
        }
   
  @@ -1553,7 +1596,11 @@
                                        // Yuck!!! Ugly hack to switch to HTML 
on-the-fly.  You can
                                        // blame this ridiculous crap on the 
XSLT Working Group...
                                        FormatterToXML* const   theFormatter =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                             (FormatterToXML*)m_flistener;
  +#else
                                                
static_cast<FormatterToXML*>(m_flistener);
  +#endif
   
                                        m_flistener =
                                                
m_executionContext->createFormatterToHTML(
  @@ -1929,7 +1976,12 @@
                          // was: stripWhiteSpace = isLiteral ? true : 
shouldStripSourceNode(node);
                        }
   
  -                     const XalanText&        tx = static_cast<const 
XalanText&>(node);
  +                     const XalanText&        tx =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const XalanText&)node;
  +#else
  +                             static_cast<const XalanText&>(node);
  +#endif
   
                        XalanDOMString          data;
   
  @@ -1987,7 +2039,11 @@
                        {
                                copyAttributesToAttList(&node,
                                                                                
m_stylesheetRoot,
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                                                             
(const XalanElement&)node,
  +#else
                                                                                
static_cast<const XalanElement&>(node),
  +#endif
                                                                                
m_pendingAttributes);
   
                                copyNamespaceAttributes(node,
  @@ -2001,7 +2057,11 @@
        case XalanNode::CDATA_SECTION_NODE:
                {
                        const XalanCDATASection&        theCDATA =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const XalanCDATASection&)node;
  +#else
                                static_cast<const XalanCDATASection&>(node);
  +#endif
   
                        const XalanDOMString    data = theCDATA.getData();
   
  @@ -2012,8 +2072,11 @@
        case XalanNode::ATTRIBUTE_NODE:
                {
                        const XalanAttr&        attr =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const XalanAttr&)node;
  +#else
                                static_cast<const XalanAttr&>(node);
  -
  +#endif
                        addResultAttribute(m_pendingAttributes,
                                                           
m_executionContext->getNameOfNode(attr),
                                                           attr.getValue());
  @@ -2023,7 +2086,11 @@
        case XalanNode::COMMENT_NODE:
                {
                        const XalanComment&             theComment =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const XalanComment&)node;
  +#else
                                static_cast<const XalanComment&>(node);
  +#endif
   
                        const XalanDOMString    theData = theComment.getData();
   
  @@ -2047,7 +2114,11 @@
        case XalanNode::PROCESSING_INSTRUCTION_NODE:
                {
                        const XalanProcessingInstruction&       pi =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const XalanProcessingInstruction&)node;
  +#else
                                static_cast<const 
XalanProcessingInstruction&>(node);
  +#endif
   
                        const XalanDOMString    theTarget = pi.getTarget();
                        const XalanDOMString    theData = pi.getData();
  @@ -2079,12 +2150,8 @@
                        XalanNode*                                              
sourceNode,
                        const QName&                                    mode)
   {
  -#if !defined(XALAN_NO_NAMESPACES)
  -             using std::auto_ptr;
  -#endif
  +     XalanAutoPtr<ResultTreeFragBase> pfrag(createDocFrag());
   
  -     auto_ptr<ResultTreeFragBase> pfrag(createDocFrag());
  -
        FormatterToDOM  tempFormatter(m_resultTreeFactory, 
                                                                  pfrag.get(),
                                                                  0);
  @@ -2738,7 +2805,11 @@
        for(unsigned int        i = 0; i < nAttributes; i++)  
        {       
                const XalanAttr* const  attr =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                     (const XalanAttr*)attributes->item(i);
  +#else
                        static_cast<const XalanAttr*>(attributes->item(i));
  +#endif
                assert(attr != 0);
   
                const XalanDOMString    theTemp(s_XSLNameSpaceURL + ":use");
  @@ -2786,7 +2857,11 @@
                if((XalanNode::TEXT_NODE == type) || 
(XalanNode::CDATA_SECTION_NODE == type))
                {
                        const XalanText&        theTextNode =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                     (const XalanText&)textNode;
  +#else
                                        static_cast<const XalanText&>(textNode);
  +#endif
   
                        if(!theTextNode.isIgnorableWhitespace())
                        {
  @@ -2809,8 +2884,11 @@
                                if(parent->getNodeType() == 
XalanNode::ELEMENT_NODE)
                                {
                                        const XalanElement*     const   
parentElem =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                             (const XalanElement*)parent;
  +#else
                                                static_cast<const 
XalanElement*>(parent);
  -
  +#endif
                                        /* 
                                        const XalanAttr* const          attr =
                                                
parentElem->getAttributeNode(XALAN_STATIC_UCODE_STRING("xml:space"));
  @@ -3100,7 +3178,11 @@
   {
        if(m_resultTreeFactory == 0)
        {
  +#if defined(XALAN_NO_MUTABLE)
  +             ((XSLTEngineImpl*)this)->m_resultTreeFactory = 
m_parserLiaison.createDocument();
  +#else
                m_resultTreeFactory = m_parserLiaison.createDocument();
  +#endif
        }
   
        return m_resultTreeFactory;
  @@ -3214,8 +3296,12 @@
   
                        for(unsigned int i = 0; i < nAttributes; i++)  
                        {
  -                             const XalanAttr*                attr = 
  +                             const XalanAttr*                attr =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                               (const 
XalanAttr*)attributes->item(i);
  +#else
                                                  static_cast<const 
XalanAttr*>(attributes->item(i));
  +#endif
   
                                const XalanDOMString    attrName = 
attr->getName();
   
  @@ -3245,7 +3331,11 @@
                        if (childNode->getNodeType() == 
XalanNode::ELEMENT_NODE) 
                        {
                                XalanElement*   child = 
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                                               (XalanElement*)childNode;
  +#else
                                                  
static_cast<XalanElement*>(childNode);
  +#endif
   
                                const XalanDOMString    childName = 
child->getTagName();
   
  
  
  
  1.44      +30 -13    xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp
  
  Index: XSLTEngineImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- XSLTEngineImpl.hpp        2000/08/11 21:15:47     1.43
  +++ XSLTEngineImpl.hpp        2000/08/22 20:21:31     1.44
  @@ -87,8 +87,15 @@
   
   
   
  +#if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
  +#include <XPath/XPathProcessor.hpp>
  +#endif
  +
  +
  +
   #include <PlatformSupport/AttributeListImpl.hpp>
   #include <PlatformSupport/DOMStringHelper.hpp>
  +#include <PlatformSupport/XalanAutoPtr.hpp>
   
   
   
  @@ -142,22 +149,32 @@
   public:
   
   #if defined(XALAN_NO_NAMESPACES)
  -#    define XALAN_STD
  +     typedef map<XalanDOMString,
  +                             int,
  +                             less<XalanDOMString> >          
AttributeKeysMapType;
  +     typedef map<XalanDOMString,
  +                             int,
  +                             less<XalanDOMString> >          
ElementKeysMapType;
  +     typedef map<const void*,
  +                             clock_t,
  +                             less<const void*> >                     
DurationsTableMapType;
  +     typedef vector<const Locator*>                  LocatorStack;
  +     typedef vector<NameSpace>                               
NamespaceVectorType;
  +     typedef vector<NamespaceVectorType>             NamespacesStackType;
  +     typedef vector<TraceListener*>                  TraceListenerVectorType;
  +     typedef vector<bool>                                    BoolVectorType;
   #else
  -#    define XALAN_STD std::
  +     typedef std::map<XalanDOMString, int>           AttributeKeysMapType;
  +     typedef std::map<XalanDOMString, int>           ElementKeysMapType;
  +     typedef std::map<const void*, clock_t>          DurationsTableMapType;
  +     typedef std::vector<const Locator*>                     LocatorStack;
  +     typedef std::vector<NameSpace>                          
NamespaceVectorType;
  +     typedef std::vector<NamespaceVectorType>        NamespacesStackType;
  +     typedef std::vector<TraceListener*>                     
TraceListenerVectorType;
  +     typedef std::vector<bool>                                       
BoolVectorType;
   #endif
  -
  -     typedef XALAN_STD auto_ptr<XPathProcessor>                      
XPathProcessorPtrType;
  -     typedef XALAN_STD map<XalanDOMString, int>                      
AttributeKeysMapType;
  -     typedef XALAN_STD map<XalanDOMString, int>                      
ElementKeysMapType;
  -     typedef XALAN_STD map<const void*, clock_t>                     
DurationsTableMapType;
  -     typedef XALAN_STD vector<const Locator*>                        
LocatorStack;
  -     typedef XALAN_STD vector<NameSpace>                             
NamespaceVectorType;
  -     typedef XALAN_STD vector<NamespaceVectorType>           
NamespacesStackType;
  -     typedef XALAN_STD vector<TraceListener*>                        
TraceListenerVectorType;
  -     typedef XALAN_STD vector<bool>                                          
BoolVectorType;
  -#undef XALAN_STD
   
  +     typedef XalanAutoPtr<XPathProcessor>                            
XPathProcessorPtrType;
        typedef Function::XObjectArgVectorType                          
XObjectArgVectorType;
        typedef StylesheetExecutionContext::ParamVectorType     ParamVectorType;
   
  
  
  

Reply via email to