dbertoni    01/02/08 13:39:36

  Modified:    c/src/PlatformSupport DOMStringHelper.cpp
                        DOMStringHelper.hpp NamedNodeMapAttributeList.cpp
                        NamedNodeMapAttributeList.hpp
                        PlatformSupportInit.cpp PrintWriter.cpp
                        PrintWriter.hpp URISupport.cpp URISupport.hpp
                        XalanNumberFormat.cpp XalanNumberFormat.hpp
                        XalanOutputStream.cpp XalanTranscodingServices.cpp
                        XalanTranscodingServices.hpp XalanUnicode.hpp
  Log:
  Cleaned up some strings.  Changed some DOMStringHelper functions to do the 
right thing.
  
  Revision  Changes    Path
  1.51      +5 -65     xml-xalan/c/src/PlatformSupport/DOMStringHelper.cpp
  
  Index: DOMStringHelper.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/DOMStringHelper.cpp,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- DOMStringHelper.cpp       2001/01/16 02:42:13     1.50
  +++ DOMStringHelper.cpp       2001/02/08 21:38:54     1.51
  @@ -185,11 +185,11 @@
   XALAN_PLATFORMSUPPORT_EXPORT_FUNCTION(void)
   DOMStringHelperTerminate()
   {
  -     clear(theNaNString);
  -     clear(theNegativeInfinityString);
  -     clear(thePositiveInfinityString);
  -     clear(theNegativeZeroString);
  -     clear(thePositiveZeroString);
  +     releaseMemory(theNaNString);
  +     releaseMemory(theNegativeInfinityString);
  +     releaseMemory(thePositiveInfinityString);
  +     releaseMemory(theNegativeZeroString);
  +     releaseMemory(thePositiveZeroString);
   }
   
   
  @@ -597,44 +597,7 @@
                {
                        assert(theStartIndex + theLength <= theStringLength);
   
  -#if defined(XALAN_USE_CUSTOM_STRING) || defined(XALAN_USE_STD_STRING)
                        return theString.substr(theStartIndex, theLength);
  -#else
  -                     // @@ JMD:
  -                     // If this is the case, the DOMString class doesn't 
create a new string,
  -                     // and in any case, does not null terminate the string, 
just points to
  -                     // the beginning, so we have to manually extract 
'theLength' characters
  -                     // and create a new buffer
  -                     if (0 == theStartIndex)
  -                     {
  -                             const XalanDOMChar* const       ptr = 
toCharArray(theString);
  -
  -                             vector<XalanDOMChar>    theBuffer;
  -
  -                             // Reserve the buffer now.  We don't have to 
null-terminate,
  -                             // because the XalanDOMString constructor will 
take a size
  -                             // parameter.
  -                             theBuffer.reserve(theLength);
  -
  -#if defined(XALAN_NO_ALGORITHMS_WITH_BUILTINS)
  -                             XalanCopy(
  -                                     ptr,
  -                                     ptr + theLength,
  -                                     back_inserter(theBuffer));
  -#else
  -                             copy(
  -                                     ptr,
  -                                     ptr + theLength,
  -                                     back_inserter(theBuffer));
  -#endif
  -
  -                             return XalanDOMString(&*theBuffer.begin(), 
theBuffer.size());
  -                     }
  -                     else
  -                     {
  -                             return theString.substringData(theStartIndex, 
theLength);
  -                     }
  -#endif       // defined(XALAN_USE_CUSTOM_STRING) || 
defined(XALAN_USE_STD_STRING)
                }
        }
   }
  @@ -675,17 +638,6 @@
   {
        assert(theInputString != 0);
   
  -#if defined(XALAN_USE_STD_STRING) && defined(XALAN_OLD_STD_STRING)
  -     vector<XalanDOMChar>    theConvertedString;
  -
  -     TransformString(
  -                     theInputString,
  -                     theInputString + theInputStringLength,
  -                     back_inserter(theConvertedString),
  -                     theFunction);
  -
  -     return XalanDOMString(&*theConvertedString.begin(), 
theConvertedString.size());
  -#else
        XalanDOMString  theConvertedString;
   
        TransformString(
  @@ -695,7 +647,6 @@
                        theFunction);
   
        return theConvertedString;
  -#endif
   }
   
   
  @@ -1574,23 +1525,12 @@
                        ++theCharsWritten;
                }
   
  -#if defined(XALAN_USE_STD_STRING) && defined(XALAN_OLD_STD_STRING)
  -             XalanDOMChar    theTemp[sizeof(theBuffer)];
  -
  -             TranscodeNumber(
  -                             theBuffer,
  -                             theBuffer + theCharsWritten,
  -                             theTemp);
  -
  -             theResult = XalanDOMString(theTemp, theCharsWritten);
  -#else
                reserve(theResult, theCharsWritten + 1);
   
                TranscodeNumber(
                                theBuffer,
                                theBuffer + theCharsWritten,
                                back_inserter(theResult));
  -#endif
        }
   
        return theResult;
  
  
  
  1.42      +56 -66    xml-xalan/c/src/PlatformSupport/DOMStringHelper.hpp
  
  Index: DOMStringHelper.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/DOMStringHelper.hpp,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- DOMStringHelper.hpp       2001/01/08 18:15:31     1.41
  +++ DOMStringHelper.hpp       2001/02/08 21:38:57     1.42
  @@ -546,11 +546,7 @@
   {
        return startsWith(
                        theString,
  -#if defined(XALAN_USE_STD_STRING)
  -                     TranscodeFromLocalCodePage(theSubstring));
  -#else
                        XalanDOMString(theSubstring));
  -#endif
   }
   
   
  @@ -1821,14 +1817,7 @@
                        const XalanDOMString&   theLHS,
                        const XalanDOMString&   theRHS)
   {
  -#if defined(XALAN_USE_STD_STRING)
  -     const unsigned int      theLHSLength = length(theLHS);
  -
  -     return theLHSLength != length(theRHS) ? false :
  -             equals(toCharArray(theLHS), toCharArray(theRHS), theLHSLength);
  -#else
        return theLHS == theRHS;
  -#endif
   }
   
   
  @@ -1847,12 +1836,8 @@
   {
        assert(theLHS != 0);
   
  -#if defined(XALAN_USE_STD_STRING)
  -     return equals(theLHS, c_wstr(theRHS));
  -#else
        // Swap them...
        return theRHS == theLHS;
  -#endif
   }
   
   
  @@ -1894,11 +1879,7 @@
        }
        else
        {
  -#if defined(XALAN_USE_STD_STRING)
  -             return theLHS == TranscodeFromLocalCodePage(theRHS);
  -#else
                return theLHS == XalanDOMString(theRHS, theRHSLength);
  -#endif
        }
   }
   
  @@ -1942,11 +1923,7 @@
        }
        else
        {
  -#if defined(XALAN_USE_STD_STRING)
  -             return equals(TranscodeFromLocalCodePage(theRHS), theLHS);
  -#else
                return equals(XalanDOMString(theRHS, theRHSLength), theLHS);
  -#endif
        }
   }
   
  @@ -2195,49 +2172,6 @@
   
   
   
  -#if defined(XALAN_USE_STD_STRING)
  -
  -inline const XalanDOMString
  -operator+(
  -                     const char*                             theLHS,
  -                     const XalanDOMString&   theRHS)
  -{
  -     return TranscodeFromLocalCodePage(theLHS) + theRHS;
  -}
  -
  -
  -
  -inline const XalanDOMString
  -operator+(
  -                     const XalanDOMString&   theLHS,
  -                     const char*                             theRHS)
  -{
  -     return theLHS + TranscodeFromLocalCodePage(theRHS);
  -}
  -
  -
  -
  -inline const XalanDOMString
  -operator+(
  -                     const XalanDOMChar*             theLHS,
  -                     const XalanDOMString&   theRHS)
  -{
  -     return XalanDOMString(theLHS) + theRHS;
  -}
  -
  -
  -
  -inline const XalanDOMString
  -operator+(
  -                     const XalanDOMString&   theLHS,
  -                     const XalanDOMChar*             theRHS)
  -{
  -     return theLHS + XalanDOMString(theRHS);
  -}
  -#endif
  -
  -
  -
   /**
    * Assign one string to another
    * 
  @@ -2395,6 +2329,14 @@
   
   
   
  +/**
  + * Insert a string into another string.
  + * 
  + * @param theString target string
  + * @param thePosition The position in the target string to insert
  + * @param theStringToInsert The string to insert
  + * @return A reference to the target string
  + */
   inline XalanDOMString&
   insert(
                        XalanDOMString&                 theString,
  @@ -2409,6 +2351,27 @@
   
   
   /**
  + * Insert a string into another string.
  + * 
  + * @param theString target string
  + * @param thePosition The position in the target string to insert
  + * @param theStringToInsert The string to insert
  + * @return A reference to the target string
  + */
  +inline XalanDOMString&
  +insert(
  +                     XalanDOMString&                 theString,
  +                     unsigned int                    thePosition,
  +                     const XalanDOMChar*             theStringToInsert)
  +{
  +     theString.insert(thePosition, theStringToInsert);
  +
  +     return theString;
  +}
  +
  +
  +
  +/**
    * Remove trailing whitespace
    * 
    * @param theString         target string
  @@ -2427,7 +2390,34 @@
   inline void
   clear(XalanDOMString&        theString)
   {
  +     theString.clear();
  +}
  +
  +
  +
  +/**
  + * Remove all elements from target string
  + * 
  + * @param theString target string
  + */
  +inline void
  +erase(XalanDOMString&        theString)
  +{
        theString.erase();
  +}
  +
  +
  +
  +/**
  + * Remove all elements from target string
  + * and frees all allocated memory.
  + * 
  + * @param theString target string
  + */
  +inline void
  +releaseMemory(XalanDOMString&        theString)
  +{
  +     XalanDOMString().swap(theString);
   }
   
   
  
  
  
  1.13      +14 -25    
xml-xalan/c/src/PlatformSupport/NamedNodeMapAttributeList.cpp
  
  Index: NamedNodeMapAttributeList.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/PlatformSupport/NamedNodeMapAttributeList.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- NamedNodeMapAttributeList.cpp     2001/01/23 23:18:39     1.12
  +++ NamedNodeMapAttributeList.cpp     2001/02/08 21:38:59     1.13
  @@ -64,9 +64,22 @@
   
   
   #include "DOMStringHelper.hpp"
  +#include "XalanUnicode.hpp"
   
   
   
  +const XalanDOMChar   NamedNodeMapAttributeList::s_typeString[] = 
  +{
  +     XalanUnicode::charLetter_C,
  +     XalanUnicode::charLetter_D,
  +     XalanUnicode::charLetter_A,
  +     XalanUnicode::charLetter_T,
  +     XalanUnicode::charLetter_A,
  +     0
  +};
  +
  +
  +
   NamedNodeMapAttributeList::NamedNodeMapAttributeList(const 
XalanNamedNodeMap&        theMap) :
        m_nodeMap(theMap),
        m_lastIndex(theMap.getLength() - 1)
  @@ -114,7 +127,7 @@
   {
        assert(length(s_typeString) > 0);
   
  -     return c_wstr(s_typeString);
  +     return s_typeString;
   }
   
   
  @@ -177,28 +190,4 @@
   NamedNodeMapAttributeList::getValue(const char* const name) const
   {
        return getValue(c_wstr(TranscodeFromLocalCodePage(name)));
  -}
  -
  -
  -
  -static XalanDOMString        s_typeString;
  -
  -
  -
  -const XalanDOMString&        NamedNodeMapAttributeList::s_typeString = 
::s_typeString;
  -
  -
  -
  -void
  -NamedNodeMapAttributeList::initialize()
  -{
  -     ::s_typeString = XALAN_STATIC_UCODE_STRING("CDATA");
  -}
  -
  -
  -
  -void
  -NamedNodeMapAttributeList::terminate()
  -{
  -     clear(::s_typeString);
   }
  
  
  
  1.7       +11 -26    
xml-xalan/c/src/PlatformSupport/NamedNodeMapAttributeList.hpp
  
  Index: NamedNodeMapAttributeList.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/PlatformSupport/NamedNodeMapAttributeList.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- NamedNodeMapAttributeList.hpp     2001/01/23 23:18:42     1.6
  +++ NamedNodeMapAttributeList.hpp     2001/02/08 21:39:01     1.7
  @@ -84,21 +84,6 @@
   {
   public:
   
  -     /**
  -      * Initialize static data.  Must be called before any
  -      * other functions are called.  See PlatformSupportInit.
  -      */
  -     static void
  -     initialize();
  -
  -     /**
  -      * Destroy static data.  After thus function is called,
  -      * no other functions can be called.  See PlatformSupportInit.
  -      */
  -     static void
  -     terminate();
  -
  -
        explicit
        NamedNodeMapAttributeList(const XalanNamedNodeMap&      theMap);
   
  @@ -109,22 +94,22 @@
       virtual unsigned int
        getLength() const;
   
  -    virtual const XMLCh*
  +    virtual const XalanDOMChar*
        getName(const unsigned int index) const;
   
  -    virtual const XMLCh*
  +    virtual const XalanDOMChar*
        getType(const unsigned int index) const;
   
  -    virtual const XMLCh*
  +    virtual const XalanDOMChar*
        getValue(const unsigned int index) const;
   
  -    virtual const XMLCh*
  -     getType(const XMLCh* const name) const;
  +    virtual const XalanDOMChar*
  +     getType(const XalanDOMChar* const name) const;
   
  -    virtual const XMLCh*
  -     getValue(const XMLCh* const name) const;
  +    virtual const XalanDOMChar*
  +     getValue(const XalanDOMChar* const name) const;
   
  -     virtual const XMLCh* 
  +     virtual const XalanDOMChar* 
        getValue(const char* const name) const;
   
   private:
  @@ -137,11 +122,11 @@
        operator==(const NamedNodeMapAttributeList&);
   
        // Data members...
  -     const XalanNamedNodeMap&                m_nodeMap;
  +     const XalanNamedNodeMap&        m_nodeMap;
   
  -     const unsigned int                              m_lastIndex;
  +     const unsigned int                      m_lastIndex;
   
  -     static const XalanDOMString&    s_typeString;
  +     static const XalanDOMChar       s_typeString[];
   };
   
   
  
  
  
  1.4       +0 -20     xml-xalan/c/src/PlatformSupport/PlatformSupportInit.cpp
  
  Index: PlatformSupportInit.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/PlatformSupportInit.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PlatformSupportInit.cpp   2000/09/27 16:24:01     1.3
  +++ PlatformSupportInit.cpp   2001/02/08 21:39:02     1.4
  @@ -60,10 +60,6 @@
   
   
   #include "DOMStringHelper.hpp"
  -#include "NamedNodeMapAttributeList.hpp"
  -#include "PrintWriter.hpp"
  -#include "URISupport.hpp"
  -#include "XalanNumberFormat.hpp"
   #include "XalanTranscodingServices.hpp"
   
   
  @@ -103,14 +99,6 @@
        DOMStringHelperInitialize();
   
        XalanTranscodingServices::initialize();
  -
  -     PrintWriter::initialize();
  -
  -     NamedNodeMapAttributeList::initialize();
  -
  -     XalanNumberFormat::initialize();
  -
  -     URISupport::initialize();
   }
   
   
  @@ -118,14 +106,6 @@
   void
   PlatformSupportInit::terminate()
   {
  -     URISupport::terminate();
  -
  -     XalanNumberFormat::terminate();
  -
  -     NamedNodeMapAttributeList::terminate();
  -
  -     PrintWriter::terminate();
  -
        XalanTranscodingServices::terminate();
   
        DOMStringHelperTerminate();
  
  
  
  1.3       +25 -35    xml-xalan/c/src/PlatformSupport/PrintWriter.cpp
  
  Index: PrintWriter.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/PrintWriter.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PrintWriter.cpp   2000/09/05 02:24:45     1.2
  +++ PrintWriter.cpp   2001/02/08 21:39:03     1.3
  @@ -60,57 +60,47 @@
   
   
   #include "DOMStringHelper.hpp"
  +#include "XalanUnicode.hpp"
   
   
   
  -PrintWriter::PrintWriter(bool        fAutoFlush) :
  -     Writer(),
  -     m_fAutoFlush(fAutoFlush)
  +const XalanDOMChar   PrintWriter::s_trueString[] =
   {
  -}
  -
  +     XalanUnicode::charLetter_t,
  +     XalanUnicode::charLetter_r,
  +     XalanUnicode::charLetter_u,
  +     XalanUnicode::charLetter_e,
  +     0
  +};
   
   
  -PrintWriter::~PrintWriter()
  +const XalanDOMChar   PrintWriter::s_falseString[] =
   {
  -}
  -
  -
  -
  -static XalanDOMString        s_trueString;
  -
  -static XalanDOMString        s_falseString;
  -
  -static XalanDOMString        s_newlineString;
  +     XalanUnicode::charLetter_f,
  +     XalanUnicode::charLetter_a,
  +     XalanUnicode::charLetter_l,
  +     XalanUnicode::charLetter_s,
  +     XalanUnicode::charLetter_e,
  +     0
  +};
   
   
  -const XalanDOMString&        PrintWriter::s_trueString = ::s_trueString;
  -
  -const XalanDOMString&        PrintWriter::s_falseString = ::s_falseString;
  -
  -const XalanDOMString&        PrintWriter::s_newlineString = 
