static Py_off_t
_portable_ftell(FILE* fp)
{
+#ifdef HAVE_BROKEN_FTELL
+ /* ftell doesn't fail for tty fds on FreeBSD and some others */
+ if (isatty(fileno(fp))) {
+ errno = ESPIPE;
+ return -1;
+ }
+#endif
#if !defined(HAVE_LARGEFILE_SUPPORT)
return ftell(fp);
#elif defined(HAVE_FTELLO) && SIZEOF_OFF_T >= 8
#! /bin/sh
-# From configure.in Revision: 39267 .
+# From configure.in Revision: 41662 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.59 for python 2.5.
#
fi
+echo "$as_me:$LINENO: checking for broken ftell()" >&5
+echo $ECHO_N "checking for broken ftell()... $ECHO_C" >&6
+if test "${ac_cv_broken_ftell+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "$cross_compiling" = yes; then
+ ac_cv_broken_ftell=no
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <stdio.h>
+int main()
+{
+ long val = ftell(stdin);
+ if (val != -1)
+ exit(0);
+ exit(1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_broken_ftell=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_broken_ftell=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+
+echo "$as_me:$LINENO: result: $ac_cv_broken_ftell" >&5
+echo "${ECHO_T}$ac_cv_broken_ftell" >&6
+if test "$ac_cv_broken_ftell" = yes
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BROKEN_FTELL 1
+_ACEOF
+
+fi
+
# Before we can test tzset, we need to check if struct tm has a tm_zone
# (which is not required by ISO C or UNIX spec) and/or if we support
# tzname[]
[Define if poll() sets errno on invalid file descriptors.])
fi
+AC_MSG_CHECKING(for broken ftell())
+AC_CACHE_VAL(ac_cv_broken_ftell, [
+AC_TRY_RUN([
+#include <stdio.h>
+int main()
+{
+ long val = ftell(stdin);
+ if (val != -1)
+ exit(0);
+ exit(1);
+}
+],
+ac_cv_broken_ftell=yes,
+ac_cv_broken_ftell=no,
+ac_cv_broken_ftell=no)])
+AC_MSG_RESULT($ac_cv_broken_ftell)
+if test "$ac_cv_broken_ftell" = yes
+then
+ AC_DEFINE(HAVE_BROKEN_FTELL, 1,
+ [Define if ftell() set errno on tty files.])
+fi
+
# Before we can test tzset, we need to check if struct tm has a tm_zone
# (which is not required by ISO C or UNIX spec) and/or if we support
# tzname[]