cargilld    2005/03/20 11:02:46

  Modified:    c/src/xercesc/parsers DOMBuilderImpl.cpp
                        SAX2XMLReaderImpl.cpp
               c/src/xercesc/dom/impl DOMImplementationImpl.cpp
                        DOMWriterImpl.cpp
               c/src/xercesc/validators/DTD DTDScanner.cpp
               c/src/xercesc/util HexBin.cpp TransService.cpp XMLString.cpp
                        XMLString.hpp XMLURL.cpp
               c/src/xercesc/internal XMLReader.cpp XMLScanner.cpp
  Log:
  Implement versions of uppercase and compareIstring that only check a to z, 
instead of all characters, and don't rely on functionality provided in the 
transcoders.
  
  Revision  Changes    Path
  1.43      +91 -91    xml-xerces/c/src/xercesc/parsers/DOMBuilderImpl.cpp
  
  Index: DOMBuilderImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/DOMBuilderImpl.cpp,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- DOMBuilderImpl.cpp        7 Dec 2004 19:45:43 -0000       1.42
  +++ DOMBuilderImpl.cpp        20 Mar 2005 19:02:45 -0000      1.43
  @@ -125,22 +125,22 @@
   // 
---------------------------------------------------------------------------
   void DOMBuilderImpl::setFeature(const XMLCh* const name, const bool state)
   {
  -    if (XMLString::compareIString(name, XMLUni::fgDOMEntities) == 0) {
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgDOMEntities) == 0) {
           setCreateEntityReferenceNodes(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMComments) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMComments) == 
0) {
           setCreateCommentNodes(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMDatatypeNormalization) == 0) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMDatatypeNormalization) == 0) {
           getScanner()->setNormalizeData(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMNamespaces) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMNamespaces) 
== 0) {
           setDoNamespaces(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMWhitespaceInElementContent) == 0) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMWhitespaceInElementContent) == 0) {
           setIncludeIgnorableWhitespace(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMValidation) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidation) 
== 0) {
   
           fValidation = state;
   
  @@ -152,7 +152,7 @@
               setValidationScheme(AbstractDOMParser::Val_Never);
           }
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMValidateIfSchema) 
== 0) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMValidateIfSchema) == 0) {
   
           fAutoValidation = state;
   
  @@ -163,30 +163,30 @@
               setValidationScheme(AbstractDOMParser::Val_Never);
           }
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) {
           // in fact, setting this has no effect to the parser
           fCharsetOverridesXMLEncoding = state;
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMInfoset) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCanonicalForm) == 
0 ) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMInfoset) == 0 
||
  +             XMLString::compareIStringASCII(name, 
XMLUni::fgDOMCanonicalForm) == 0 ) {
           if (state)
               throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0, 
getMemoryManager());
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCDATASections) == 
0 ) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  +             XMLString::compareIStringASCII(name, 
XMLUni::fgDOMCDATASections) == 0 ) {
           if (!state)
               throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0, 
getMemoryManager());
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) == 
0)
       {
           setDoSchema(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaFullChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaFullChecking) == 0)
       {
           setValidationSchemaFullChecking(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesUserAdoptsDOMDocument) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesUserAdoptsDOMDocument) == 0)
       {
           if(state)
               fUserAdoptsDocument = true;
  @@ -194,56 +194,56 @@
               fUserAdoptsDocument = false;
       }
   
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesLoadExternalDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesLoadExternalDTD) == 0)
       {
           setLoadExternalDTD(state);
       }
   
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0)
       {
           setExitOnFirstFatalError(!state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0)
       {
           setValidationConstraintFatal(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0)
       {
           getScanner()->cacheGrammarFromParse(state);
   
           if (state)
               getScanner()->useCachedGrammarInParse(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)
       {
           if (state || !getScanner()->isCachingGrammarFromParse())
               getScanner()->useCachedGrammarInParse(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesCalculateSrcOfs) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCalculateSrcOfs) == 0)
       {
           getScanner()->setCalculateSrcOfs(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesStandardUriConformant) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesStandardUriConformant) == 0)
       {
           getScanner()->setStandardUriConformant(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesDOMHasPSVIInfo) 
== 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesDOMHasPSVIInfo) == 0)
       {
           setCreateSchemaInfo(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
       {
           getScanner()->setGenerateSyntheticAnnotations(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesValidateAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidateAnnotations) == 0)
       {
           getScanner()->setValidateAnnotations(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0)
       {
           getScanner()->setIdentityConstraintChecking(state);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesIgnoreCachedDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIgnoreCachedDTD) == 0)
       {
           getScanner()->setIgnoredCachedDTD(state);
       }
  @@ -254,98 +254,98 @@
   
   bool DOMBuilderImpl::getFeature(const XMLCh* const name) const
   {
  -    if (XMLString::compareIString(name, XMLUni::fgDOMEntities) == 0) {
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgDOMEntities) == 0) {
           return getCreateEntityReferenceNodes();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMComments) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMComments) == 
0) {
           return getCreateCommentNodes();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMDatatypeNormalization) == 0) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMDatatypeNormalization) == 0) {
           return getScanner()->getNormalizeData();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMNamespaces) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMNamespaces) 
