dbertoni    2003/09/17 17:35:00

  Modified:    c/src/xalanc/XalanEXSLT XalanEXSLTString.cpp
  Log:
  A few tweaks to the patch.
  
  Revision  Changes    Path
  1.3       +14 -14    xml-xalan/c/src/xalanc/XalanEXSLT/XalanEXSLTString.cpp
  
  Index: XalanEXSLTString.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XalanEXSLT/XalanEXSLTString.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XalanEXSLTString.cpp      17 Sep 2003 21:40:00 -0000      1.2
  +++ XalanEXSLTString.cpp      18 Sep 2003 00:35:00 -0000      1.3
  @@ -331,11 +331,10 @@
        XalanUnicode::charQuestionMark,
        XalanUnicode::charCommercialAt,
        XalanUnicode::charLeftSquareBracket,
  -     XalanUnicode::charRightSquareBracket,
  -     0
  +     XalanUnicode::charRightSquareBracket
   };
   const XalanDOMString::size_type 
  -XalanEXSLTFunctionEncodeURI::s_reservedCharsSize = 12;
  +XalanEXSLTFunctionEncodeURI::s_reservedCharsSize = sizeof(s_reservedChars) / 
sizeof(s_reservedChars[0]);;
   
   // Excluded URI characters
   const XalanDOMChar
  @@ -377,11 +376,12 @@
   
        const XalanDOMString& theString = args[0]->str();
        const bool            escapeReserved = args[1]->boolean();
  -     const XalanDOMString& theEncoding = 
  -             theSize == 3 ? args[2]->str() : 
XalanDOMString(XalanTranscodingServices::s_utf8String);
  +
  +     // We only support UTF-8, which is the default when there are only two 
arguments.
  +     const bool      fSupportedEncoding = theSize == 2 || 
XalanTranscodingServices::encodingIsUTF8(args[2]->str());
   
        if (theString.length() == 0 ||
  -             !XalanTranscodingServices::encodingIsUTF8(theEncoding))
  +             !fSupportedEncoding)
        {
                return 
executionContext.getXObjectFactory().createStringReference(s_emptyString);
        }       
  @@ -491,11 +491,11 @@
                   (theSize == 2 || args[1].null() == false));
   
       const XalanDOMString& theString = args[0]->str();
  -     const XalanDOMString& theEncoding = 
  -             theSize == 2 ? args[1]->str() : 
XalanDOMString(XalanTranscodingServices::s_utf8String);
   
  -     if (theString.length() == 0 ||
  -             !XalanTranscodingServices::encodingIsUTF8(theEncoding))
  +     // We only support UTF-8, which is the default when there's only one 
argument.
  +     const bool      fSupportedEncoding = theSize == 1 || 
XalanTranscodingServices::encodingIsUTF8(args[1]->str());
  +
  +     if (theString.length() == 0 || !fSupportedEncoding)
        {
                return 
executionContext.getXObjectFactory().createStringReference(s_emptyString);
        } 
  @@ -512,9 +512,9 @@
                        theResult+= ch;
                        continue;
                }
  -             
  +
                // escaped character
  -             
  +
                // count number of escaped octets
                XalanDOMString::size_type numOctets = 0;
                XalanDOMString::size_type j = i;
  @@ -526,7 +526,7 @@
                        ++numOctets;
                        j+= s_octetSize;
                }
  -             
  +
                // no complete sequences found
                if (numOctets < 1) {
                        break;
  @@ -546,7 +546,7 @@
                        XalanDOMChar byte2 = hexCharsToByte(executionContext, 
context, locator,
                                                                                
            theString[i+1],theString[i+2]);
                        i+=2;
  -     
  +
                        if (byte2 & 0x80 == 0) 
                        {
                                // invalid byte, bypass rest of this sequence
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to