::s_newlineString;
  +const XalanDOMChar   PrintWriter::s_newlineString[] =
  +{
  +     XalanUnicode::charLF,
  +     0
  +};
   
   
   
  -void
  -PrintWriter::initialize()
  +PrintWriter::PrintWriter(bool        fAutoFlush) :
  +     Writer(),
  +     m_fAutoFlush(fAutoFlush)
   {
  -     ::s_trueString = XALAN_STATIC_UCODE_STRING("true");
  -
  -     ::s_falseString = XALAN_STATIC_UCODE_STRING("false");
  -
  -     // $$$ ToDo: Does this need to be \r\n for some platforms?
  -     ::s_newlineString = XALAN_STATIC_UCODE_STRING("\n");
   }
   
   
   
  -void
  -PrintWriter::terminate()
  +PrintWriter::~PrintWriter()
   {
  -     clear(::s_trueString);
  -
  -     clear(::s_falseString);
  -
  -     clear(::s_newlineString);
   }
  
  
  
  1.10      +3 -19     xml-xalan/c/src/PlatformSupport/PrintWriter.hpp
  
  Index: PrintWriter.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/PrintWriter.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- PrintWriter.hpp   2000/09/05 02:24:45     1.9
  +++ PrintWriter.hpp   2001/02/08 21:39:04     1.10
  @@ -74,21 +74,6 @@
   public:
   
        /**
  -      * Initialize static data.  Must be called before any
  -      * other functions are called.  See PlatformSupportInit.
  -      */
  -     static void
  -     initialize();
  -
  -     /**
  -      * Destroy static data.  After thus function is called,
  -      * no other functions can be called.  See PlatformSupportInit.
  -      */
  -     static void
  -     terminate();
  -
  -
  -     /**
         * Constructor
         * 
         * @param fAutoFlush if true, the output will not be buffered
  @@ -98,7 +83,6 @@
        virtual
        ~PrintWriter();
   
  -     
        /**
         * Flush the stream, then check the error status.
         * 
  @@ -205,11 +189,11 @@
        const bool                                              m_fAutoFlush;
   
        // Some static strings to help derived classes...
  -     static const XalanDOMString&    s_trueString;
  +     static const XalanDOMChar       s_trueString[];
   
  -     static const XalanDOMString&    s_falseString;
  +     static const XalanDOMChar       s_falseString[];
   
  -     static const XalanDOMString&    s_newlineString;
  +     static const XalanDOMChar       s_newlineString[];
   
   private:
   
  
  
  
  1.12      +38 -39    xml-xalan/c/src/PlatformSupport/URISupport.cpp
  
  Index: URISupport.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/URISupport.cpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- URISupport.cpp    2000/11/02 01:45:37     1.11
  +++ URISupport.cpp    2001/02/08 21:39:05     1.12
  @@ -72,6 +72,35 @@
   
   
   
  +const XalanDOMChar   URISupport::s_fileProtocolString1[] =
  +{
  +     XalanUnicode::charLetter_f,
  +     XalanUnicode::charLetter_i,
  +     XalanUnicode::charLetter_l,
  +     XalanUnicode::charLetter_e,
  +     XalanUnicode::charColon,
  +     XalanUnicode::charSolidus,
  +     XalanUnicode::charSolidus,
  +     0
  +};
  +
  +
  +
  +const XalanDOMChar   URISupport::s_fileProtocolString2[] =
  +{
  +     XalanUnicode::charLetter_f,
  +     XalanUnicode::charLetter_i,
  +     XalanUnicode::charLetter_l,
  +     XalanUnicode::charLetter_e,
  +     XalanUnicode::charColon,
  +     XalanUnicode::charSolidus,
  +     XalanUnicode::charSolidus,
  +     XalanUnicode::charSolidus,
  +     0
  +};
  +
  +
  +
   URISupport::URLAutoPtrType
   URISupport::getURLFromString(const XalanDOMString&   urlString)
   {
  @@ -135,7 +164,7 @@
                else
                {
                        // Assume it's a file specification...
  -                     XalanArrayAutoPtr<XMLCh>        
theFullPath(XMLPlatformUtils::getFullPath(c_wstr(urlString)));
  +                     XalanArrayAutoPtr<XalanDOMChar>         
theFullPath(XMLPlatformUtils::getFullPath(c_wstr(urlString)));
                        assert(theFullPath.get() != 0);
   
                        theNormalizedURI = theFullPath.get();
  @@ -143,12 +172,14 @@
   
                        NormalizeURIText(theNormalizedURI);
   
  -                     const XalanDOMString    theFilePrefix(
  -                                             indexOf(theNormalizedURI, 
XalanUnicode::charSolidus) == 0 ?
  -                                             s_fileProtocolString1 :
  -                                             s_fileProtocolString2);
  -
  -                     theNormalizedURI = theFilePrefix + theNormalizedURI;
  +                     if (indexOf(theNormalizedURI, 
XalanUnicode::charSolidus) == 0)
  +                     {
  +                             insert(theNormalizedURI, 0, 
&s_fileProtocolString1[0]);
  +                     }
  +                     else
  +                     {
  +                             insert(theNormalizedURI, 0, 
&s_fileProtocolString2[0]);
  +                     }
                }
        }
   
  @@ -313,36 +344,4 @@
   
   URISupport::InvalidURIException::~InvalidURIException()
   {
  -}
  -
  -
  -
  -static XalanDOMString        s_fileProtocolString1;
  -
  -static XalanDOMString        s_fileProtocolString2;
  -
  -
  -
  -const XalanDOMString&        URISupport::s_fileProtocolString1 = 
::s_fileProtocolString1;
  -
  -const XalanDOMString&        URISupport::s_fileProtocolString2 = 
::s_fileProtocolString2;
  -
  -
  -
  -void
  -URISupport::initialize()
  -{
  -     ::s_fileProtocolString1 = XALAN_STATIC_UCODE_STRING("file://");
  -
  -     ::s_fileProtocolString2 = XALAN_STATIC_UCODE_STRING("file:///");
  -}
  -
  -
  -
  -void
  -URISupport::terminate()
  -{
  -     clear(::s_fileProtocolString1);
  -
  -     clear(::s_fileProtocolString2);
   }
  
  
  
  1.6       +2 -17     xml-xalan/c/src/PlatformSupport/URISupport.hpp
  
  Index: URISupport.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/URISupport.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- URISupport.hpp    2000/11/02 01:45:37     1.5
  +++ URISupport.hpp    2001/02/08 21:39:07     1.6
  @@ -87,21 +87,6 @@
        typedef XalanAutoPtr<XMLURL>    URLAutoPtrType;
   
        /**
  -      * Initialize static data.  Must be called before any
  -      * other functions are called.  See PlatformSupportInit.
  -      */
  -     static void
  -     initialize();
  -
  -     /**
  -      * Destroy static data.  After thus function is called,
  -      * no other functions can be called.  See PlatformSupportInit.
  -      */
  -     static void
  -     terminate();
  -
  -
  -     /**
         * Determine the fully qualified URI for a string.
         *
         * @param urlString string to qualify
  @@ -212,9 +197,9 @@
        };
   
   
  -     static const XalanDOMString&    s_fileProtocolString1;
  +     static const XalanDOMChar       s_fileProtocolString1[];
   
  -     static const XalanDOMString&    s_fileProtocolString2;
  +     static const XalanDOMChar       s_fileProtocolString2[];
   };
   
   
  
  
  
  1.7       +9 -24     xml-xalan/c/src/PlatformSupport/XalanNumberFormat.cpp
  
  Index: XalanNumberFormat.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/XalanNumberFormat.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XalanNumberFormat.cpp     2000/11/02 01:45:38     1.6
  +++ XalanNumberFormat.cpp     2001/02/08 21:39:08     1.7
  @@ -64,9 +64,18 @@
   
   #include "DOMStringHelper.hpp"
   #include "STLHelper.hpp"
  +#include "XalanUnicode.hpp"
   
   
   
  +const XalanDOMChar   XalanNumberFormat::s_defaultGroupingSeparator[] = 
  +{
  +     XalanUnicode::charComma,
  +     0
  +};
  +
  +
  +
   XalanNumberFormat::XalanNumberFormat() :
        m_isGroupingUsed(false),
        m_groupingSeparator(s_defaultGroupingSeparator),
  @@ -198,28 +207,4 @@
   XalanNumberFormat::setGroupingSeparator(const XalanDOMString&        s)
   {
        m_groupingSeparator = s;
  -}
  -
  -
  -
  -static XalanDOMString        s_defaultGroupingSeparator;
  -
  -
  -
  -const XalanDOMString&        XalanNumberFormat::s_defaultGroupingSeparator = 
::s_defaultGroupingSeparator;
  -
  -
  -
  -void
  -XalanNumberFormat::initialize()
  -{
  -     ::s_defaultGroupingSeparator = XALAN_STATIC_UCODE_STRING(",");
  -}
  -
  -
  -
  -void
  -XalanNumberFormat::terminate()
  -{
  -     clear(::s_defaultGroupingSeparator);
   }
  
  
  
  1.3       +4 -19     xml-xalan/c/src/PlatformSupport/XalanNumberFormat.hpp
  
  Index: XalanNumberFormat.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/XalanNumberFormat.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XalanNumberFormat.hpp     2000/09/05 02:24:45     1.2
  +++ XalanNumberFormat.hpp     2001/02/08 21:39:09     1.3
  @@ -72,21 +72,6 @@
   {
   public:
   
  -     /**
  -      * Initialize static data.  Must be called before any
  -      * other functions are called.  See PlatformSupportInit.
  -      */
  -     static void
  -     initialize();
  -
  -     /**
  -      * Destroy static data.  After thus function is called,
  -      * no other functions can be called.  See PlatformSupportInit.
  -      */
  -     static void
  -     terminate();
  -
  -
        explicit
        XalanNumberFormat();
   
  @@ -187,13 +172,13 @@
        operator==(const XalanNumberFormat&);
   
        // Data members...
  -     bool                                                    
