diff --git a/src/xercesc/util/TransService.hpp b/src/xercesc/util/TransService.hpp index dd4746e8d9ced56fbd3c576ec2224624b5699d49..5224f26c5041e3b14280388bb4b7f71573f1b8cf 100644 --- a/src/xercesc/util/TransService.hpp +++ b/src/xercesc/util/TransService.hpp @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:13 peiyongz - * Initial revision + * Revision 1.2 2002/04/09 15:44:00 knoaman + * Add lower case string support. + * + * Revision 1.1.1.1 2002/02/01 22:22:13 peiyongz + * sane_include * * Revision 1.14 2001/11/01 23:37:07 jasons * 2001-11-01 Jason E. Stewart <jason@openinformatics.com> @@ -211,6 +214,7 @@ public : virtual bool supportsSrcOfs() const = 0; virtual void upperCase(XMLCh* const toUpperCase) const = 0; + virtual void lowerCase(XMLCh* const toLowerCase) const = 0; // ----------------------------------------------------------------------- // Allow users to add their own encodings to the intrinsinc mapping diff --git a/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp b/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp index 980b2fa866724b31937bccead5261df384103e3c..79cff29210352f7e8f22a617d88e7c8c72262d4c 100644 --- a/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp +++ b/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp @@ -301,6 +301,16 @@ void ICUTransService::upperCase(XMLCh* const toUpperCase) const } } +void ICUTransService::lowerCase(XMLCh* const toLowerCase) const +{ + XMLCh* outPtr = toLowerCase; + while (*outPtr) + { + *outPtr = XMLCh(Unicode::toLowerCase(UChar(*outPtr))); + outPtr++; + } +} + // --------------------------------------------------------------------------- diff --git a/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp b/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp index 031fc63d2e81c8ce3b0f32aaeb757f151dd4ed10..89c086e3ef2c6af8f1cf46388c287bc264e2c70f 100644 --- a/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp +++ b/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:36 peiyongz - * Initial revision + * Revision 1.2 2002/04/09 15:44:00 knoaman + * Add lower case string support. + * + * Revision 1.1.1.1 2002/02/01 22:22:36 peiyongz + * sane_include * * Revision 1.10 2000/03/18 00:00:03 roddey * Initial updates for two way transcoding support @@ -142,6 +145,7 @@ public : virtual bool supportsSrcOfs() const; virtual void upperCase(XMLCh* const toUpperCase) const; + virtual void lowerCase(XMLCh* const toLowerCase) const; protected : diff --git a/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp b/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp index 442b5993695e834203c9bf63be0c569228a77b7e..5c71301badb6a2d1748d86fc2f237e6a900b16ab 100644 --- a/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp +++ b/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp @@ -227,6 +227,15 @@ void IconvTransService::upperCase(XMLCh* const toUpperCase) const } } +void IconvTransService::lowerCase(XMLCh* const toLowerCase) const +{ + XMLCh* outPtr = toLowerCase; + while (*outPtr) + { + *outPtr = towlower(*outPtr); + outPtr++; + } +} // --------------------------------------------------------------------------- diff --git a/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp b/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp index 7ac9a3c2ad69710a492eb8d6dd28463d4b754743..9121f8de2f45d89a1120a1928f92cdcb2689e85f 100644 --- a/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp +++ b/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:36 peiyongz - * Initial revision + * Revision 1.2 2002/04/09 15:44:00 knoaman + * Add lower case string support. + * + * Revision 1.1.1.1 2002/02/01 22:22:36 peiyongz + * sane_include * * Revision 1.8 2000/03/02 19:55:35 roddey * This checkin includes many changes done while waiting for the @@ -132,6 +135,7 @@ public : virtual bool supportsSrcOfs() const; virtual void upperCase(XMLCh* const toUpperCase) const; + virtual void lowerCase(XMLCh* const toLowerCase) const; protected : // ----------------------------------------------------------------------- diff --git a/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.cpp b/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.cpp index 038c0f6fb04f50761e0f15750545d25066b42c6e..d0491c1521ffac8def8824824fc181786b73d108 100644 --- a/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.cpp +++ b/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.cpp @@ -334,6 +334,16 @@ void Iconv390TransService::upperCase(XMLCh* const toUpperCase) const } } +void Iconv390TransService::lowerCase(XMLCh* const toLowerCase) const +{ + XMLCh* outPtr = toLowerCase; + while (*outPtr != 0) { + if ((*outPtr >= 0x41) && (*outPtr <= 0x5A)) + *outPtr = *outPtr + 0x20; + outPtr++; + } +} + // --------------------------------------------------------------------------- unsigned int Iconv390LCPTranscoder::calcRequiredSize(const char* const srcText) { diff --git a/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp b/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp index 30675d32758d0f3001947c382a17416abfcd515f..f0b7839a4456641c148a16dc319ef1fb7051efc9 100644 --- a/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp +++ b/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:36 peiyongz - * Initial revision + * Revision 1.2 2002/04/09 15:44:00 knoaman + * Add lower case string support. + * + * Revision 1.1.1.1 2002/02/01 22:22:36 peiyongz + * sane_include * * Revision 1.3 2000/03/02 19:55:36 roddey * This checkin includes many changes done while waiting for the @@ -125,6 +128,7 @@ public : virtual bool supportsSrcOfs() const; virtual void upperCase(XMLCh* const toUpperCase) const; + virtual void lowerCase(XMLCh* const toLowerCase) const; protected : // ----------------------------------------------------------------------- diff --git a/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp b/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp index 83bdecbc1f218472aae539ed4489f72d3c5eb4b5..2b3b7e7b4c5d339235a2d1f7ead751d1eb876bcf 100644 --- a/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp +++ b/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp @@ -245,6 +245,11 @@ void Iconv400TransService::upperCase(XMLCh* const toUpperCase) const } } +void Iconv400TransService::lowerCase(XMLCh* const toLowerCase) const +{ + //TO DO +} + // --------------------------------------------------------------------------- // Iconv400TransService: The virtual transcoding service API // --------------------------------------------------------------------------- diff --git a/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp b/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp index 95e4b20173f2a9470b12400e3d745094c926ed06..7c87baaa69d799cfbd489760bb54a6d8564b5bff 100644 --- a/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp +++ b/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp @@ -107,6 +107,7 @@ public : virtual bool supportsSrcOfs() const; virtual void upperCase(XMLCh* const toUpperCase) const; + virtual void lowerCase(XMLCh* const toLowerCase) const; protected : diff --git a/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.cpp b/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.cpp index 39845b4786761bc8a5f4907ea44f31f2080822c8..68056fb077b74b0a5ec6d4a86f59dae095067400 100644 --- a/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.cpp +++ b/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.3 2002/04/09 15:44:00 knoaman + * Add lower case string support. + * * Revision 1.2 2002/03/18 13:39:11 tng * [Bug 7162 ] IconvFreeBSDTransService.cpp needs an #include statement fixed to use xercesc. * @@ -830,6 +833,10 @@ void IconvFBSDTransService::upperCase(XMLCh* const toUpperCase) const } } +void IconvFBSDTransService::lowerCase(XMLCh* const toLowerCase) const +{ + //TO DO +} // --------------------------------------------------------------------------- // IconvFBSDLCPTranscoder: The virtual transcoder API diff --git a/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp b/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp index 7e3983a1b3528b18843b904153fade75f9a2839d..550a81a15a2583449169caedb1e525c8e675bba0 100644 --- a/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp +++ b/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:36 peiyongz - * Initial revision + * Revision 1.2 2002/04/09 15:44:00 knoaman + * Add lower case string support. + * + * Revision 1.1.1.1 2002/02/01 22:22:36 peiyongz + * sane_include * * Revision 1.3 2002/01/14 19:45:15 tng * Support IconvFBSD in multi-threading environment with all the possible combinations of threading and transcoding options. By Max Gotlib. @@ -237,6 +240,7 @@ public : virtual bool supportsSrcOfs() const; virtual void upperCase(XMLCh* const toUpperCase) const; + virtual void lowerCase(XMLCh* const toUpperCase) const; protected : // ----------------------------------------------------------------------- diff --git a/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp b/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp index 16d714be5d68cda1231d4b8d895f572aecc69a04..06ed803c29f5b3874df4335c0e48d4079ad2b92b 100644 --- a/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp +++ b/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp @@ -492,6 +492,36 @@ void MacOSUnicodeConverter::upperCase(XMLCh* const toUpperCase) const #endif } +void MacOSUnicodeConverter::lowerCase(XMLCh* const toLowerCase) const +{ + // ะตะตะต TODO: Support CFString for this conversion +#if defined(XML_METROWERKS) + // Use this if there's a reasonable c library available. + // Metrowerks does this reasonably + wchar_t * p = (wchar_t*) toLowerCase; + wchar_t c; + + while ((c = *p) != 0) + *p++ = std::towlower(c); +#elif defined(XML_MACOSX) || true + // This might work, assuming we're on an ascii compiler. + // We'll use this under ProjectBuilder for now. + // Note that this only handles the ascii portion of the + // string, leaving all other characters in original case. + wchar_t * p = (wchar_t*)toLowerCase; + wchar_t c; + + while ((c = *p) != 0) + { + if (c >= 'A' && c <= 'Z') + c += 'a' - 'A'; + *p++ = c; + } +#else + #error Sorry, no support for lowerCase +#endif +} + void MacOSUnicodeConverter::ConvertWideToNarrow(const XMLCh* wide, char* narrow, std::size_t maxChars) diff --git a/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp b/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp index 3d418f225d594849ab97c3f89a7974c24de87572..fe157e391ffea317ae2e80744eb3577c97f79837 100644 --- a/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp +++ b/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp @@ -111,7 +111,7 @@ public : virtual bool supportsSrcOfs() const; virtual void upperCase(XMLCh* const toUpperCase) const; - + virtual void lowerCase(XMLCh* const toLowerCase) const; protected : // ----------------------------------------------------------------------- diff --git a/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp b/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp index d4f063cdd68ab01b221f019180c38827b6b65223..b5556fb1f44ff6bad2d0e7de665eb43c51e8f55a 100644 --- a/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp +++ b/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp @@ -489,6 +489,10 @@ void Win32TransService::upperCase(XMLCh* const toUpperCase) const _wcsupr(toUpperCase); } +void Win32TransService::lowerCase(XMLCh* const toLowerCase) const +{ + _wcslwr(toLowerCase); +} bool Win32TransService::isAlias(const HKEY encodingKey , char* const aliasBuf diff --git a/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp b/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp index 9d31d4946ac3723c5db8f8220e9efae5ec6c8ce1..788098f467aed57bab8dba1b1b327da2dee30ef4 100644 --- a/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp +++ b/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:37 peiyongz - * Initial revision + * Revision 1.2 2002/04/09 15:44:00 knoaman + * Add lower case string support. + * + * Revision 1.1.1.1 2002/02/01 22:22:37 peiyongz + * sane_include * * Revision 1.10 2000/05/09 00:22:45 andyh * Memory Cleanup. XMLPlatformUtils::Terminate() deletes all lazily @@ -154,6 +157,7 @@ public : virtual bool supportsSrcOfs() const; virtual void upperCase(XMLCh* const toUpperCase) const; + virtual void lowerCase(XMLCh* const toLowerCase) const; protected : diff --git a/src/xercesc/util/XMLString.cpp b/src/xercesc/util/XMLString.cpp index 5bdeb439532b7d1a43be9c3d087228bc3b8c35a9..905fb1fa80bec1d5990b14cca54e091806dc3be7 100644 --- a/src/xercesc/util/XMLString.cpp +++ b/src/xercesc/util/XMLString.cpp @@ -1459,7 +1459,7 @@ void XMLString::upperCase(XMLCh* const toUpperCase) void XMLString::lowerCase(XMLCh* const toLowerCase) { // Refer this one to the transcoding service - //XMLPlatformUtils::fgTransService->lowerCase(toLowerCase); + XMLPlatformUtils::fgTransService->lowerCase(toLowerCase); }