diff options
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/fileobject.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Objects/fileobject.c b/Objects/fileobject.c index 259a423..1de520b 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -482,6 +482,13 @@ _portable_fseek(FILE *fp, Py_off_t offset, int whence) 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 |