$NetBSD: patch-ac,v 1.4 2009/12/01 11:18:48 drochner Exp $ --- util.c.orig 2009-08-20 23:57:18.000000000 +0200 +++ util.c @@ -30,9 +30,9 @@ */ #include -#include #include #include +#include #include #include #include @@ -43,6 +43,7 @@ #include #include #include +#include #include #include @@ -66,26 +67,12 @@ static iconv_t locale2utf16be = (iconv int obexapp_util_locale_init(void) { - int one = 1; - locale = setlocale(LC_CTYPE, ""); + setlocale(LC_CTYPE, ""); + locale = nl_langinfo(CODESET); if (locale == NULL) return (-1); - if (strcmp(locale, "ASCII") == 0 || - strcmp(locale, "C") == 0 || - strcmp(locale, "POSIX") == 0 || - strcmp(locale, "US-ASCII") == 0) - locale = "en_US.US-ASCII"; - - locale = strchr(locale, '.'); - if (locale == NULL) - return (-1); - - locale ++; - if (locale[0] == '\0') - return (-1); - utf16 = (strstr(locale, "UTF-16") != NULL)? 1 : 0; /* UTF-8 -> current locale */ @@ -94,7 +81,6 @@ obexapp_util_locale_init(void) return (-1); iconv(utf82locale, NULL, NULL, NULL, NULL); - iconvctl(utf82locale, ICONV_SET_DISCARD_ILSEQ, &one); /* current locale -> UTF-8 */ locale2utf8 = iconv_open("UTF-8", locale); @@ -104,7 +90,6 @@ obexapp_util_locale_init(void) } iconv(locale2utf8, NULL, NULL, NULL, NULL); - iconvctl(locale2utf8, ICONV_SET_DISCARD_ILSEQ, &one); /* UTF-16BE -> current locale */ utf16be2locale = iconv_open(locale, "UTF-16BE"); @@ -114,7 +99,6 @@ obexapp_util_locale_init(void) } iconv(utf16be2locale, NULL, NULL, NULL, NULL); - iconvctl(utf16be2locale, ICONV_SET_DISCARD_ILSEQ, &one); /* current locale -> UTF-16BE */ locale2utf16be = iconv_open("UTF-16BE", locale); @@ -124,7 +108,6 @@ obexapp_util_locale_init(void) } iconv(locale2utf16be, NULL, NULL, NULL, NULL); - iconvctl(locale2utf16be, ICONV_SET_DISCARD_ILSEQ, &one); return (0); }