You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by pe...@apache.org on 2004/05/25 20:11:47 UTC

cvs commit: xml-xerces/c/src/xercesc/util XMLUri.cpp XMLUri.hpp

peiyongz    2004/05/25 11:11:47

  Modified:    c/src/xercesc/util XMLUri.cpp XMLUri.hpp
  Log:
  normalizeURI() added
  
  Revision  Changes    Path
  1.25      +33 -1     xml-xerces/c/src/xercesc/util/XMLUri.cpp
  
  Index: XMLUri.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLUri.cpp,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- XMLUri.cpp	4 Feb 2004 13:14:15 -0000	1.24
  +++ XMLUri.cpp	25 May 2004 18:11:46 -0000	1.25
  @@ -1645,6 +1645,7 @@
           return false;
   
       const XMLCh* tmpStr = uricString;
  +
       while (*tmpStr)
       {
           if (isReservedOrUnreservedCharacter(*tmpStr))            
  @@ -2541,6 +2542,37 @@
       } //if (pathStrLen...)
   
       return true;
  +}
  +
  +/***
  + * [Bug7698]: filenames with embedded spaces in schemaLocation strings not handled properly
  + *
  + * This method is called when Scanner/TraverseSchema knows that the URI reference is
  + * for local file.
  + *
  + ***/ 
  +void XMLUri::normalizeURI(const XMLCh*     const systemURI,
  +                                XMLBuffer&       normalizedURI)
  +{
  +    const XMLCh* pszSrc = systemURI;
  +
  +    normalizedURI.reset();
  +
  +    while (*pszSrc) {
  +
  +        if ((*(pszSrc) == chPercent)
  +        &&  (*(pszSrc+1) == chDigit_2)
  +        &&  (*(pszSrc+2) == chDigit_0))
  +        {
  +            pszSrc += 3;
  +            normalizedURI.append(chSpace);
  +        }
  +        else 
  +        {
  +            normalizedURI.append(*pszSrc);
  +            pszSrc++;
  +        }
  +    }
   }
   
   /***
  
  
  
  1.17      +9 -1      xml-xerces/c/src/xercesc/util/XMLUri.hpp
  
  Index: XMLUri.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLUri.hpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- XMLUri.hpp	12 Jan 2004 22:01:02 -0000	1.16
  +++ XMLUri.hpp	25 May 2004 18:11:47 -0000	1.17
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.17  2004/05/25 18:11:47  peiyongz
  + * normalizeURI() added
  + *
    * Revision 1.16  2004/01/12 22:01:02  cargilld
    * Minor performance change for handling reserved and unreserved characters.
    *
  @@ -147,6 +150,7 @@
   #include <xercesc/util/XMLString.hpp>
   
   #include <xercesc/internal/XSerializable.hpp>
  +#include <xercesc/framework/XMLBuffer.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  @@ -418,6 +422,10 @@
        */
       static bool isValidURI( bool haveBaseURI
                             , const XMLCh* const uriStr);
  +
  +
  +    static void normalizeURI(const XMLCh*     const systemURI,
  +                                   XMLBuffer&       normalizedURI);
   
       /***
        * Support for Serialization/De-serialization
  
  
  

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