Georg Baum <[EMAIL PROTECTED]> writes: | Lars Gullik Bjønnes wrote: | | > Is this really what we want? | > (The answer from my pov is "NO") | > | > IMHO we want to use native endianess internally, and I do not get why | > anything should care about what we do internally. | | The patch does not alter how iconv is called: UCS-4 == UCS-4BE, regardless | of the native endianness. UCS-4 != USC-4INTERNAL (when USC-4INTERNAL exists | at all). | | Outside of unicode.C we always have native endianness, but inside unicode.C | we alwasy get BE from iconv and convert to native endianness in the | callers. You did that already for ucs4 and little endian, but did not do | that for ucs2, so the ucs4 conversion was wrong on big endian machines, and | the ucs2 conversion was wrong on little endian machines.
Right. Note that I only added the bytewapping to make things work for me, not with any greater understanding. | We could as well do | | #ifdef WORDS_BIGENDIAN | call iconv with BE | #else | call iconv with LE | #endif | | and do no conversion with the copying, but since the copying will be | optimized away anyway and it is not completely sure yet that we will even | use iconv I did not think too much about this and simply changed the code | as little as possible. | | I would suggest to come back to this when the unicode conversion is | optimized. Agree. -- Lgb