diff --git a/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.cpp b/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.cpp index e067467c42f1bcd20c2cd8dce5ec94f6bb587981..d559147ed368c465d0e5911db2869c49afe7e36c 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.cpp +++ b/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.cpp @@ -90,6 +90,17 @@ #include <locale.h> #include <xercesc/util/regx/XMLUniCharacter.hpp> +#include <xercesc/util/XML88591Transcoder.hpp> +#include <xercesc/util/XMLASCIITranscoder.hpp> +#include <xercesc/util/XMLChTranscoder.hpp> +#include <xercesc/util/XMLEBCDICTranscoder.hpp> +#include <xercesc/util/XMLIBM1047Transcoder.hpp> +#include <xercesc/util/XMLIBM1140Transcoder.hpp> +#include <xercesc/util/XMLUCS4Transcoder.hpp> +#include <xercesc/util/XMLUTF8Transcoder.hpp> +#include <xercesc/util/XMLUTF16Transcoder.hpp> +#include <xercesc/util/XMLWin1252Transcoder.hpp> + XERCES_CPP_NAMESPACE_BEGIN // debug printfs.... I'll take these out after function test. @@ -234,7 +245,7 @@ Uniconv390TransService::~Uniconv390TransService() } if (fICUService) { delete fICUService; - } + } } // --------------------------------------------------------------------------- @@ -526,247 +537,497 @@ DBGPRINTF3("makeNewXMLTranscoder() encoding=%s blocksize=%d\n",localname,blockSi // --------------------------------------------------------------------------- void Uniconv390TransService::initTransService() { - // - // A stupid way to increment the fCurCount inside the RefVectorOf - // - for (unsigned int i = 0; i < XMLRecognizer::Encodings_Count; i++) - gMappingsRecognizer->addElement(0); - - // - // Add in the magical mapping for the native XMLCh transcoder. This - // is used for internal entities. - // - gMappingsRecognizer->setElementAt(new ENameMapFor<XMLChTranscoder>(XMLUni::fgXMLChEncodingString), XMLRecognizer::XERCES_XMLCH); - gMappings->put((void*)XMLUni::fgXMLChEncodingString, new ENameMapFor<XMLChTranscoder>(XMLUni::fgXMLChEncodingString)); - - // - // Add in our mappings for ASCII. - // - gMappingsRecognizer->setElementAt(new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString), XMLRecognizer::US_ASCII); - gMappings->put((void*)XMLUni::fgUSASCIIEncodingString, new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString)); - gMappings->put((void*)XMLUni::fgUSASCIIEncodingString2, new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString2)); - gMappings->put((void*)XMLUni::fgUSASCIIEncodingString3, new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString3)); - gMappings->put((void*)XMLUni::fgUSASCIIEncodingString4, new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString4)); - - - // - // Add in our mappings for UTF-8 - // - gMappingsRecognizer->setElementAt(new ENameMapFor<XMLUTF8Transcoder390>(XMLUni::fgUTF8EncodingString), XMLRecognizer::UTF_8); - gMappings->put((void*)XMLUni::fgUTF8EncodingString, new ENameMapFor<XMLUTF8Transcoder390>(XMLUni::fgUTF8EncodingString)); - gMappings->put((void*)XMLUni::fgUTF8EncodingString2, new ENameMapFor<XMLUTF8Transcoder390>(XMLUni::fgUTF8EncodingString2)); - - // - // Add in our mappings for Latin1 - // - gMappings->put((void*)XMLUni::fgISO88591EncodingString, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString2, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString2)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString3, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString3)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString4, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString4)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString5, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString5)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString6, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString6)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString7, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString7)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString8, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString8)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString9, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString9)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString10, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString10)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString11, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString11)); - gMappings->put((void*)XMLUni::fgISO88591EncodingString12, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString12)); - - // - // Add in our mappings for UTF-16 and UCS-4, little endian - // - bool swapped = false; - - #if defined(ENDIANMODE_BIG) - swapped = true; - #endif - gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUTF16Transcoder>(XMLUni::fgUTF16LEncodingString, swapped), XMLRecognizer::UTF_16L); - gMappings->put - ( - (void*)XMLUni::fgUTF16LEncodingString, - new EEndianNameMapFor<XMLUTF16Transcoder> - ( - XMLUni::fgUTF16LEncodingString - , swapped - ) - ); - - gMappings->put - ( - (void*)XMLUni::fgUTF16LEncodingString2, - new EEndianNameMapFor<XMLUTF16Transcoder> - ( - XMLUni::fgUTF16LEncodingString2 - , swapped - ) - ); - - gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUCS4Transcoder>(XMLUni::fgUCS4LEncodingString, swapped), XMLRecognizer::UCS_4L); - gMappings->put - ( - (void*)XMLUni::fgUCS4LEncodingString, - new EEndianNameMapFor<XMLUCS4Transcoder> - ( - XMLUni::fgUCS4LEncodingString - , swapped - ) - ); - - gMappings->put - ( - (void*)XMLUni::fgUCS4LEncodingString2, - new EEndianNameMapFor<XMLUCS4Transcoder> - ( - XMLUni::fgUCS4LEncodingString2 - , swapped - ) - ); - - // - // Add in our mappings for UTF-16 and UCS-4, big endian - // - swapped = false; - #if defined(ENDIANMODE_LITTLE) - swapped = true; - #endif - gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUTF16Transcoder>(XMLUni::fgUTF16BEncodingString, swapped), XMLRecognizer::UTF_16B); - gMappings->put - ( - (void*)XMLUni::fgUTF16BEncodingString, - new EEndianNameMapFor<XMLUTF16Transcoder> - ( - XMLUni::fgUTF16BEncodingString - , swapped - ) - ); - - gMappings->put - ( - (void*)XMLUni::fgUTF16BEncodingString2, - new EEndianNameMapFor<XMLUTF16Transcoder> - ( - XMLUni::fgUTF16BEncodingString2 - , swapped - ) - ); - - gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUCS4Transcoder>(XMLUni::fgUCS4BEncodingString, swapped), XMLRecognizer::UCS_4B); - gMappings->put - ( - (void*)XMLUni::fgUCS4BEncodingString, - new EEndianNameMapFor<XMLUCS4Transcoder> - ( - XMLUni::fgUCS4BEncodingString - , swapped - ) - ); - - gMappings->put - ( - (void*)XMLUni::fgUCS4BEncodingString2, - new EEndianNameMapFor<XMLUCS4Transcoder> - ( - XMLUni::fgUCS4BEncodingString2 - , swapped - ) - ); - - // - // Add in our mappings for UTF-16 and UCS-4 which does not indicate endian - // assumes the same endian encoding as the OS - // - - gMappings->put - ( - (void*)XMLUni::fgUTF16EncodingString, - new EEndianNameMapFor<XMLUTF16Transcoder> - ( - XMLUni::fgUTF16EncodingString - , false - ) - ); - gMappings->put - ( - (void*)XMLUni::fgUTF16EncodingString2, - new EEndianNameMapFor<XMLUTF16Transcoder> - ( - XMLUni::fgUTF16EncodingString2 - , false - ) - ); - gMappings->put - ( - (void*)XMLUni::fgUTF16EncodingString3, - new EEndianNameMapFor<XMLUTF16Transcoder> - ( - XMLUni::fgUTF16EncodingString3 - , false - ) - ); - gMappings->put - ( - (void*)XMLUni::fgUTF16EncodingString4, - new EEndianNameMapFor<XMLUTF16Transcoder> - ( - XMLUni::fgUTF16EncodingString4 - , false - ) - ); - gMappings->put - ( - (void*)XMLUni::fgUCS4EncodingString, - new EEndianNameMapFor<XMLUCS4Transcoder> - ( - XMLUni::fgUCS4EncodingString - , false - ) - ); - gMappings->put - ( - (void*)XMLUni::fgUCS4EncodingString2, - new EEndianNameMapFor<XMLUCS4Transcoder> - ( - XMLUni::fgUCS4EncodingString2 - , false - ) - ); - gMappings->put - ( - (void*)XMLUni::fgUCS4EncodingString3, - new EEndianNameMapFor<XMLUCS4Transcoder> - ( - XMLUni::fgUCS4EncodingString3 - , false - ) - ); - - // - // Add in our mappings for IBM037, and the one alias we support for - // it, which is EBCDIC-CP-US. - // - gMappingsRecognizer->setElementAt(new ENameMapFor<XMLEBCDICTranscoder390>(XMLUni::fgEBCDICEncodingString), XMLRecognizer::EBCDIC); - gMappings->put((void*)XMLUni::fgIBM037EncodingString, new ENameMapFor<XMLEBCDICTranscoder390>(XMLUni::fgIBM037EncodingString)); - gMappings->put((void*)XMLUni::fgIBM037EncodingString2, new ENameMapFor<XMLEBCDICTranscoder390>(XMLUni::fgIBM037EncodingString2)); - - - //hhe - gMappings->put((void*)XMLUni::fgIBM1047EncodingString, new ENameMapFor<XMLIBM1047Transcoder390>(XMLUni::fgIBM1047EncodingString)); - gMappings->put((void*)XMLUni::fgIBM1047EncodingString2, new ENameMapFor<XMLIBM1047Transcoder390>(XMLUni::fgIBM1047EncodingString2)); - - // - // Add in our mappings for IBM037 with Euro update, i.e. IBM1140. It - // has alias IBM01140, the one suggested by IANA - // - gMappings->put((void*)XMLUni::fgIBM1140EncodingString, new ENameMapFor<XMLIBM1140Transcoder390>(XMLUni::fgIBM1140EncodingString)); - gMappings->put((void*)XMLUni::fgIBM1140EncodingString2, new ENameMapFor<XMLIBM1140Transcoder390>(XMLUni::fgIBM1140EncodingString2)); - gMappings->put((void*)XMLUni::fgIBM1140EncodingString3, new ENameMapFor<XMLIBM1140Transcoder390>(XMLUni::fgIBM1140EncodingString3)); - gMappings->put((void*)XMLUni::fgIBM1140EncodingString4, new ENameMapFor<XMLIBM1140Transcoder390>(XMLUni::fgIBM1140EncodingString4)); - - // - // Add in our mappings for Windows-1252. We don't have any aliases for - // this one, so there is just one mapping. - // - gMappings->put((void*)XMLUni::fgWin1252EncodingString, new ENameMapFor<XMLWin1252Transcoder390>(XMLUni::fgWin1252EncodingString)); + // Need to first check if the translate instruction is supported + // by this processor ... if it is use the new intrinsics. + + if (((*(int*) 200) & 0x00001000) != 0) + { + // + // A stupid way to increment the fCurCount inside the RefVectorOf + // + for (unsigned int i = 0; i < XMLRecognizer::Encodings_Count; i++) + gMappingsRecognizer->addElement(0); + + // + // Add in the magical mapping for the native XMLCh transcoder. This + // is used for internal entities. + // + gMappingsRecognizer->setElementAt(new ENameMapFor<XMLChTranscoder>(XMLUni::fgXMLChEncodingString), XMLRecognizer::XERCES_XMLCH); + gMappings->put((void*)XMLUni::fgXMLChEncodingString, new ENameMapFor<XMLChTranscoder>(XMLUni::fgXMLChEncodingString)); + + // + // Add in our mappings for ASCII. + // + gMappingsRecognizer->setElementAt(new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString), XMLRecognizer::US_ASCII); + gMappings->put((void*)XMLUni::fgUSASCIIEncodingString, new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString)); + gMappings->put((void*)XMLUni::fgUSASCIIEncodingString2, new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString2)); + gMappings->put((void*)XMLUni::fgUSASCIIEncodingString3, new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString3)); + gMappings->put((void*)XMLUni::fgUSASCIIEncodingString4, new ENameMapFor<XMLASCIITranscoder390>(XMLUni::fgUSASCIIEncodingString4)); + + + // + // Add in our mappings for UTF-8 + // + gMappingsRecognizer->setElementAt(new ENameMapFor<XMLUTF8Transcoder390>(XMLUni::fgUTF8EncodingString), XMLRecognizer::UTF_8); + gMappings->put((void*)XMLUni::fgUTF8EncodingString, new ENameMapFor<XMLUTF8Transcoder390>(XMLUni::fgUTF8EncodingString)); + gMappings->put((void*)XMLUni::fgUTF8EncodingString2, new ENameMapFor<XMLUTF8Transcoder390>(XMLUni::fgUTF8EncodingString2)); + + // + // Add in our mappings for Latin1 + // + gMappings->put((void*)XMLUni::fgISO88591EncodingString, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString2, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString2)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString3, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString3)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString4, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString4)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString5, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString5)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString6, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString6)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString7, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString7)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString8, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString8)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString9, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString9)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString10, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString10)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString11, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString11)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString12, new ENameMapFor<XML88591Transcoder390>(XMLUni::fgISO88591EncodingString12)); + + // + // Add in our mappings for UTF-16 and UCS-4, little endian + // + bool swapped = false; + + #if defined(ENDIANMODE_BIG) + swapped = true; + #endif + gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUTF16Transcoder>(XMLUni::fgUTF16LEncodingString, swapped), XMLRecognizer::UTF_16L); + gMappings->put + ( + (void*)XMLUni::fgUTF16LEncodingString, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16LEncodingString + , swapped + ) + ); + + gMappings->put + ( + (void*)XMLUni::fgUTF16LEncodingString2, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16LEncodingString2 + , swapped + ) + ); + + gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUCS4Transcoder>(XMLUni::fgUCS4LEncodingString, swapped), XMLRecognizer::UCS_4L); + gMappings->put + ( + (void*)XMLUni::fgUCS4LEncodingString, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4LEncodingString + , swapped + ) + ); + + gMappings->put + ( + (void*)XMLUni::fgUCS4LEncodingString2, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4LEncodingString2 + , swapped + ) + ); + + // + // Add in our mappings for UTF-16 and UCS-4, big endian + // + swapped = false; + #if defined(ENDIANMODE_LITTLE) + swapped = true; + #endif + gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUTF16Transcoder>(XMLUni::fgUTF16BEncodingString, swapped), XMLRecognizer::UTF_16B); + gMappings->put + ( + (void*)XMLUni::fgUTF16BEncodingString, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16BEncodingString + , swapped + ) + ); + + gMappings->put + ( + (void*)XMLUni::fgUTF16BEncodingString2, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16BEncodingString2 + , swapped + ) + ); + + gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUCS4Transcoder>(XMLUni::fgUCS4BEncodingString, swapped), XMLRecognizer::UCS_4B); + gMappings->put + ( + (void*)XMLUni::fgUCS4BEncodingString, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4BEncodingString + , swapped + ) + ); + + gMappings->put + ( + (void*)XMLUni::fgUCS4BEncodingString2, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4BEncodingString2 + , swapped + ) + ); + + // + // Add in our mappings for UTF-16 and UCS-4 which does not indicate endian + // assumes the same endian encoding as the OS + // + + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString2, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString2 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString3, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString3 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString4, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString4 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUCS4EncodingString, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4EncodingString + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUCS4EncodingString2, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4EncodingString2 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUCS4EncodingString3, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4EncodingString3 + , false + ) + ); + + // + // Add in our mappings for IBM037, and the one alias we support for + // it, which is EBCDIC-CP-US. + // + gMappingsRecognizer->setElementAt(new ENameMapFor<XMLEBCDICTranscoder390>(XMLUni::fgEBCDICEncodingString), XMLRecognizer::EBCDIC); + gMappings->put((void*)XMLUni::fgIBM037EncodingString, new ENameMapFor<XMLEBCDICTranscoder390>(XMLUni::fgIBM037EncodingString)); + gMappings->put((void*)XMLUni::fgIBM037EncodingString2, new ENameMapFor<XMLEBCDICTranscoder390>(XMLUni::fgIBM037EncodingString2)); + + + //hhe + gMappings->put((void*)XMLUni::fgIBM1047EncodingString, new ENameMapFor<XMLIBM1047Transcoder390>(XMLUni::fgIBM1047EncodingString)); + gMappings->put((void*)XMLUni::fgIBM1047EncodingString2, new ENameMapFor<XMLIBM1047Transcoder390>(XMLUni::fgIBM1047EncodingString2)); + + // + // Add in our mappings for IBM037 with Euro update, i.e. IBM1140. It + // has alias IBM01140, the one suggested by IANA + // + gMappings->put((void*)XMLUni::fgIBM1140EncodingString, new ENameMapFor<XMLIBM1140Transcoder390>(XMLUni::fgIBM1140EncodingString)); + gMappings->put((void*)XMLUni::fgIBM1140EncodingString2, new ENameMapFor<XMLIBM1140Transcoder390>(XMLUni::fgIBM1140EncodingString2)); + gMappings->put((void*)XMLUni::fgIBM1140EncodingString3, new ENameMapFor<XMLIBM1140Transcoder390>(XMLUni::fgIBM1140EncodingString3)); + gMappings->put((void*)XMLUni::fgIBM1140EncodingString4, new ENameMapFor<XMLIBM1140Transcoder390>(XMLUni::fgIBM1140EncodingString4)); + + // + // Add in our mappings for Windows-1252. We don't have any aliases for + // this one, so there is just one mapping. + // + gMappings->put((void*)XMLUni::fgWin1252EncodingString, new ENameMapFor<XMLWin1252Transcoder390>(XMLUni::fgWin1252EncodingString)); + } // use new intrinsics + else // use old intrinsics + { + // + // A stupid way to increment the fCurCount inside the RefVectorOf + // + for (unsigned int i = 0; i < XMLRecognizer::Encodings_Count; i++) + gMappingsRecognizer->addElement(0); + + // + // Add in the magical mapping for the native XMLCh transcoder. This + // is used for internal entities. + // + gMappingsRecognizer->setElementAt(new ENameMapFor<XMLChTranscoder>(XMLUni::fgXMLChEncodingString), XMLRecognizer::XERCES_XMLCH); + gMappings->put((void*)XMLUni::fgXMLChEncodingString, new ENameMapFor<XMLChTranscoder>(XMLUni::fgXMLChEncodingString)); + + // + // Add in our mappings for ASCII. + // + gMappingsRecognizer->setElementAt(new ENameMapFor<XMLASCIITranscoder>(XMLUni::fgUSASCIIEncodingString), XMLRecognizer::US_ASCII); + gMappings->put((void*)XMLUni::fgUSASCIIEncodingString, new ENameMapFor<XMLASCIITranscoder>(XMLUni::fgUSASCIIEncodingString)); + gMappings->put((void*)XMLUni::fgUSASCIIEncodingString2, new ENameMapFor<XMLASCIITranscoder>(XMLUni::fgUSASCIIEncodingString2)); + gMappings->put((void*)XMLUni::fgUSASCIIEncodingString3, new ENameMapFor<XMLASCIITranscoder>(XMLUni::fgUSASCIIEncodingString3)); + gMappings->put((void*)XMLUni::fgUSASCIIEncodingString4, new ENameMapFor<XMLASCIITranscoder>(XMLUni::fgUSASCIIEncodingString4)); + + + // + // Add in our mappings for UTF-8 + // + gMappingsRecognizer->setElementAt(new ENameMapFor<XMLUTF8Transcoder>(XMLUni::fgUTF8EncodingString), XMLRecognizer::UTF_8); + gMappings->put((void*)XMLUni::fgUTF8EncodingString, new ENameMapFor<XMLUTF8Transcoder>(XMLUni::fgUTF8EncodingString)); + gMappings->put((void*)XMLUni::fgUTF8EncodingString2, new ENameMapFor<XMLUTF8Transcoder>(XMLUni::fgUTF8EncodingString2)); + + // + // Add in our mappings for Latin1 + // + gMappings->put((void*)XMLUni::fgISO88591EncodingString, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString2, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString2)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString3, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString3)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString4, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString4)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString5, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString5)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString6, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString6)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString7, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString7)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString8, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString8)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString9, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString9)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString10, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString10)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString11, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString11)); + gMappings->put((void*)XMLUni::fgISO88591EncodingString12, new ENameMapFor<XML88591Transcoder>(XMLUni::fgISO88591EncodingString12)); + + // + // Add in our mappings for UTF-16 and UCS-4, little endian + // + bool swapped = false; + + #if defined(ENDIANMODE_BIG) + swapped = true; + #endif + gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUTF16Transcoder>(XMLUni::fgUTF16LEncodingString, swapped), XMLRecognizer::UTF_16L); + gMappings->put + ( + (void*)XMLUni::fgUTF16LEncodingString, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16LEncodingString + , swapped + ) + ); + + gMappings->put + ( + (void*)XMLUni::fgUTF16LEncodingString2, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16LEncodingString2 + , swapped + ) + ); + + gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUCS4Transcoder>(XMLUni::fgUCS4LEncodingString, swapped), XMLRecognizer::UCS_4L); + gMappings->put + ( + (void*)XMLUni::fgUCS4LEncodingString, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4LEncodingString + , swapped + ) + ); + + gMappings->put + ( + (void*)XMLUni::fgUCS4LEncodingString2, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4LEncodingString2 + , swapped + ) + ); + + // + // Add in our mappings for UTF-16 and UCS-4, big endian + // + swapped = false; + #if defined(ENDIANMODE_LITTLE) + swapped = true; + #endif + gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUTF16Transcoder>(XMLUni::fgUTF16BEncodingString, swapped), XMLRecognizer::UTF_16B); + gMappings->put + ( + (void*)XMLUni::fgUTF16BEncodingString, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16BEncodingString + , swapped + ) + ); + + gMappings->put + ( + (void*)XMLUni::fgUTF16BEncodingString2, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16BEncodingString2 + , swapped + ) + ); + + gMappingsRecognizer->setElementAt(new EEndianNameMapFor<XMLUCS4Transcoder>(XMLUni::fgUCS4BEncodingString, swapped), XMLRecognizer::UCS_4B); + gMappings->put + ( + (void*)XMLUni::fgUCS4BEncodingString, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4BEncodingString + , swapped + ) + ); + + gMappings->put + ( + (void*)XMLUni::fgUCS4BEncodingString2, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4BEncodingString2 + , swapped + ) + ); + + // + // Add in our mappings for UTF-16 and UCS-4 which does not indicate endian + // assumes the same endian encoding as the OS + // + + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString2, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString2 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString3, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString3 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUTF16EncodingString4, + new EEndianNameMapFor<XMLUTF16Transcoder> + ( + XMLUni::fgUTF16EncodingString4 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUCS4EncodingString, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4EncodingString + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUCS4EncodingString2, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4EncodingString2 + , false + ) + ); + gMappings->put + ( + (void*)XMLUni::fgUCS4EncodingString3, + new EEndianNameMapFor<XMLUCS4Transcoder> + ( + XMLUni::fgUCS4EncodingString3 + , false + ) + ); + + // + // Add in our mappings for IBM037, and the one alias we support for + // it, which is EBCDIC-CP-US. + // + gMappingsRecognizer->setElementAt(new ENameMapFor<XMLEBCDICTranscoder>(XMLUni::fgEBCDICEncodingString), XMLRecognizer::EBCDIC); + gMappings->put((void*)XMLUni::fgIBM037EncodingString, new ENameMapFor<XMLEBCDICTranscoder>(XMLUni::fgIBM037EncodingString)); + gMappings->put((void*)XMLUni::fgIBM037EncodingString2, new ENameMapFor<XMLEBCDICTranscoder>(XMLUni::fgIBM037EncodingString2)); + + + //hhe + gMappings->put((void*)XMLUni::fgIBM1047EncodingString, new ENameMapFor<XMLIBM1047Transcoder>(XMLUni::fgIBM1047EncodingString)); + gMappings->put((void*)XMLUni::fgIBM1047EncodingString2, new ENameMapFor<XMLIBM1047Transcoder>(XMLUni::fgIBM1047EncodingString2)); + + // + // Add in our mappings for IBM037 with Euro update, i.e. IBM1140. It + // has alias IBM01140, the one suggested by IANA + // + gMappings->put((void*)XMLUni::fgIBM1140EncodingString, new ENameMapFor<XMLIBM1140Transcoder>(XMLUni::fgIBM1140EncodingString)); + gMappings->put((void*)XMLUni::fgIBM1140EncodingString2, new ENameMapFor<XMLIBM1140Transcoder>(XMLUni::fgIBM1140EncodingString2)); + gMappings->put((void*)XMLUni::fgIBM1140EncodingString3, new ENameMapFor<XMLIBM1140Transcoder>(XMLUni::fgIBM1140EncodingString3)); + gMappings->put((void*)XMLUni::fgIBM1140EncodingString4, new ENameMapFor<XMLIBM1140Transcoder>(XMLUni::fgIBM1140EncodingString4)); + + // + // Add in our mappings for Windows-1252. We don't have any aliases for + // this one, so there is just one mapping. + // + gMappings->put((void*)XMLUni::fgWin1252EncodingString, new ENameMapFor<XMLWin1252Transcoder>(XMLUni::fgWin1252EncodingString)); + } // use old intrinsics }//end initTransService() diff --git a/src/xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp b/src/xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp index 49a788d2ff2ee8fbf393de3d034931cf6501bef2..e2a379540323420b60f253116bbf6d2ea9f4127a 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp +++ b/src/xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp @@ -56,13 +56,16 @@ /* * $Log$ + * Revision 1.2 2004/04/22 22:46:46 neilg + * not all 390 processors support the new transcoding instructions; this patch makes Xerces work there as well. Thanks to Steve Dulin + * * Revision 1.1 2004/02/06 15:02:11 cargilld * Intrinsic transcoding support for 390. * */ -#ifndef XML256TABLETRANSCODER_HPP -#define XML256TABLETRANSCODER_HPP +#ifndef XML256TABLETRANSCODER390_HPP +#define XML256TABLETRANSCODER390_HPP #include <xercesc/util/TransService.hpp> diff --git a/src/xercesc/util/Transcoders/Uniconv390/XML88591Transcoder390.hpp b/src/xercesc/util/Transcoders/Uniconv390/XML88591Transcoder390.hpp index 5f3ce444704dbdd62b05fce5a6dc83b760b5ca7c..836348a98c6fa263c5baaa46f42b7c9a77372f08 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/XML88591Transcoder390.hpp +++ b/src/xercesc/util/Transcoders/Uniconv390/XML88591Transcoder390.hpp @@ -56,13 +56,16 @@ /* * $Log$ + * Revision 1.2 2004/04/22 22:46:46 neilg + * not all 390 processors support the new transcoding instructions; this patch makes Xerces work there as well. Thanks to Steve Dulin + * * Revision 1.1 2004/02/06 15:02:11 cargilld * Intrinsic transcoding support for 390. * */ -#ifndef XML88591TRANSCODER_HPP -#define XML88591TRANSCODER_HPP +#ifndef XML88591TRANSCODER390_HPP +#define XML88591TRANSCODER390_HPP #include <xercesc/util/XercesDefs.hpp> #include <xercesc/util/TransService.hpp> diff --git a/src/xercesc/util/Transcoders/Uniconv390/XMLASCIITranscoder390.hpp b/src/xercesc/util/Transcoders/Uniconv390/XMLASCIITranscoder390.hpp index 61234b756c7c9de06dd25d905464564330289a8f..61ab3bd5306637fae1ae4e3d455b3ffec2bad2b4 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/XMLASCIITranscoder390.hpp +++ b/src/xercesc/util/Transcoders/Uniconv390/XMLASCIITranscoder390.hpp @@ -56,13 +56,16 @@ /* * $Log$ + * Revision 1.2 2004/04/22 22:46:46 neilg + * not all 390 processors support the new transcoding instructions; this patch makes Xerces work there as well. Thanks to Steve Dulin + * * Revision 1.1 2004/02/06 15:02:11 cargilld * Intrinsic transcoding support for 390. * */ -#ifndef XMLASCIITRANSCODER_HPP -#define XMLASCIITRANSCODER_HPP +#ifndef XMLASCIITRANSCODER390_HPP +#define XMLASCIITRANSCODER390_HPP #include <xercesc/util/XercesDefs.hpp> #include <xercesc/util/TransService.hpp> diff --git a/src/xercesc/util/Transcoders/Uniconv390/XMLEBCDICTranscoder390.hpp b/src/xercesc/util/Transcoders/Uniconv390/XMLEBCDICTranscoder390.hpp index 1815735539cbead06848fad3dfe39c626ecd6d61..efe04882748dbdd480859f8aa604bed434693a79 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/XMLEBCDICTranscoder390.hpp +++ b/src/xercesc/util/Transcoders/Uniconv390/XMLEBCDICTranscoder390.hpp @@ -56,13 +56,16 @@ /* * $Log$ + * Revision 1.2 2004/04/22 22:46:46 neilg + * not all 390 processors support the new transcoding instructions; this patch makes Xerces work there as well. Thanks to Steve Dulin + * * Revision 1.1 2004/02/06 15:02:11 cargilld * Intrinsic transcoding support for 390. * */ -#ifndef XMLEBCDICTRANSCODER_HPP -#define XMLEBCDICTRANSCODER_HPP +#ifndef XMLEBCDICTRANSCODER390_HPP +#define XMLEBCDICTRANSCODER390_HPP #include <xercesc/util/XercesDefs.hpp> #include <xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp> diff --git a/src/xercesc/util/Transcoders/Uniconv390/XMLIBM1047Transcoder390.hpp b/src/xercesc/util/Transcoders/Uniconv390/XMLIBM1047Transcoder390.hpp index 5ac8ad73c9acb91decd4c98697dd3de7a5e61204..0c8f2c607aad1c820a212dac75504715c2eab509 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/XMLIBM1047Transcoder390.hpp +++ b/src/xercesc/util/Transcoders/Uniconv390/XMLIBM1047Transcoder390.hpp @@ -56,13 +56,16 @@ /* * $Log$ + * Revision 1.2 2004/04/22 22:46:46 neilg + * not all 390 processors support the new transcoding instructions; this patch makes Xerces work there as well. Thanks to Steve Dulin + * * Revision 1.1 2004/02/06 15:02:11 cargilld * Intrinsic transcoding support for 390. * */ -#ifndef XMLIBM1047TRANSCODER_HPP -#define XMLIBM1047TRANSCODER_HPP +#ifndef XMLIBM1047TRANSCODER390_HPP +#define XMLIBM1047TRANSCODER390_HPP #include <xercesc/util/XercesDefs.hpp> #include <xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp> diff --git a/src/xercesc/util/Transcoders/Uniconv390/XMLIBM1140Transcoder390.hpp b/src/xercesc/util/Transcoders/Uniconv390/XMLIBM1140Transcoder390.hpp index 6c6757a7bcdc9f002121fb99117203f56a066209..56d2520b58d006fde5aa3eecb36ba076661aa7e0 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/XMLIBM1140Transcoder390.hpp +++ b/src/xercesc/util/Transcoders/Uniconv390/XMLIBM1140Transcoder390.hpp @@ -56,13 +56,16 @@ /* * $Log$ + * Revision 1.3 2004/04/22 22:46:46 neilg + * not all 390 processors support the new transcoding instructions; this patch makes Xerces work there as well. Thanks to Steve Dulin + * * Revision 1.2 2004/02/06 18:18:09 cargilld * Misc 390 changes. * */ -#ifndef XMLIBM1140TRANSCODER_HPP -#define XMLIBM1140TRANSCODER_HPP +#ifndef XMLIBM1140TRANSCODER390_HPP +#define XMLIBM1140TRANSCODER390_HPP #include <xercesc/util/XercesDefs.hpp> #include <xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp> diff --git a/src/xercesc/util/Transcoders/Uniconv390/XMLUTF8Transcoder390.hpp b/src/xercesc/util/Transcoders/Uniconv390/XMLUTF8Transcoder390.hpp index 3f1454b96ec14f9770992abe90c65e01a0862c57..81ca9769d795f71847f9dc12dbdb8238bad60c98 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/XMLUTF8Transcoder390.hpp +++ b/src/xercesc/util/Transcoders/Uniconv390/XMLUTF8Transcoder390.hpp @@ -56,13 +56,16 @@ /* * $Log$ + * Revision 1.3 2004/04/22 22:46:46 neilg + * not all 390 processors support the new transcoding instructions; this patch makes Xerces work there as well. Thanks to Steve Dulin + * * Revision 1.2 2004/02/06 18:18:09 cargilld * Misc 390 changes. * */ -#ifndef XMLUTF8TRANSCODER_HPP -#define XMLUTF8TRANSCODER_HPP +#ifndef XMLUTF8TRANSCODER390_HPP +#define XMLUTF8TRANSCODER390_HPP #include <xercesc/util/XercesDefs.hpp> #include <xercesc/util/TransService.hpp> diff --git a/src/xercesc/util/Transcoders/Uniconv390/XMLWin1252Transcoder390.hpp b/src/xercesc/util/Transcoders/Uniconv390/XMLWin1252Transcoder390.hpp index 2c55e522df34826fee2be88a3e5682c973aeb1c5..30c09db6e30031f87c3def664a221adb580cd594 100644 --- a/src/xercesc/util/Transcoders/Uniconv390/XMLWin1252Transcoder390.hpp +++ b/src/xercesc/util/Transcoders/Uniconv390/XMLWin1252Transcoder390.hpp @@ -56,13 +56,16 @@ /* * $Log$ + * Revision 1.2 2004/04/22 22:46:46 neilg + * not all 390 processors support the new transcoding instructions; this patch makes Xerces work there as well. Thanks to Steve Dulin + * * Revision 1.1 2004/02/06 15:02:11 cargilld * Intrinsic transcoding support for 390. * */ -#ifndef XMLWIN1252TRANSCODER_HPP -#define XMLWIN2152TRANSCODER_HPP +#ifndef XMLWIN1252TRANSCODER390_HPP +#define XMLWIN2152TRANSCODER390_HPP #include <xercesc/util/XercesDefs.hpp> #include <xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp>