From ab3c5d5b0d774f8cb1bef4bd1aff96c3bbe2da4b Mon Sep 17 00:00:00 2001 From: Ed W Date: Tue, 17 Apr 2012 12:13:32 +0100 Subject: wchar: Fix BOM emitting in iconv_open() Fix incorrect output of BOM when converting charactersets by name. Only affective when iconv/locale enabled. Signed-off-by: Ed Wildgoose Signed-off-by: Bernhard Reutner-Fischer --- libc/misc/wchar/wchar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libc/misc') diff --git a/libc/misc/wchar/wchar.c b/libc/misc/wchar/wchar.c index ab6c617ed..412c557eb 100644 --- a/libc/misc/wchar/wchar.c +++ b/libc/misc/wchar/wchar.c @@ -1308,9 +1308,9 @@ iconv_t weak_function iconv_open(const char *tocode, const char *fromcode) && ((fromcodeset = find_codeset(fromcode)) != 0)) { if ((px = malloc(sizeof(_UC_iconv_t))) != NULL) { px->tocodeset = tocodeset; - px->tobom0 = px->tobom = (tocodeset & 0x10) >> 4; + px->tobom0 = px->tobom = (tocodeset >= 0xe0) ? (tocodeset & 0x10) >> 4 : 0; px->fromcodeset0 = px->fromcodeset = fromcodeset; - px->frombom0 = px->frombom = (fromcodeset & 0x10) >> 4; + px->frombom0 = px->frombom = (fromcodeset >= 0xe0) ? (fromcodeset & 0x10) >> 4 : 0; px->skip_invalid_input = px->tostate.__mask = px->fromstate.__mask = 0; return (iconv_t) px; -- cgit v1.2.3