From 6fb9705d8a7612bab45370dbfd800aae886da0da Mon Sep 17 00:00:00 2001 From: David Abram Cargill <cargilld@apache.org> Date: Thu, 21 Apr 2005 09:05:57 +0000 Subject: [PATCH] Add detection for UCS-2 and treat as another UTF16 alias. git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@176382 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/dom/impl/DOMWriterImpl.cpp | 7 ++- src/xercesc/internal/XMLReader.cpp | 4 +- src/xercesc/util/TransService.cpp | 18 +++++++ .../Uniconv390/Uniconv390TransService.cpp | 54 +++++++++++++++++++ src/xercesc/util/XMLUni.cpp | 11 ++++ src/xercesc/util/XMLUni.hpp | 2 + 6 files changed, 94 insertions(+), 2 deletions(-) diff --git a/src/xercesc/dom/impl/DOMWriterImpl.cpp b/src/xercesc/dom/impl/DOMWriterImpl.cpp index 99a834f7e..641a7c72a 100644 --- a/src/xercesc/dom/impl/DOMWriterImpl.cpp +++ b/src/xercesc/dom/impl/DOMWriterImpl.cpp @@ -17,6 +17,9 @@ /* * $Id$ * $Log$ + * Revision 1.58 2005/04/21 09:05:57 cargilld + * Add detection for UCS-2 and treat as another UTF16 alias. + * * 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. * @@ -1824,7 +1827,9 @@ void DOMWriterImpl::processBOM() (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString2) == 0) || (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString3) == 0) || (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString4) == 0) || - (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString5) == 0) ) + (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString5) == 0) || + (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString6) == 0) || + (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString7) == 0) ) { #if defined(ENDIANMODE_LITTLE) fFormatter->writeBOM(BOM_utf16le, 2); diff --git a/src/xercesc/internal/XMLReader.cpp b/src/xercesc/internal/XMLReader.cpp index 9cf43a697..c1a5cc43d 100644 --- a/src/xercesc/internal/XMLReader.cpp +++ b/src/xercesc/internal/XMLReader.cpp @@ -1219,7 +1219,9 @@ bool XMLReader::setEncoding(const XMLCh* const newEncoding) || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString2) || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString3) || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString4) - || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString5)) + || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString5) + || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString6) + || !XMLString::compareString(inputEncoding, XMLUni::fgUTF16EncodingString7)) { fMemoryManager->deallocate(inputEncoding); diff --git a/src/xercesc/util/TransService.cpp b/src/xercesc/util/TransService.cpp index 81beb591d..51c53c6b6 100644 --- a/src/xercesc/util/TransService.cpp +++ b/src/xercesc/util/TransService.cpp @@ -424,6 +424,24 @@ void XMLTransService::initTransService() ) ); gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString6, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString6 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString7, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString7 + , false + ) + ); + gMappings->put ( (void*)XMLUni::fgUCS4EncodingString, new EEndianNameMapFor<XMLUCS4Transcoder> diff --git a/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.cpp b/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.cpp index 111848b2a..919520f8c 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.cpp +++ b/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.cpp @@ -698,6 +698,33 @@ void Uniconv390TransService::initTransService() ) ); gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString5, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString5 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString6, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString6 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString7, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString7 + , false + ) + ); + gMappings->put ( (void*)XMLUni::fgUCS4EncodingString, new EEndianNameMapFor<XMLUCS4Transcoder> @@ -942,6 +969,33 @@ void Uniconv390TransService::initTransService() ) ); gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString5, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString5 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString6, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString6 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString7, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString7 + , false + ) + ); + gMappings->put ( (void*)XMLUni::fgUCS4EncodingString, new EEndianNameMapFor<XMLUCS4Transcoder> diff --git a/src/xercesc/util/XMLUni.cpp b/src/xercesc/util/XMLUni.cpp index 4d5da295b..ef2ca4b9c 100644 --- a/src/xercesc/util/XMLUni.cpp +++ b/src/xercesc/util/XMLUni.cpp @@ -430,6 +430,17 @@ const XMLCh XMLUni::fgUTF16EncodingString5[] = chLatin_U, chLatin_T, chLatin_F, chDigit_1, chDigit_6, chNull }; +const XMLCh XMLUni::fgUTF16EncodingString6[] = +{ + chLatin_U, chLatin_C, chLatin_S, chDash, chDigit_2, chNull +}; + +const XMLCh XMLUni::fgUTF16EncodingString7[] = +{ + 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_2, chNull +}; + const XMLCh XMLUni::fgUTF16BEncodingString[] = { chLatin_U, chLatin_T, chLatin_F, chDash, chDigit_1, chDigit_6, chSpace, chOpenParen, chLatin_B, chLatin_E, chCloseParen, chNull diff --git a/src/xercesc/util/XMLUni.hpp b/src/xercesc/util/XMLUni.hpp index fd94e44dc..6d991f281 100644 --- a/src/xercesc/util/XMLUni.hpp +++ b/src/xercesc/util/XMLUni.hpp @@ -119,6 +119,8 @@ public : static const XMLCh fgUTF16EncodingString3[]; static const XMLCh fgUTF16EncodingString4[]; static const XMLCh fgUTF16EncodingString5[]; + static const XMLCh fgUTF16EncodingString6[]; + static const XMLCh fgUTF16EncodingString7[]; static const XMLCh fgUTF16BEncodingString[]; static const XMLCh fgUTF16BEncodingString2[]; static const XMLCh fgUTF16LEncodingString[]; -- GitLab