|
Packit |
8f70b4 |
AC_DEFUN([LFTP_NEED_TRIO],[
|
|
Packit |
8f70b4 |
AC_CHECK_FUNCS(vsnprintf snprintf)
|
|
Packit |
8f70b4 |
AC_CACHE_CHECK([if trio library is needed], ac_cv_need_trio,
|
|
Packit |
8f70b4 |
[
|
|
Packit |
8f70b4 |
ac_cv_need_trio=no;
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
if test x$ac_cv_func_vsnprintf != xyes -o x$ac_cv_func_snprintf != xyes; then
|
|
Packit |
8f70b4 |
ac_cv_need_trio="yes (because there is no system snprintf/vsnprintf functions)"
|
|
Packit |
8f70b4 |
else
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
|
Packit |
8f70b4 |
int main()
|
|
Packit |
8f70b4 |
{
|
|
Packit |
8f70b4 |
unsigned long long x=0,x1;
|
|
Packit |
8f70b4 |
long long y=0,y1;
|
|
Packit |
8f70b4 |
char buf[128];
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
x=~x;
|
|
Packit |
8f70b4 |
sscanf("0","%llu",&x);
|
|
Packit |
8f70b4 |
if(x!=0) return 1;
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
y=~y;
|
|
Packit |
8f70b4 |
sscanf("0","%lld",&y);
|
|
Packit |
8f70b4 |
if(y!=0) return 1;
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
x=~x;
|
|
Packit |
8f70b4 |
sprintf(buf,"%lld %llu",y,x);
|
|
Packit |
8f70b4 |
sscanf (buf,"%lld %llu",&y1,&x1;;
|
|
Packit |
8f70b4 |
if(x!=x1 || y!=y1)
|
|
Packit |
8f70b4 |
return 1;
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
return 0;
|
|
Packit |
8f70b4 |
}]])],[],[ac_cv_need_trio="yes (because %lld fails)"],[ac_cv_need_trio="no (assumed)"])
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
fi
|
|
Packit |
8f70b4 |
])
|
|
Packit |
8f70b4 |
case $ac_cv_need_trio in
|
|
Packit |
8f70b4 |
yes*)
|
|
Packit |
8f70b4 |
ac_cv_need_trio=yes
|
|
Packit |
8f70b4 |
AC_DEFINE(TRIO_REPLACE_STDIO, 1, [replace system's printf functions])
|
|
Packit |
8f70b4 |
LFTP_CHECK_LIBM
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
*)
|
|
Packit |
8f70b4 |
ac_cv_need_trio=no
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
esac
|
|
Packit |
8f70b4 |
AM_CONDITIONAL(NEED_TRIO, [test "$ac_cv_need_trio" = yes])
|
|
Packit |
8f70b4 |
])
|