--- lame-3.100/frontend/parse.c.orig 2017-10-15 11:49:51.389922000 +0200 +++ lame-3.100/frontend/parse.c 2017-10-15 11:56:02.377439500 +0200 @@ -70,8 +70,6 @@ #ifdef HAVE_ICONV #include #include -#include -#include #endif #if defined _ALLOW_INTERNAL_OPTIONS @@ -153,7 +151,9 @@ size_t n = 1; char dst[32]; char* src = "A"; - char* cur_code = nl_langinfo(CODESET); + char* env_lang = getenv("LANG"); + char* xxx_code = env_lang == NULL ? NULL : strrchr(env_lang, '.'); + char* cur_code = xxx_code == NULL ? "" : xxx_code+1; iconv_t xiconv = iconv_open(cur_code, "ISO_8859-1"); if (xiconv != (iconv_t)-1) { for (n = 0; n < 32; ++n) { @@ -181,7 +181,9 @@ size_t const n = l*4; dst = calloc(n+4, 4); if (dst != 0) { - char* cur_code = nl_langinfo(CODESET); + char* env_lang = getenv("LANG"); + char* xxx_code = env_lang == NULL ? NULL : strrchr(env_lang, '.'); + char* cur_code = xxx_code == NULL ? "" : xxx_code+1; iconv_t xiconv = iconv_open(cur_code, "ISO_8859-1"); if (xiconv != (iconv_t)-1) { char* i_ptr = src; @@ -205,7 +207,9 @@ size_t const n = l*4; dst = calloc(n+4, 4); if (dst != 0) { - char* cur_code = nl_langinfo(CODESET); + char* env_lang = getenv("LANG"); + char* xxx_code = env_lang == NULL ? NULL : strrchr(env_lang, '.'); + char* cur_code = xxx_code == NULL ? "" : xxx_code+1; iconv_t xiconv = iconv_open(cur_code, "UTF-16LE"); if (xiconv != (iconv_t)-1) { char* i_ptr = (char*)src; @@ -231,7 +235,9 @@ size_t const n = l*4; dst = calloc(n+4, 4); if (dst != 0) { - char* cur_code = nl_langinfo(CODESET); + char* env_lang = getenv("LANG"); + char* xxx_code = env_lang == NULL ? NULL : strrchr(env_lang, '.'); + char* cur_code = xxx_code == NULL ? "" : xxx_code+1; iconv_t xiconv = iconv_open("ISO_8859-1//TRANSLIT", cur_code); if (xiconv != (iconv_t)-1) { char* i_ptr = (char*)src; @@ -257,7 +263,9 @@ size_t const n = (l+1)*4; dst = calloc(n+4, 4); if (dst != 0) { - char* cur_code = nl_langinfo(CODESET); + char* env_lang = getenv("LANG"); + char* xxx_code = env_lang == NULL ? NULL : strrchr(env_lang, '.'); + char* cur_code = xxx_code == NULL ? "" : xxx_code+1; iconv_t xiconv = iconv_open("UTF-16LE//TRANSLIT", cur_code); dst[0] = 0xff; dst[1] = 0xfe; @@ -1513,9 +1521,6 @@ enum TextEncoding id3_tenc = TENC_LATIN1; #endif -#ifdef HAVE_ICONV - setlocale(LC_CTYPE, ""); -#endif inPath[0] = '\0'; outPath[0] = '\0'; /* turn on display options. user settings may turn them off below */