configure.ac: define ICONV_OMITS_BOM if necessary
From commit 79444c9294
, ("utf8: handle systems that don't write BOM for
UTF-16", 2019-02-12), we're supporting those systems with iconv that
omits BOM with:
make ICONV_OMITS_BOM=Yes
However, configure script wasn't taught to detect those systems.
Teach configure to do so.
Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
99b2ba35f5
commit
1ba6e7aecd
49
configure.ac
49
configure.ac
@ -844,12 +844,61 @@ AC_MSG_CHECKING([for old iconv()])
|
||||
AC_COMPILE_IFELSE([OLDICONVTEST_SRC],
|
||||
[AC_MSG_RESULT([no])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_DEFINE(HAVE_OLD_ICONV, 1)
|
||||
OLD_ICONV=UnfortunatelyYes])
|
||||
|
||||
GIT_UNSTASH_FLAGS($ICONVDIR)
|
||||
|
||||
GIT_CONF_SUBST([OLD_ICONV])
|
||||
|
||||
#
|
||||
# Define ICONV_OMITS_BOM if you are on a system which
|
||||
# iconv omits bom for utf-{16,32}
|
||||
if test -z "$NO_ICONV"; then
|
||||
AC_CACHE_CHECK([whether iconv omits bom for utf-16 and utf-32],
|
||||
[ac_cv_iconv_omits_bom],
|
||||
[
|
||||
old_LIBS="$LIBS"
|
||||
if test -n "$NEEDS_LIBICONV"; then
|
||||
LIBS="$LIBS -liconv"
|
||||
fi
|
||||
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
|
||||
#include <iconv.h>
|
||||
#ifdef HAVE_OLD_ICONV
|
||||
typedef const char *iconv_ibp;
|
||||
#else
|
||||
typedef char *iconv_ibp;
|
||||
#endif
|
||||
],
|
||||
[[
|
||||
int v;
|
||||
iconv_t conv;
|
||||
char in[] = "a"; iconv_ibp pin = in;
|
||||
char out[20] = ""; char *pout = out;
|
||||
size_t isz = sizeof in;
|
||||
size_t osz = sizeof out;
|
||||
|
||||
conv = iconv_open("UTF-16", "UTF-8");
|
||||
iconv(conv, &pin, &isz, &pout, &osz);
|
||||
iconv_close(conv);
|
||||
v = (unsigned char)(out[0]) + (unsigned char)(out[1]);
|
||||
return v != 0xfe + 0xff;
|
||||
]])],
|
||||
[ac_cv_iconv_omits_bom=no],
|
||||
[ac_cv_iconv_omits_bom=yes])
|
||||
|
||||
LIBS="$old_LIBS"
|
||||
])
|
||||
if test "x$ac_cv_iconv_omits_bom" = xyes; then
|
||||
ICONV_OMITS_BOM=Yes
|
||||
else
|
||||
ICONV_OMITS_BOM=
|
||||
fi
|
||||
GIT_CONF_SUBST([ICONV_OMITS_BOM])
|
||||
fi
|
||||
|
||||
## Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_MSG_NOTICE([CHECKS for typedefs, structures, and compiler characteristics])
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user