m_isGroupingUsed;
  +     bool                                            m_isGroupingUsed;
   
  -     XalanDOMString                                  m_groupingSeparator;
  +     XalanDOMString                          m_groupingSeparator;
   
  -     int                                                             
m_groupingSize;
  +     int                                                     m_groupingSize;
   
  -     static const XalanDOMString&    s_defaultGroupingSeparator;
  +     static const XalanDOMChar       s_defaultGroupingSeparator[];
   };
   
   
  
  
  
  1.8       +17 -5     xml-xalan/c/src/PlatformSupport/XalanOutputStream.cpp
  
  Index: XalanOutputStream.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/XalanOutputStream.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XalanOutputStream.cpp     2001/01/27 20:38:01     1.7
  +++ XalanOutputStream.cpp     2001/02/08 21:39:11     1.8
  @@ -112,7 +112,19 @@
   void
   XalanOutputStream::write(XalanDOMChar        theChar)
   {
  -     write(&theChar, 1);
  +     if (m_bufferSize == 0)
  +     {
  +             doWrite(&theChar, 1);
  +     }
  +     else
  +     {
  +             if (m_buffer.size() == m_bufferSize)
  +             {
  +                     flushBuffer();
  +             }
  +
  +             m_buffer.push_back(theChar);
  +     }
   }
   
   
  @@ -364,17 +376,17 @@
   
        typedef XalanTranscodingServices::XalanXMLByteVectorType        