== 0) {
           return getDoNamespaces();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMWhitespaceInElementContent) == 0) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMWhitespaceInElementContent) == 0) {
           return getIncludeIgnorableWhitespace();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMValidation) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidation) 
== 0) {
           return fValidation;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMValidateIfSchema) 
== 0) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMValidateIfSchema) == 0) {
           return fAutoValidation;
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) {
           return fCharsetOverridesXMLEncoding;
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMInfoset) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCanonicalForm) == 
0 ) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMInfoset) == 0 
||
  +             XMLString::compareIStringASCII(name, 
XMLUni::fgDOMCanonicalForm) == 0 ) {
           return false;
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCDATASections) == 
0 ) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  +             XMLString::compareIStringASCII(name, 
XMLUni::fgDOMCDATASections) == 0 ) {
           return true;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) == 
0)
       {
           return getDoSchema();
       }
   
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaFullChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaFullChecking) == 0)
       {
           return getValidationSchemaFullChecking();
       }
   
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0)
       {
           return getIdentityConstraintChecking();
       }
   
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesLoadExternalDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesLoadExternalDTD) == 0)
       {
           return getLoadExternalDTD();
       }
   
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0)
       {
           return !getExitOnFirstFatalError();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0)
       {
           return getValidationConstraintFatal();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0)
       {
           return getScanner()->isCachingGrammarFromParse();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)
       {
           return getScanner()->isUsingCachedGrammarInParse();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesCalculateSrcOfs) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCalculateSrcOfs) == 0)
       {
           return getScanner()->getCalculateSrcOfs();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesStandardUriConformant) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesStandardUriConformant) == 0)
       {
           return getScanner()->getStandardUriConformant();
       }
  -    else if(XMLString::compareIString(name, 
XMLUni::fgXercesUserAdoptsDOMDocument) == 0) {
  +    else if(XMLString::compareIStringASCII(name, 
XMLUni::fgXercesUserAdoptsDOMDocument) == 0) {
           return fUserAdoptsDocument;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesDOMHasPSVIInfo) 
== 0) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesDOMHasPSVIInfo) == 0) {
           return getCreateSchemaInfo();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
       {
           return getScanner()->getGenerateSyntheticAnnotations();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesValidateAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidateAnnotations) == 0)
       {
           return getScanner()->getValidateAnnotations();
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesIgnoreCachedDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIgnoreCachedDTD) == 0)
       {
           return getScanner()->getIgnoreCachedDTD();
       }
  @@ -358,44 +358,44 @@
   
   bool DOMBuilderImpl::canSetFeature(const XMLCh* const name, const bool 
state) const
   {
  -    if ((XMLString::compareIString(name, XMLUni::fgDOMEntities) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMComments) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMDatatypeNormalization) 
== 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMNamespaces) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMValidation) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMValidateIfSchema) == 
0) ||
  -        (XMLString::compareIString(name, 
XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) ||
  -        (XMLString::compareIString(name, 
XMLUni::fgDOMWhitespaceInElementContent) == 0) ||
  -        (XMLString::compareIString(name, 
XMLUni::fgXercesUserAdoptsDOMDocument) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesCalculateSrcOfs) == 
0) ||
  -        (XMLString::compareIString(name, 
XMLUni::fgXercesStandardUriConformant) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesDOMHasPSVIInfo) == 
0) ||
  -        (XMLString::compareIString(name, 
XMLUni::fgXercesValidateAnnotations) == 0) ||
  -        (XMLString::compareIString(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0) ||
  -        (XMLString::compareIString(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesIgnoreCachedDTD) == 
0)
  +    if ((XMLString::compareIStringASCII(name, XMLUni::fgDOMEntities) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMComments) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMDatatypeNormalization) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMNamespaces) == 0) 
