Skip to content
Permalink
Browse files

bpo-34070: open() only checks for isatty if buffering < 0 (GH-8187)

  • Loading branch information
Dav1dde authored and vstinner committed Oct 19, 2018
1 parent acef690 commit 8deab9672554edaf58f91e238cc899463d53f6ea
Showing with 5 additions and 3 deletions.
  1. +2 −0 Misc/NEWS.d/next/Library/2018-07-11-20-51-20.bpo-34070.WpmFAu.rst
  2. +3 −3 Modules/_io/_iomodule.c
@@ -0,0 +1,2 @@
Make sure to only check if the handle is a tty, when opening
a file with ``buffering=-1``.
@@ -241,7 +241,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,

char rawmode[6], *m;
int line_buffering, is_number;
long isatty;
long isatty = 0;

PyObject *raw, *modeobj = NULL, *buffer, *wrapper, *result = NULL, *path_or_fd = NULL;

@@ -388,7 +388,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
goto error;

/* buffering */
{
if (buffering < 0) {
PyObject *res = _PyObject_CallMethodId(raw, &PyId_isatty, NULL);
if (res == NULL)
goto error;
@@ -398,7 +398,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
goto error;
}

if (buffering == 1 || (buffering < 0 && isatty)) {
if (buffering == 1 || isatty) {
buffering = -1;
line_buffering = 1;
}

0 comments on commit 8deab96

Please sign in to comment.
You can’t perform that action at this time.