XalanXMLByteVectorType;
   
  -     const XalanXMLByteVectorType&   theProlog =
  +     const XalanTranscodingServices::XalanXMLByte*   theProlog =
                XalanTranscodingServices::getStreamProlog(theEncoding);
   
  -     const XalanXMLByteVectorType::size_type         theSize = 
theProlog.size();
  +     const unsigned int      theSize = 
XalanTranscodingServices::length(theProlog);
   
        if (theSize > 0)
        {
   #if defined(XALAN_OLD_STYLE_CASTS)
  -             write((const char*)&theProlog[0], theProlog.size());
  +             write((const char*)theProlog, theSize);
   #else
  -             write(reinterpret_cast<const char*>(&theProlog[0]), 
theProlog.size());
  +             write(reinterpret_cast<const char*>(theProlog), theSize);
   #endif
        }
   }
  
  
  
  1.5       +37 -37    
xml-xalan/c/src/PlatformSupport/XalanTranscodingServices.cpp
  
  Index: XalanTranscodingServices.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/PlatformSupport/XalanTranscodingServices.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XalanTranscodingServices.cpp      2000/11/02 01:45:39     1.4
  +++ XalanTranscodingServices.cpp      2001/02/08 21:39:12     1.5
  @@ -143,6 +143,39 @@
   
   
   
  +const XalanTranscodingServices::XalanXMLByte 