||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidation) == 0) 
||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidateIfSchema) 
== 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMWhitespaceInElementContent) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesUserAdoptsDOMDocument) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCalculateSrcOfs) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesStandardUriConformant) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesDOMHasPSVIInfo) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidateAnnotations) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0) ||
  +        (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIgnoreCachedDTD) == 0)
          ) {
           return true;
       }
   
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMInfoset) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCanonicalForm) == 
0 ) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMInfoset) == 0 
||
  +             XMLString::compareIStringASCII(name, 
XMLUni::fgDOMCanonicalForm) == 0 ) {
           if (!state)
               return true;
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCDATASections) == 
0 ) {
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  +             XMLString::compareIStringASCII(name, 
XMLUni::fgDOMCDATASections) == 0 ) {
           if (state)
               return true;
       }
  -    else if ((XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0) 
||
  -             (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaFullChecking) == 0) ||
  -             (XMLString::compareIString(name, 
XMLUni::fgXercesLoadExternalDTD) == 0) ||
  -             (XMLString::compareIString(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0) ||
  -             (XMLString::compareIString(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0) ||
  -             (XMLString::compareIString(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0) ||
  -             (XMLString::compareIString(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)) {
  +    else if ((XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) 
== 0) ||
  +             (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaFullChecking) == 0) ||
  +             (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesLoadExternalDTD) == 0) ||
  +             (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0) ||
  +             (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0) ||
  +             (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0) ||
  +             (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)) {
           return true;
       }
       return false;
  @@ -407,16 +407,16 @@
   // 
---------------------------------------------------------------------------
   void DOMBuilderImpl::setProperty(const XMLCh* const name, void* value)
   {
  -     if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
  +     if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
        {
                setExternalSchemaLocation((XMLCh*)value);
        }
   
  -     else if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
  +     else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
        {
                setExternalNoNamespaceSchemaLocation((XMLCh*)value);
        }
  -     else if (XMLString::compareIString(name, 
XMLUni::fgXercesSecurityManager) == 0)
  +     else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSecurityManager) == 0)
        {
                setSecurityManager((SecurityManager*)value);
        }
  @@ -436,11 +436,11 @@
   
   void* DOMBuilderImpl::getProperty(const XMLCh* const name) const
   {
  -    if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
  +    if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
           return (void*)getExternalSchemaLocation();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
           return (void*)getExternalNoNamespaceSchemaLocation();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesSecurityManager) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSecurityManager) == 0)
           return (void*)getSecurityManager();
       else
           throw DOMException(DOMException::NOT_FOUND_ERR, 0, 
getMemoryManager());
  
  
  
  1.44      +43 -40    xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
  
  Index: SAX2XMLReaderImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- SAX2XMLReaderImpl.cpp     25 Feb 2005 11:31:07 -0000      1.43
  +++ SAX2XMLReaderImpl.cpp     20 Mar 2005 19:02:45 -0000      1.44
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.44  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to 
z, instead of all characters, and don't rely on functionality provided in the 
transcoders.
  + *
    * Revision 1.43  2005/02/25 11:31:07  amassari
    * Performance improvements by David Bertoni (jira# 1343)
    *
  @@ -1487,11 +1490,11 @@
       if (fParseInProgress)
           throw SAXNotSupportedException("Feature modification is not 
supported during parse.", fMemoryManager);
        
  -    if (XMLString::compareIString(name, XMLUni::fgSAX2CoreNameSpaces) == 0)
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgSAX2CoreNameSpaces) 
== 0)
       {
           setDoNamespaces(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgSAX2CoreValidation) 
== 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgSAX2CoreValidation) == 0)
       {
           fValidation = value;
           if (fValidation)
  @@ -1502,11 +1505,11 @@
           else
               setValidationScheme(Val_Never);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgSAX2CoreNameSpacePrefixes) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgSAX2CoreNameSpacePrefixes) == 0)
       {
           fNamespacePrefix = value;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesDynamic) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDynamic) 
== 0)
       {
           fAutoValidation = value;
           // for auto validation, the sax2 core validation feature must also 
be enabled.
  @@ -1518,59 +1521,59 @@
           else
               setValidationScheme(Val_Never);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) == 
