Thanks Bill for the patch. It's really a valid bug. I've checked in the changes. You may extract the fresh codebase from the cvs repository. Also we're going have a release any time now it'll be integrated in it.
Thanks again, Arundhati Bill Schindler wrote: > The IconvTransService::uppercase method currently has this as its entire body: > > towupper(*toUpperCase); > > The result is that it's a no-op (unless there's two very different > platform-specific definitions for towupper()). It uppercases one character and > never stores it anywhere. > > This bug shows up if you create an XML encoding in lowercase. Encodings like > "utf-8" and "iso-8859-1" create runtime exceptions, whereas "UTF-8" and > "ISO-8859-1" work. The encoding is passed through the upperCase() method -- > which leaves the encoding in its original form. > > Here's a patch to fix it. > > Index: IconvTransService.cpp > =================================================================== > RCS file: > /home/cvspublic/xml-xerces/c/src/util/Transcoders/Iconv/IconvTransService.cpp,v > retrieving revision 1.13 > diff -u -r1.13 IconvTransService.cpp > --- IconvTransService.cpp 2000/02/11 03:10:19 1.13 > +++ IconvTransService.cpp 2000/02/12 12:50:10 > @@ -262,7 +262,12 @@ > > void IconvTransService::upperCase(XMLCh* const toUpperCase) const > { > - towupper(*toUpperCase); > + XMLCh* outPtr = toUpperCase; > + while (*outPtr) > + { > + *outPtr = towupper(*outPtr); > + outPtr++; > + } > } > > (I think I sent this once, but it seems to have vanished into the bit bucket. > If this already went through once, my apologies!) > > --Bill