XalanTranscodingServices::s_dummyByteOrderMark[] =
  +{
  +     XalanXMLByte(0)
  +};
  +
  +
  +
  +const XalanTranscodingServices::XalanXMLByte 
XalanTranscodingServices::s_UTF8ByteOrderMark[] =
  +{
  +     XalanXMLByte(0xEF),
  +     XalanXMLByte(0xBB),
  +     XalanXMLByte(0xBF),
  +     XalanXMLByte(0)
  +};
  +
  +
  +
  +const XalanTranscodingServices::XalanXMLByte 
XalanTranscodingServices::s_UTF16ByteOrderMark[] =
  +{
  +#if defined(XALAN_LITLE_ENDIAN)
  +     XalanXMLByte(0xFF),
  +     XalanXMLByte(0xFE),
  +#elif defined(XALAN_BIG_ENDIAN)
  +     XalanXMLByte(0xFE),
  +     XalanXMLByte(0xFF),
  +#else
  +#error The platform must define the byte order!
  +#endif
  +     XalanXMLByte(0)
  +};
  +
  +
  +
   static XalanTranscodingServices::eCode
   translateCode(XMLTransService::Codes theCode)
   {
  @@ -246,32 +279,24 @@
   }
   
   
  -
  -// Some vectors for containing byte-order marks, or other leading bytes
  -// that would indicate the encoding.
  -static const XalanTranscodingServices::XalanXMLByteVectorType        
