Hi,

@Ronald: Sorry, I probably clicked BCC instead of CC.

@Erich: OK, I'll wait until Ubuntu syncs the Enigma package, then upgrade to
karmic and test.
BTW, I found the request for syncing (it's actually a bug report):
https://bugs.launchpad.net/ubuntu/+source/enigma/+bug/398442

Greets,
Alexandros

2009/7/12 Ronald Lamprecht <r.lampre...@t-online.de>

> Hi,
>
> Erich Schubert wrote:
>
>> However I just received a new bug report with respect to Xerces 3 and
>> AMD64.
>> See attached patch which hopefully should resolve the issue. As I read
>> from the bug report at
>> http://bugs.debian.org/536682
>> it seems that it comes from assuming XMLSize_t == int which is true on
>> i386 but not on amd64.
>>
>> It should also affect the 1.10 branch; the patch will likely apply
>> with some fuzz.
>>
>
> The syntax incompatibility has been introduced by Xerces revision 553923 on
> July 7th 2007. That has been unfortunatly the week in which my old PC
>  mainboard broke and I had to set up a new one. So I obviously missed the
> notification and it did not cause compiler warnings on my system ...
>
> Unfortunatly your fix is incomplete and breaks the backward compatibility
> for Xerces 2.x. Please use the attached patch that has been commited in
> r1755 to the trunk and r1756 to the 1.01 branch.
>
> Greets,
>
> Ronald
>
> Index: src/Utf8ToXML.cc
> ===================================================================
> --- src/Utf8ToXML.cc    (revision 1754)
> +++ src/Utf8ToXML.cc    (working copy)
> @@ -40,11 +40,19 @@
>     }
>
>     void Utf8ToXML::init(const char * const toTranscode) {
> +#if _XERCES_VERSION >= 30000
> +        XMLSize_t srcLength = std::strlen(toTranscode) + 1;
> +        // make safe assumptions on utf-16 size
> +        XMLSize_t maxDestLength = srcLength;
> +        XMLSize_t charsEaten;
> +        XMLSize_t destLength;
> +#else
>         unsigned int srcLength = std::strlen(toTranscode) + 1;
>         // make safe assumptions on utf-16 size
>         unsigned int maxDestLength = srcLength;
>         unsigned int charsEaten;
>         unsigned int destLength;
> +#endif
>         unsigned char *charSizes = new unsigned char[maxDestLength]; //
> just junk
>         // make a buffer - size does not matter - the object is temporary
>         xmlString = new XMLCh[maxDestLength];
> Index: src/XMLtoUtf8.cc
> ===================================================================
> --- src/XMLtoUtf8.cc    (revision 1754)
> +++ src/XMLtoUtf8.cc    (working copy)
> @@ -27,11 +27,19 @@
>  namespace enigma
>  {
>     XMLtoUtf8::XMLtoUtf8(const XMLCh* const toTranscode) {
> +#if _XERCES_VERSION >= 30000
> +        XMLSize_t srcLength = XMLString::stringLen(toTranscode) + 1;
> +        // make safe assumptions on utf-8 size
> +        XMLSize_t maxDestLength = 3 * srcLength;
> +        XMLSize_t charsEaten;
> +        XMLSize_t destLength;
> +#else
>         unsigned int srcLength = XMLString::stringLen(toTranscode) + 1;
>         // make safe assumptions on utf-8 size
>         unsigned int maxDestLength = 3 * srcLength;
>         unsigned int charsEaten;
>         unsigned int destLength;
> +#endif
>         // make a buffer - size does not matter - the object is temporary
>         utf8String = new char[maxDestLength];
>         // transcode to utf-8 -- there are no unrepresentable chars
>
> _______________________________________________
> Enigma-devel mailing list
> Enigma-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/enigma-devel
>
>
_______________________________________________
Enigma-devel mailing list
Enigma-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/enigma-devel

Reply via email to