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