s_dummyVector;
  -static XalanTranscodingServices::XalanXMLByteVectorType                      
s_UTF8Vector;
  -static XalanTranscodingServices::XalanXMLByteVectorType                      
s_UTF16Vector;
  -
   
  -
  -const XalanTranscodingServices::XalanXMLByteVectorType&
  +const XalanTranscodingServices::XalanXMLByte*
   XalanTranscodingServices::getStreamProlog(const XalanDOMString&              
theEncodingName)
   {
        if (compareIgnoreCase(c_wstr(theEncodingName), s_utf16String) == 0)
        {
  -             return s_UTF16Vector;
  +             return s_UTF16ByteOrderMark;
        }
   #if 0
        // We won't do this for now...
        else if (compareIgnoreCase(c_wstr(theEncodingName), s_utf8String) == 0)
        {
  -             return s_UTF8Vector;
  +             return s_UTF8ByteOrderMark;
        }
   #endif
        else
        {
  -             return s_dummyVector;
  +             return s_dummyByteOrderMark;
        }
   }
   
  @@ -406,28 +431,6 @@
   void
   XalanTranscodingServices::initialize()
   {
  -     s_UTF8Vector.reserve(3);
  -
  -     // These are the characters that comprise the
  -     // UTF-8 byte-order mark.
  -     s_UTF8Vector.push_back(0xEF);
  -     s_UTF8Vector.push_back(0xBB);
  -     s_UTF8Vector.push_back(0xBF);
  -
  -     s_UTF16Vector.reserve(2);
  -
  -     // The byte order mark varies, since we're writing
  -     // UTF-16 out in the platform's endian-ness.
  -#if defined(XALAN_LITLE_ENDIAN)
  -     s_UTF16Vector.push_back(0xFF);
  -     s_UTF16Vector.push_back(0xFE);
  -#elif defined(XALAN_BIG_ENDIAN)
  -     s_UTF16Vector.push_back(0xFE);
  -     s_UTF16Vector.push_back(0xFF);
  -#else
  -#error The platform must define the byte order!
  -#endif
  -
        initMaximumCharacterValueMap(::s_maximumCharacterValues);
   }
   
  @@ -436,8 +439,5 @@
   void
   XalanTranscodingServices::terminate()
   {
  -     XalanXMLByteVectorType().swap(s_UTF16Vector);
  -     XalanXMLByteVectorType().swap(s_UTF8Vector);
  -
        MaximumCharacterValueMapType().swap(::s_maximumCharacterValues);
   }
  
  
  
  1.3       +36 -16    
