Index: citrus_utf1632.c =================================================================== RCS file: /cvsroot/src/lib/libc/citrus/modules/citrus_utf1632.c,v retrieving revision 1.10 diff -u -r1.10 citrus_utf1632.c --- citrus_utf1632.c 15 Mar 2010 15:00:58 -0000 1.10 +++ citrus_utf1632.c 20 Mar 2010 10:34:41 -0000 @@ -155,9 +155,8 @@ goto refetch; } } - } else { - psenc->current_endian = ei->preffered_endian; } + psenc->current_endian = ei->preffered_endian; } endian = psenc->current_endian; @@ -253,14 +252,8 @@ { int ret; wchar_t wc2; - static const char _bom[4] = { -#if BYTE_ORDER == BIG_ENDIAN - 0x00, 0x00, 0xFE, 0xFF, -#else - 0xFF, 0xFE, 0x00, 0x00, -#endif - }; - const char *bom = &_bom[0]; + static const char _bom[4] = { 0x00, 0x00, 0xFE, 0xFF }; + const char *bom; size_t cnt; _DIAGASSERT(ei != NULL); @@ -271,12 +264,11 @@ if (psenc->current_endian == _ENDIAN_UNKNOWN) { if ((ei->mode & _MODE_FORCE_ENDIAN) == 0) { if (ei->mode & _MODE_UTF32) { + bom = &_bom[0]; cnt = 4; } else { + bom = &_bom[2]; cnt = 2; -#if BYTE_ORDER == BIG_ENDIAN - bom += 2; -#endif } if (n < cnt) goto e2big; @@ -411,14 +403,9 @@ ei->cur_max = 6; /* endian + surrogate */ else ei->cur_max = 8; /* endian + normal */ - - if (ei->preffered_endian == _ENDIAN_UNKNOWN) { -#if BYTE_ORDER == BIG_ENDIAN + if (ei->preffered_endian == _ENDIAN_UNKNOWN) ei->preffered_endian = _ENDIAN_BIG; -#else - ei->preffered_endian = _ENDIAN_LITTLE; -#endif - } + return (0); }