0)
       {
           setDoSchema(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaFullChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaFullChecking) == 0)
       {
           fScanner->setValidationSchemaFullChecking(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0)
       {
           fScanner->setIdentityConstraintChecking(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesLoadExternalDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesLoadExternalDTD) == 0)
       {
           fScanner->setLoadExternalDTD(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0)
       {
           fScanner->setExitOnFirstFatal(!value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0)
       {
           fScanner->setValidationConstraintFatal(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0)
       {
           fScanner->cacheGrammarFromParse(value);
   
           if (value)
               fScanner->useCachedGrammarInParse(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)
       {
           if (value || !fScanner->isCachingGrammarFromParse())
               fScanner->useCachedGrammarInParse(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesCalculateSrcOfs) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCalculateSrcOfs) == 0)
       {
           fScanner->setCalculateSrcOfs(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesStandardUriConformant) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesStandardUriConformant) == 0)
       {
           fScanner->setStandardUriConformant(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
       {
           fScanner->setGenerateSyntheticAnnotations(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesValidateAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidateAnnotations) == 0)
       {
           fScanner->setValidateAnnotations(value);
       }
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesIgnoreCachedDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIgnoreCachedDTD) == 0)
       {
           fScanner->setIgnoredCachedDTD(value);
       }
  @@ -1580,39 +1583,39 @@
   
   bool SAX2XMLReaderImpl::getFeature(const XMLCh* const name) const
   {
  -    if (XMLString::compareIString(name, XMLUni::fgSAX2CoreNameSpaces) == 0)
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgSAX2CoreNameSpaces) 
== 0)
           return getDoNamespaces();
  -    else if (XMLString::compareIString(name, XMLUni::fgSAX2CoreValidation) 
== 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgSAX2CoreValidation) == 0)
           return fValidation;
  -    else if (XMLString::compareIString(name, 
XMLUni::fgSAX2CoreNameSpacePrefixes) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgSAX2CoreNameSpacePrefixes) == 0)
           return fNamespacePrefix;
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesDynamic) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDynamic) 
== 0)
           return fAutoValidation;
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) == 
0)
           return getDoSchema();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaFullChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaFullChecking) == 0)
           return fScanner->getValidationSchemaFullChecking();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIdentityConstraintChecking) == 0)
           return fScanner->getIdentityConstraintChecking();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesLoadExternalDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesLoadExternalDTD) == 0)
           return fScanner->getLoadExternalDTD();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesContinueAfterFatalError) == 0)
           return !fScanner->getExitOnFirstFatal();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidationErrorAsFatal) == 0)
           return fScanner->getValidationConstraintFatal();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCacheGrammarFromParse) == 0)
           return fScanner->isCachingGrammarFromParse();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesUseCachedGrammarInParse) == 0)
           return fScanner->isUsingCachedGrammarInParse();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesCalculateSrcOfs) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesCalculateSrcOfs) == 0)
           return fScanner->getCalculateSrcOfs();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesStandardUriConformant) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesStandardUriConformant) == 0)
           return fScanner->getStandardUriConformant();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
           return fScanner->getGenerateSyntheticAnnotations();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesValidateAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesValidateAnnotations) == 0)
           return fScanner->getValidateAnnotations();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesIgnoreCachedDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesIgnoreCachedDTD) == 0)
           return fScanner->getIgnoreCachedDTD();
       else
          throw SAXNotRecognizedException("Unknown Feature", fMemoryManager);
  @@ -1625,15 +1628,15 @@
        if (fParseInProgress)
                throw SAXNotSupportedException("Property modification is not 
supported during parse.", fMemoryManager);
   
  -     if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
  +     if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
        {
                fScanner->setExternalSchemaLocation((XMLCh*)value);
        }
  -     else if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
  +     else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
        {
                fScanner->setExternalNoNamespaceSchemaLocation((XMLCh*)value);
        }
  -     else if (XMLString::compareIString(name, 
XMLUni::fgXercesSecurityManager) == 0)
  +     else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSecurityManager) == 0)
        {
                fScanner->setSecurityManager((SecurityManager*)value);
        }
  @@ -1662,11 +1665,11 @@
   
   void* SAX2XMLReaderImpl::getProperty(const XMLCh* const name) const
   {
  -    if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
  +    if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
           return (void*)fScanner->getExternalSchemaLocation();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
           return (void*)fScanner->getExternalNoNamespaceSchemaLocation();
  -    else if (XMLString::compareIString(name, 
XMLUni::fgXercesSecurityManager) == 0)
  +    else if (XMLString::compareIStringASCII(name, 
XMLUni::fgXercesSecurityManager) == 0)
           return (void*)fScanner->getSecurityManager();
       else if (XMLString::equals(name, XMLUni::fgXercesScannerName))
           return (void*)fScanner->getName();
  
  
  
  1.28      +6 -6      
xml-xerces/c/src/xercesc/dom/impl/DOMImplementationImpl.cpp
  
  Index: DOMImplementationImpl.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMImplementationImpl.cpp,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- DOMImplementationImpl.cpp 20 Oct 2004 15:18:20 -0000      1.27
  +++ DOMImplementationImpl.cpp 20 Mar 2005 19:02:45 -0000      1.28
  @@ -186,23 +186,23 @@
       bool version3_0 = XMLString::equals(version, g3_0);
   
       // Currently, we support only XML Level 1 version 1.0
  -    if (XMLString::compareIString(feature, XMLUni::fgXMLString) == 0
  +    if (XMLString::compareIStringASCII(feature, XMLUni::fgXMLString) == 0
           && (anyVersion || version1_0 || version2_0))
           return true;
   
  -    if (XMLString::compareIString(feature, gCore) == 0
  +    if (XMLString::compareIStringASCII(feature, gCore) == 0
           && (anyVersion || version1_0 || version2_0 || version3_0))
           return true;
   
  -    if (XMLString::compareIString(feature, gTrav) == 0
  +    if (XMLString::compareIStringASCII(feature, gTrav) == 0
           && (anyVersion || version2_0))
           return true;
   
  -    if (XMLString::compareIString(feature, gRange) == 0
  +    if (XMLString::compareIStringASCII(feature, gRange) == 0
           && (anyVersion || version2_0))
           return true;
   
  -    if (XMLString::compareIString(feature, gLS) == 0
  +    if (XMLString::compareIStringASCII(feature, gLS) == 0
           && (anyVersion || version3_0))
           return true;
   
  
  
  
  1.57      +20 -17    xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.cpp
  
  Index: DOMWriterImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.cpp,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- DOMWriterImpl.cpp 8 Mar 2005 09:33:32 -0000       1.56
  +++ DOMWriterImpl.cpp 20 Mar 2005 19:02:45 -0000      1.57
  @@ -17,6 +17,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.57  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to 
z, instead of all characters, and don't rely on functionality provided in the 
transcoders.
  + *
    * Revision 1.56  2005/03/08 09:33:32  amassari
    * Redeclare a namespace binding if the prefix is already bound to a 
different namespace (jira# 1371)
    *
  @@ -1807,21 +1810,21 @@
       if (!getFeature(BYTE_ORDER_MARK_ID))
           return;
   
  -    if ((XMLString::compareIString(fEncoding, 
XMLUni::fgUTF16LEncodingString)  == 0) ||
  -        (XMLString::compareIString(fEncoding, 
XMLUni::fgUTF16LEncodingString2) == 0)  )
  +    if ((XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUTF16LEncodingString)  == 0) ||
  +        (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUTF16LEncodingString2) == 0)  )
       {
           fFormatter->writeBOM(BOM_utf16le, 2);
       }
  -    else if ((XMLString::compareIString(fEncoding, 
XMLUni::fgUTF16BEncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, 
XMLUni::fgUTF16BEncodingString2) == 0)  )
  +    else if ((XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUTF16BEncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUTF16BEncodingString2) == 0)  )
       {
           fFormatter->writeBOM(BOM_utf16be, 2);
       }
  -    else if ((XMLString::compareIString(fEncoding, 
XMLUni::fgUTF16EncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, 
XMLUni::fgUTF16EncodingString2) == 0) ||
  -             (XMLString::compareIString(fEncoding, 
XMLUni::fgUTF16EncodingString3) == 0) ||
  -             (XMLString::compareIString(fEncoding, 
XMLUni::fgUTF16EncodingString4) == 0) ||
  -             (XMLString::compareIString(fEncoding, 
XMLUni::fgUTF16EncodingString5) == 0)  ) 
  +    else if ((XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUTF16EncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUTF16EncodingString2) == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUTF16EncodingString3) == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUTF16EncodingString4) == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUTF16EncodingString5) == 0)  ) 
       {
   #if defined(ENDIANMODE_LITTLE)
               fFormatter->writeBOM(BOM_utf16le, 2);
  @@ -1829,19 +1832,19 @@
               fFormatter->writeBOM(BOM_utf16be, 2);
   #endif
       }
  -    else if ((XMLString::compareIString(fEncoding, 
XMLUni::fgUCS4LEncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, 
XMLUni::fgUCS4LEncodingString2) == 0)  )
  +    else if ((XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUCS4LEncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUCS4LEncodingString2) == 0)  )
       {
           fFormatter->writeBOM(BOM_ucs4le, 4);
       }
  -    else if ((XMLString::compareIString(fEncoding, 
XMLUni::fgUCS4BEncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, 
XMLUni::fgUCS4BEncodingString2) == 0)  )
  +    else if ((XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUCS4BEncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUCS4BEncodingString2) == 0)  )
       {
           fFormatter->writeBOM(BOM_ucs4be, 4);
       }
  -    else if ((XMLString::compareIString(fEncoding, 
XMLUni::fgUCS4EncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, 
XMLUni::fgUCS4EncodingString2) == 0) ||
  -             (XMLString::compareIString(fEncoding, 
XMLUni::fgUCS4EncodingString3) == 0)  )
  +    else if ((XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUCS4EncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUCS4EncodingString2) == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, 
XMLUni::fgUCS4EncodingString3) == 0)  )
       {
   #if defined(ENDIANMODE_LITTLE)
           fFormatter->writeBOM(BOM_ucs4le, 4);
  
  
  
  1.38      +8 -1      xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.cpp
  
  Index: DTDScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.cpp,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- DTDScanner.cpp    7 Jan 2005 15:28:49 -0000       1.37
  +++ DTDScanner.cpp    20 Mar 2005 19:02:45 -0000      1.38
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.38  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to 
z, instead of all characters, and don't rely on functionality provided in the 
transcoders.
  + *
    * Revision 1.37  2005/01/07 15:28:49  amassari
    * Removed warnings
    *
  @@ -3724,7 +3727,11 @@
       namePtr = bbName.getRawBuffer();
   
       // See if it issome form of 'xml' and emit a warning
  -    if (!XMLString::compareIString(namePtr, XMLUni::fgXMLString))
  +    //if (!XMLString::compareIString(namePtr, XMLUni::fgXMLString))
  +    if (bbName.getLen() == 3 &&
  +        (((namePtr[0] == chLatin_x) || (namePtr[0] == chLatin_X)) &&
  +         ((namePtr[1] == chLatin_m) || (namePtr[1] == chLatin_M)) &&
  +         ((namePtr[2] == chLatin_l) || (namePtr[2] == chLatin_L))))       
           fScanner->emitError(XMLErrs::NoPIStartsWithXML);
   
       // If namespaces are enabled, then no colons allowed
  
  
  
  1.8       +4 -1      xml-xerces/c/src/xercesc/util/HexBin.cpp
  
  Index: HexBin.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/HexBin.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- HexBin.cpp        7 Jan 2005 15:12:10 -0000       1.7
  +++ HexBin.cpp        20 Mar 2005 19:02:45 -0000      1.8
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to 
z, instead of all characters, and don't rely on functionality provided in the 
transcoders.
  + *
    * Revision 1.7  2005/01/07 15:12:10  amassari
    * Removed warnings
    *
  @@ -98,7 +101,7 @@
           return 0;
   
       XMLCh* retStr = XMLString::replicate(hexData, manager);
  -    XMLString::upperCase(retStr);
  +    XMLString::upperCaseASCII(retStr);
   
       return retStr;
   }
  
  
  
  1.20      +2 -2      xml-xerces/c/src/xercesc/util/TransService.cpp
  
  Index: TransService.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/TransService.cpp,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- TransService.cpp  8 Sep 2004 13:56:23 -0000       1.19
  +++ TransService.cpp  20 Mar 2005 19:02:45 -0000      1.20
  @@ -159,7 +159,7 @@
           resValue = XMLTransService::InternalFailure;
           return 0;
       }
  -    XMLString::upperCase(upBuf);
  +    XMLString::upperCaseASCII(upBuf);
       ENameMap* ourMapping = gMappings->get(upBuf);
   
       // If we found it, then call the factory method for it
  
  
  
  1.44      +59 -1     xml-xerces/c/src/xercesc/util/XMLString.cpp
  
  Index: XMLString.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.cpp,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- XMLString.cpp     8 Mar 2005 09:04:09 -0000       1.43
  +++ XMLString.cpp     20 Mar 2005 19:02:45 -0000      1.44
  @@ -952,6 +952,49 @@
       return XMLPlatformUtils::fgTransService->compareIString(str1, str2);
   }
   
  +int XMLString::compareIStringASCII(  const   XMLCh* const    str1
  +                                     , const XMLCh* const    str2)
  +{
  +    const XMLCh* psz1 = str1;
  +    const XMLCh* psz2 = str2;
  +
  +    if (psz1 == 0 || psz2 == 0) {
  +
  +        if (psz1 == 0) {
  +            return 0 - XMLString::stringLen(psz2);
  +        }
  +             else if (psz2 == 0) {
  +            return XMLString::stringLen(psz1);
  +        }
  +    }
  +
  +    XMLCh ch1;
  +    XMLCh ch2;
  +
  +    while (true) {
  +        if (*psz1 >= chLatin_A && *psz1 <= chLatin_Z)
  +            ch1 = *psz1 - chLatin_A + chLatin_a;
  +        else
  +            ch1 = *psz1;
  +        if (*psz2 >= chLatin_A && *psz2 <= chLatin_Z)
  +            ch2 = *psz2 - chLatin_A + chLatin_a;
  +        else
  +            ch2 = *psz2;
  +
  +        // If an inequality, then return difference
  +        if (ch1 != ch2)
  +            return int(ch1) - int(ch2);
  +
  +        // If either ended, then both ended, so equal
  +        if (!ch1)
  +            break;
  +
  +        // Move upwards to next chars
  +        psz1++;
  +        psz2++;
  +    }
  +    return 0;
  +}    
   
   int XMLString::compareNString(  const   XMLCh* const    str1
                                   , const XMLCh* const    str2
  @@ -1407,6 +1450,21 @@
       XMLPlatformUtils::fgTransService->upperCase(toUpperCase);
   }
   
  +void XMLString::upperCaseASCII(XMLCh* const toUpperCase)
  +{
  +    XMLCh* psz1 = toUpperCase;
  +
  +    if (!psz1)
  +        return;
  +
  +    while (*psz1) {
  +        if (*psz1 >= chLatin_a && *psz1 <= chLatin_z)
  +            *psz1 = *psz1 - chLatin_a + chLatin_A;
  +
  +        psz1++;        
  +    }    
  +}
  +
   
   void XMLString::lowerCase(XMLCh* const toLowerCase)
   {
  
  
  
  1.33      +28 -0     xml-xerces/c/src/xercesc/util/XMLString.hpp
  
  Index: XMLString.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.hpp,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- XMLString.hpp     8 Mar 2005 09:04:09 -0000       1.32
  +++ XMLString.hpp     20 Mar 2005 19:02:45 -0000      1.33
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.33  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to 
z, instead of all characters, and don't rely on functionality provided in the 
transcoders.
  + *
    * Revision 1.32  2005/03/08 09:04:09  amassari
    * Improve performances of XMLString::tokenizeString (jira# 1363) - patch by 
Christian Will
    *
  @@ -342,6 +345,24 @@
           , const XMLCh* const    str2
       );
   
  +    /** Lexicographically compares lowercase versions of <code>str1</code> 
and
  +      * <code>str2</code> and returns a value indicating their relationship.
  +      * The routine only lowercases A to Z.
  +      * @param str1 Null-terminated ASCII string to compare
  +      * @param str2 Null-terminated ASCII string to compare
  +      * @return The return value indicates the relation of <code>str1</code> 
to
  +      * <code>str2</code> as follows
  +      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
  +      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
  +      *  Greater than 0 means <code>str1</code> is more than 
<code>str2</code>
  +      */
  +    static int compareIStringASCII
  +    (
  +        const   XMLCh* const    str1
  +        , const XMLCh* const    str2
  +    );
  +
  +
   
       /** Lexicographically compares, at most, the first count characters in
         * <code>str1</code> and <code>str2</code> and returns a value 
indicating the
  @@ -1492,6 +1513,13 @@
         */
       static void upperCase(XMLCh* const toUpperCase);
   
  +    /** Converts a string to uppercase
  +      * The routine only uppercases A to Z.
  +      * @param toUpperCase The string which needs to be converted to 
uppercase.
  +      *        On return, this buffer also holds the converted uppercase 
string
  +      */
  +    static void upperCaseASCII(XMLCh* const toUpperCase);
  +
        /** Converts a string to lowercase
         * @param toLowerCase The string which needs to be converted to 
lowercase.
         *        On return, this buffer also holds the converted lowercase 
string
  
  
  
  1.17      +3 -3      xml-xerces/c/src/xercesc/util/XMLURL.cpp
  
  Index: XMLURL.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLURL.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- XMLURL.cpp        7 Jan 2005 15:12:10 -0000       1.16
  +++ XMLURL.cpp        20 Mar 2005 19:02:45 -0000      1.17
  @@ -137,7 +137,7 @@
   {
       for (unsigned int index = 0; index < XMLURL::Protocols_Count; index++)
       {
  -        if (!XMLString::compareIString(gProtoList[index].prefix, protoName))
  +        if (!XMLString::compareIStringASCII(protoName, 
gProtoList[index].prefix))
               return gProtoList[index].protocol;
       }
       return XMLURL::Unknown;
  @@ -580,7 +580,7 @@
       //
       if (fProtocol == XMLURL::File)
       {
  -        if (!fHost || !XMLString::compareIString(fHost, 
XMLUni::fgLocalHostString))
  +        if (!fHost || !XMLString::compareIStringASCII(fHost, 
XMLUni::fgLocalHostString))
           {
   
               XMLCh* realPath = XMLString::replicate(fPath, fMemoryManager);
  
  
  
  1.28      +3 -3      xml-xerces/c/src/xercesc/internal/XMLReader.cpp
  
  Index: XMLReader.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLReader.cpp,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- XMLReader.cpp     21 Feb 2005 18:19:45 -0000      1.27
  +++ XMLReader.cpp     20 Mar 2005 19:02:45 -0000      1.28
  @@ -207,7 +207,7 @@
   
       // Copy the encoding string to our member
       fEncodingStr = XMLString::replicate(encodingStr, fMemoryManager);
  -    XMLString::upperCase(fEncodingStr);
  +    XMLString::upperCaseASCII(fEncodingStr);
   
       // Ask the transcoding service if it supports src offset info
       fSrcOfsSupported = XMLPlatformUtils::fgTransService->supportsSrcOfs();
  @@ -1003,7 +1003,7 @@
       // upperCase the newEncoding first for better performance
       //
       XMLCh* inputEncoding = XMLString::replicate(newEncoding, fMemoryManager);
  -    XMLString::upperCase(inputEncoding);
  +    XMLString::upperCaseASCII(inputEncoding);
   
       //
       //  Try to map the string to one of our standard encodings. If its not
  
  
  
  1.78      +16 -4     xml-xerces/c/src/xercesc/internal/XMLScanner.cpp
  
  Index: XMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner.cpp,v
  retrieving revision 1.77
  retrieving revision 1.78
  diff -u -r1.77 -r1.78
  --- XMLScanner.cpp    9 Dec 2004 20:31:39 -0000       1.77
  +++ XMLScanner.cpp    20 Mar 2005 19:02:46 -0000      1.78
  @@ -1059,7 +1059,11 @@
       namePtr = bbName.getRawBuffer();
   
       // See if it is some form of 'xml' and emit a warning
  -    if (!XMLString::compareIString(namePtr, XMLUni::fgXMLString))
  +    //if (!XMLString::compareIString(namePtr, XMLUni::fgXMLString))
  +    if (bbName.getLen() == 3 &&
  +        (((namePtr[0] == chLatin_x) || (namePtr[0] == chLatin_X)) &&
  +         ((namePtr[1] == chLatin_m) || (namePtr[1] == chLatin_M)) &&
  +         ((namePtr[2] == chLatin_l) || (namePtr[2] == chLatin_L))))   
           emitError(XMLErrs::NoPIStartsWithXML);
   
       // If namespaces are enabled, then no colons allowed
  @@ -1418,9 +1422,17 @@
               else
               {
                   emitError(XMLErrs::BadStandalone);
  -                if (!XMLString::compareIString(rawValue, 
XMLUni::fgYesString))
  +                //if (!XMLString::compareIString(rawValue, 
XMLUni::fgYesString))
  +                //else if (!XMLString::compareIString(rawValue, 
XMLUni::fgNoString))
  +                if (buffers[curString]->getLen() == 3 &&
  +                    (((rawValue[0] == chLatin_y) || (rawValue[0] == 
chLatin_Y)) &&
  +                     ((rawValue[1] == chLatin_e) || (rawValue[1] == 
chLatin_E)) &&
  +                     ((rawValue[2] == chLatin_s) || (rawValue[2] == 
chLatin_S))))   
  +                    fStandalone = true;                
  +                else if (buffers[curString]->getLen() == 2 &&
  +                    (((rawValue[0] == chLatin_n) || (rawValue[0] == 
chLatin_N)) &&
  +                     ((rawValue[1] == chLatin_o) || (rawValue[1] == 
chLatin_O))))   
                       fStandalone = true;
  -                else if (!XMLString::compareIString(rawValue, 
XMLUni::fgNoString))
                       fStandalone = false;
               }
           }
  
  
  

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

Reply via email to