xml-xalan/c/src/PlatformSupport/XalanTranscodingServices.hpp
  
  Index: XalanTranscodingServices.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/PlatformSupport/XalanTranscodingServices.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XalanTranscodingServices.hpp      2000/10/07 15:23:41     1.2
  +++ XalanTranscodingServices.hpp      2001/02/08 21:39:14     1.3
  @@ -64,6 +64,7 @@
   
   
   
  +#include <cassert>
   #include <map>
   #include <vector>
   
  @@ -85,8 +86,35 @@
   {
   public:
   
  +     /**
  +      * Perform static initialization.  See class PlatformSupportInit.
  +      */
  +     static void
  +     initialize();
  + 
  +     /**
  +      * Perform static shut down.  See class PlatformSupportInit.
  +      */
  +     static void
  +     terminate();
  +
        typedef unsigned char   XalanXMLByte;
   
  +     static unsigned int
  +     length(const XalanXMLByte*      theBytes)
  +     {
  +             assert(theBytes != 0);
  +
  +             const XalanXMLByte*             theCurrentByte = theBytes;
  +
  +             while(*theCurrentByte != 0)
  +             {
  +                     ++theCurrentByte;
  +             }
  +
  +             return theCurrentByte - theBytes;
  +     }
  +
   #if defined(XALAN_NO_NAMESPACES)
        typedef map<XalanDOMString,
                                XalanDOMChar,
  @@ -98,18 +126,6 @@
        typedef std::vector<XalanXMLByte>       XalanXMLByteVectorType;
   #endif
   
  -     /**
  -      * Perform static initialization.  See class PlatformSupportInit.
  -      */
  -     static void
  -     initialize();
  -
  -     /**
  -      * Perform static shut down.  See class PlatformSupportInit.
  -      */
  -     static void
  -     terminate();
  -
       enum eCode
       {
                OK,
  @@ -179,17 +195,17 @@
        encodingIsUTF16(const XalanDOMString&   theEncodingName);
   
        /**
  -      * Get a vector that contains any leading bytes that should be
  +      * Get an array that contains any leading bytes that should be
         * written to an XML stream for the specified encoding.  For example,
         * if the encoding is UTF-16, the vector will contain the appropriate
         * byte order mark for the current platform.  If there is no
         * prolog for the encoding, or the encoding is unknown, an empty
  -      * vector is returned.
  +      * array is returned.
         * 
         * @param theEncodingName The name of the desired output encoding.
  -      * @return A reference to a vector containing the appropriate bytes.
  +      * @return An array containing the appropriate bytes.
         */
  -     static const XalanXMLByteVectorType&
  +     static const XalanXMLByte*
        getStreamProlog(const XalanDOMString&   theEncodingName);
   
        /**
  @@ -260,6 +276,10 @@
        };
   
   private:
  +
  +     static const XalanXMLByte       s_dummyByteOrderMark[];
  +     static const XalanXMLByte       s_UTF8ByteOrderMark[];
  +     static const XalanXMLByte       s_UTF16ByteOrderMark[];
   
        static const MaximumCharacterValueMapType&      
s_maximumCharacterValues;
   };
  
  
  
  1.5       +6 -0      xml-xalan/c/src/PlatformSupport/XalanUnicode.hpp
  
  Index: XalanUnicode.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/XalanUnicode.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XalanUnicode.hpp  2000/12/01 21:36:15     1.4
  +++ XalanUnicode.hpp  2001/02/08 21:39:15     1.5
  @@ -188,9 +188,12 @@
                charLetter_o                    = 0x6F,
                charLetter_p                    = 0x70,
                charLetter_q                    = 0x71,
  +             charLetter_r                    = 0x72,
                charLetter_s                    = 0x73,
                charLetter_t                    = 0x74,
                charLetter_u                    = 0x75,
  +             charLetter_w                    = 0x77,
  +             charLetter_x                    = 0x78,
                charLetter_y                    = 0x79,
                charLetter_z                    = 0x7A,
   
  @@ -313,9 +316,12 @@
        static const XalanDOMChar       charLetter_o                    = 0x6F;
        static const XalanDOMChar       charLetter_p                    = 0x70;
        static const XalanDOMChar       charLetter_q                    = 0x71;
  +     static const XalanDOMChar       charLetter_r                    = 0x72;
        static const XalanDOMChar       charLetter_s                    = 0x73;
        static const XalanDOMChar       charLetter_t                    = 0x74;
        static const XalanDOMChar       charLetter_u                    = 0x75;
  +     static const XalanDOMChar       charLetter_w                    = 0x77;
  +     static const XalanDOMChar       charLetter_x                    = 0x78;
        static const XalanDOMChar       charLetter_y                    = 0x79;
        static const XalanDOMChar       charLetter_z                    = 0x7A;
   
  
  
  

Reply via email to