diff --git a/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp b/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp index 8b5725df48a4817299aa7e1256b6a1eb29537a9f..2ca0eacd4874bcdbe77d70c315773c1429e523ac 100644 --- a/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp +++ b/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp @@ -1683,7 +1683,8 @@ void DOMLSSerializerImpl::processBOM() else if ((XMLString::compareIStringASCII(fEncodingUsed, XMLUni::fgUCS4EncodingString) == 0) || (XMLString::compareIStringASCII(fEncodingUsed, XMLUni::fgUCS4EncodingString2) == 0) || (XMLString::compareIStringASCII(fEncodingUsed, XMLUni::fgUCS4EncodingString3) == 0) || - (XMLString::compareIStringASCII(fEncodingUsed, XMLUni::fgUCS4EncodingString4) == 0) ) + (XMLString::compareIStringASCII(fEncodingUsed, XMLUni::fgUCS4EncodingString4) == 0) || + (XMLString::compareIStringASCII(fEncodingUsed, XMLUni::fgUCS4EncodingString5) == 0) ) { if (XMLPlatformUtils::fgXMLChBigEndian) fFormatter->writeBOM(BOM_ucs4be, 4); diff --git a/src/xercesc/internal/XMLReader.cpp b/src/xercesc/internal/XMLReader.cpp index bf4c0ea51621a4248d28442acc5c2cab0d4eecd8..63805b2e973ee9075c9dfe9790de73168fc51db1 100644 --- a/src/xercesc/internal/XMLReader.cpp +++ b/src/xercesc/internal/XMLReader.cpp @@ -1270,13 +1270,13 @@ bool XMLReader::setEncoding(const XMLCh* const newEncoding) // are already in one of the endian versions of those encodings, // then just keep it and go on. Otherwise, its not valid. // - if (!XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString) - || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString2) - || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString3) - || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString4) - || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString5) - || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString6) - || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString7)) + if (XMLString::equals(inputEncoding, XMLUni::fgUTF16EncodingString) + || XMLString::equals(inputEncoding, XMLUni::fgUTF16EncodingString2) + || XMLString::equals(inputEncoding, XMLUni::fgUTF16EncodingString3) + || XMLString::equals(inputEncoding, XMLUni::fgUTF16EncodingString4) + || XMLString::equals(inputEncoding, XMLUni::fgUTF16EncodingString5) + || XMLString::equals(inputEncoding, XMLUni::fgUTF16EncodingString6) + || XMLString::equals(inputEncoding, XMLUni::fgUTF16EncodingString7)) { fMemoryManager->deallocate(inputEncoding); @@ -1300,10 +1300,11 @@ bool XMLReader::setEncoding(const XMLCh* const newEncoding) fEncodingStr = XMLString::replicate(XMLUni::fgUTF16BEncodingString, fMemoryManager); } } - else if (!XMLString::compareString(inputEncoding, XMLUni::fgUCS4EncodingString) - || !XMLString::compareString(inputEncoding, XMLUni::fgUCS4EncodingString2) - || !XMLString::compareString(inputEncoding, XMLUni::fgUCS4EncodingString3) - || !XMLString::compareString(inputEncoding, XMLUni::fgUCS4EncodingString4)) + else if (XMLString::equals(inputEncoding, XMLUni::fgUCS4EncodingString) + || XMLString::equals(inputEncoding, XMLUni::fgUCS4EncodingString2) + || XMLString::equals(inputEncoding, XMLUni::fgUCS4EncodingString3) + || XMLString::equals(inputEncoding, XMLUni::fgUCS4EncodingString4) + || XMLString::equals(inputEncoding, XMLUni::fgUCS4EncodingString5)) { fMemoryManager->deallocate(inputEncoding); diff --git a/src/xercesc/util/TransService.cpp b/src/xercesc/util/TransService.cpp index 69d49c7825e09d0c2a7ad422600ddf4c2de1da5e..c53d83b3b1e26235da718a35bc85b5daebf55bcc 100644 --- a/src/xercesc/util/TransService.cpp +++ b/src/xercesc/util/TransService.cpp @@ -82,11 +82,11 @@ XMLTransService::~XMLTransService() } // --------------------------------------------------------------------------- -// Allow user specific encodings to be added to the mappings table. -// Should be called after platform init +// Allow user specific encodings to be added to the mappings table. +// Should be called after platform init // --------------------------------------------------------------------------- void XMLTransService::addEncoding(const XMLCh* const encoding, - ENameMap* const ownMapping) + ENameMap* const ownMapping) { gMappings->put((void *) encoding, ownMapping); } @@ -142,7 +142,7 @@ XMLTransService::makeNewTranscoderFor( const XMLCh* const encoding // If we found it, then call the factory method for it if (ourMapping) - { + { XMLTranscoder* temp = ourMapping->makeNew(blockSize, manager); resValue = temp ? XMLTransService::Ok : XMLTransService::InternalFailure; return temp; @@ -181,7 +181,7 @@ XMLTransService::makeNewTranscoderFor( XMLRecognizer::Encodings encoding ENameMap* ourMapping = gMappingsRecognizer->elementAt(encodingEnum); // If we found it, then call the factory method for it - if (ourMapping) { + if (ourMapping) { XMLTranscoder* temp = ourMapping->makeNew(blockSize, manager); resValue = temp ? XMLTransService::Ok : XMLTransService::InternalFailure; return temp; @@ -260,7 +260,7 @@ void XMLTransService::initTransService() gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUTF16Transcoder>(XMLUni::fgUTF16LEncodingString, swapped), XMLRecognizer::UTF_16L); gMappings->put ( - (void*)XMLUni::fgUTF16LEncodingString, + (void*)XMLUni::fgUTF16LEncodingString, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16LEncodingString @@ -270,7 +270,7 @@ void XMLTransService::initTransService() gMappings->put ( - (void*)XMLUni::fgUTF16LEncodingString2, + (void*)XMLUni::fgUTF16LEncodingString2, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16LEncodingString2 @@ -281,7 +281,7 @@ void XMLTransService::initTransService() gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUCS4Transcoder>(XMLUni::fgUCS4LEncodingString, swapped), XMLRecognizer::UCS_4L); gMappings->put ( - (void*)XMLUni::fgUCS4LEncodingString, + (void*)XMLUni::fgUCS4LEncodingString, new EEndianNameMapFor<XMLUCS4Transcoder> ( XMLUni::fgUCS4LEncodingString @@ -291,7 +291,7 @@ void XMLTransService::initTransService() gMappings->put ( - (void*)XMLUni::fgUCS4LEncodingString2, + (void*)XMLUni::fgUCS4LEncodingString2, new EEndianNameMapFor<XMLUCS4Transcoder> ( XMLUni::fgUCS4LEncodingString2 @@ -307,7 +307,7 @@ void XMLTransService::initTransService() gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUTF16Transcoder>(XMLUni::fgUTF16BEncodingString, swapped), XMLRecognizer::UTF_16B); gMappings->put ( - (void*)XMLUni::fgUTF16BEncodingString, + (void*)XMLUni::fgUTF16BEncodingString, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16BEncodingString @@ -317,7 +317,7 @@ void XMLTransService::initTransService() gMappings->put ( - (void*)XMLUni::fgUTF16BEncodingString2, + (void*)XMLUni::fgUTF16BEncodingString2, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16BEncodingString2 @@ -328,7 +328,7 @@ void XMLTransService::initTransService() gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUCS4Transcoder>(XMLUni::fgUCS4BEncodingString, swapped), XMLRecognizer::UCS_4B); gMappings->put ( - (void*)XMLUni::fgUCS4BEncodingString, + (void*)XMLUni::fgUCS4BEncodingString, new EEndianNameMapFor<XMLUCS4Transcoder> ( XMLUni::fgUCS4BEncodingString @@ -338,7 +338,7 @@ void XMLTransService::initTransService() gMappings->put ( - (void*)XMLUni::fgUCS4BEncodingString2, + (void*)XMLUni::fgUCS4BEncodingString2, new EEndianNameMapFor<XMLUCS4Transcoder> ( XMLUni::fgUCS4BEncodingString2 @@ -353,7 +353,7 @@ void XMLTransService::initTransService() gMappings->put ( - (void*)XMLUni::fgUTF16EncodingString, + (void*)XMLUni::fgUTF16EncodingString, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16EncodingString @@ -362,7 +362,7 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUTF16EncodingString2, + (void*)XMLUni::fgUTF16EncodingString2, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16EncodingString2 @@ -371,7 +371,7 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUTF16EncodingString3, + (void*)XMLUni::fgUTF16EncodingString3, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16EncodingString3 @@ -380,7 +380,7 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUTF16EncodingString4, + (void*)XMLUni::fgUTF16EncodingString4, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16EncodingString4 @@ -389,7 +389,7 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUTF16EncodingString5, + (void*)XMLUni::fgUTF16EncodingString5, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16EncodingString5 @@ -398,7 +398,7 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUTF16EncodingString6, + (void*)XMLUni::fgUTF16EncodingString6, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16EncodingString6 @@ -407,7 +407,7 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUTF16EncodingString7, + (void*)XMLUni::fgUTF16EncodingString7, new EEndianNameMapFor<XMLUTF16Transcoder> ( XMLUni::fgUTF16EncodingString7 @@ -416,7 +416,7 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUCS4EncodingString, + (void*)XMLUni::fgUCS4EncodingString, new EEndianNameMapFor<XMLUCS4Transcoder> ( XMLUni::fgUCS4EncodingString @@ -425,7 +425,7 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUCS4EncodingString2, + (void*)XMLUni::fgUCS4EncodingString2, new EEndianNameMapFor<XMLUCS4Transcoder> ( XMLUni::fgUCS4EncodingString2 @@ -434,7 +434,7 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUCS4EncodingString3, + (void*)XMLUni::fgUCS4EncodingString3, new EEndianNameMapFor<XMLUCS4Transcoder> ( XMLUni::fgUCS4EncodingString3 @@ -443,13 +443,22 @@ void XMLTransService::initTransService() ); gMappings->put ( - (void*)XMLUni::fgUCS4EncodingString4, + (void*)XMLUni::fgUCS4EncodingString4, new EEndianNameMapFor<XMLUCS4Transcoder> ( XMLUni::fgUCS4EncodingString4 , false ) ); + gMappings->put + ( + (void*)XMLUni::fgUCS4EncodingString5, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4EncodingString5 + , false + ) + ); // // Add in our mappings for IBM037, and the one alias we support for diff --git a/src/xercesc/util/XMLUni.cpp b/src/xercesc/util/XMLUni.cpp index dcbf0a440321bc9f18db29286bd329b8e5a84032..d1cb40efd8e25868ec6b7e611b203aad3458107c 100644 --- a/src/xercesc/util/XMLUni.cpp +++ b/src/xercesc/util/XMLUni.cpp @@ -361,6 +361,12 @@ const XMLCh XMLUni::fgUCS4EncodingString4[] = chLatin_U, chLatin_T, chLatin_F, chDash, chDigit_3, chDigit_2, chNull }; +const XMLCh XMLUni::fgUCS4EncodingString5[] = +{ + chLatin_I, chLatin_S, chLatin_O, chDash, chDigit_1, chDigit_0, chDigit_6, chDigit_4, chDigit_6, + chDash, chLatin_U, chLatin_C, chLatin_S, chDash, chDigit_4, chNull +}; + const XMLCh XMLUni::fgUCS4BEncodingString[] = { chLatin_U, chLatin_C, chLatin_S, chDash, chDigit_4, chSpace, chOpenParen, chLatin_B, chLatin_E, chCloseParen, chNull diff --git a/src/xercesc/util/XMLUni.hpp b/src/xercesc/util/XMLUni.hpp index 3c497e5f4e52d88589104e975aab5a91ab8788d6..355d5a64960199009afb28872aef24ea8615d15d 100644 --- a/src/xercesc/util/XMLUni.hpp +++ b/src/xercesc/util/XMLUni.hpp @@ -106,6 +106,7 @@ public : static const XMLCh fgUCS4EncodingString2[]; static const XMLCh fgUCS4EncodingString3[]; static const XMLCh fgUCS4EncodingString4[]; + static const XMLCh fgUCS4EncodingString5[]; static const XMLCh fgUCS4BEncodingString[]; static const XMLCh fgUCS4BEncodingString2[]; static const XMLCh fgUCS4LEncodingString[];