Skip to content

Commit 980790e

Browse files
bpo-31966: Fixed WindowsConsoleIO.write() for writing empty data. (GH-5754)
(cherry picked from commit 42c35d9) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
1 parent cd2112f commit 980790e

3 files changed

Lines changed: 8 additions & 0 deletions

File tree

Lib/test/test_winconsoleio.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,10 @@ def test_conout_path(self):
121121
else:
122122
self.assertNotIsInstance(f, ConIO)
123123

124+
def test_write_empty_data(self):
125+
with ConIO('CONOUT$', 'w') as f:
126+
self.assertEqual(f.write(b''), 0)
127+
124128
def assertStdinRoundTrip(self, text):
125129
stdin = open('CONIN$', 'r')
126130
old_stdin = sys.stdin
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed WindowsConsoleIO.write() for writing empty data.

Modules/_io/winconsoleio.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,9 @@ _io__WindowsConsoleIO_write_impl(winconsoleio *self, Py_buffer *b)
981981
if (!self->writable)
982982
return err_mode("writing");
983983

984+
if (!b->len) {
985+
return PyLong_FromLong(0);
986+
}
984987
if (b->len > BUFMAX)
985988
len = BUFMAX;
986989
else

0 commit comments

Comments
 (0)