# # # add_file "m4/iconv_translit.m4" # content [c619e46f3b1c7baa6ca9ebc2da43b8e21a3ab25c] # # patch "charset.cc" # from [89b0c3af0ee152b1fe15a4c20da30e9a472afa3f] # to [f71e4e053df8cfde7175a67bf9b6ba0fbbf7368e] # # patch "configure.ac" # from [f6ee4972b37ed8b9c2f38c876f6c21dd548d8c3f] # to [4f5b5aa65420d4fff1a9b82ed6540710ad32a8b4] # ============================================================ --- m4/iconv_translit.m4 c619e46f3b1c7baa6ca9ebc2da43b8e21a3ab25c +++ m4/iconv_translit.m4 c619e46f3b1c7baa6ca9ebc2da43b8e21a3ab25c @@ -0,0 +1,18 @@ +AC_DEFUN([AC_FUNC_ICONV_TRANSLIT], +[AC_CACHE_CHECK([if iconv supports //IGNORE//TRANSLIT], + ac_cv_iconv_translit, [ + AC_TRY_RUN([ +#include + +int main() +{ + return iconv_open("ASCII//IGNORE//TRANSLIT", "UTF8") == (iconv_t)(-1); +} +], + ac_cv_iconv_translit=yes, + ac_cv_iconv_translit=no, + ac_cv_iconv_translit=no) + ]) +if test "$ac_cv_iconv_translit" = "yes"; then + AC_DEFINE(ICONV_TRANSLIT, 1, [Define if iconv supports //IGNORE//TRANSLIT.]) +fi]) ============================================================ --- charset.cc 89b0c3af0ee152b1fe15a4c20da30e9a472afa3f +++ charset.cc f71e4e053df8cfde7175a67bf9b6ba0fbbf7368e @@ -48,8 +48,10 @@ charset_convert(string const & src_chars else { string dst_charset_real(dst_charset); +#ifdef ICONV_TRANSLIT if (best_effort) dst_charset_real += "//IGNORE//TRANSLIT"; +#endif char * converted = stringprep_convert(src.c_str(), dst_charset_real.c_str(), src_charset.c_str()); ============================================================ --- configure.ac f6ee4972b37ed8b9c2f38c876f6c21dd548d8c3f +++ configure.ac 4f5b5aa65420d4fff1a9b82ed6540710ad32a8b4 @@ -115,6 +115,7 @@ AC_FUNC_LOCALE_WORKS AC_FUNC_STAT AC_FUNC_MMAP AC_FUNC_LOCALE_WORKS +AC_FUNC_ICONV_TRANSLIT AC_CHECK_FUNCS([atexit memset mkstemp setenv strptime lrint \ __cxa_current_exception_type __cxa_demangle])