windows: always work around EINVAL in case of broken pipe for stdout / stderr
In
29a905fe23ae, I missed the fact that the `winstdout` class works around two
unrelated bugs (size limit when writing to consoles and EINVAL in case of
broken pipe) and that the latter bug happens even when no console is involved.
When writing a test for this, I realized that the same problem applies to
stderr, so I applied the workaround for EINVAL to both stdout and stderr.
The size limit is worked around in the same case as before (consoles on Windows
on Python 2). For that, I changed the `winstdout` class.
# Blacklist for a full testsuite run with fsmonitor enabled.
# Used by fsmonitor-run-tests.
# The following tests all fail because they either use extensions that conflict
# with fsmonitor, use subrepositories, or don't anticipate the extra file in
# the .hg directory that fsmonitor adds.
#### mainly testing eol extension
test-eol-add.t
test-eol-clone.t
test-eol-hook.t
test-eol-patch.t
test-eol-tag.t
test-eol-update.t
test-eol.t
test-eolfilename.t
#### mainly testing largefiles extension
test-issue3084.t
test-largefiles-cache.t
test-largefiles-misc.t
test-largefiles-small-disk.t
test-largefiles-update.t
test-largefiles-wireproto.t
test-largefiles.t
test-lfconvert.t
#### mainly testing nested repositories
test-nested-repo.t
test-push-warn.t
test-subrepo-deep-nested-change.t
test-subrepo-recursion.t
test-subrepo.t
#### fixing these seems redundant, because these don't focus on
#### operations in the working directory or .hg
test-debugextensions.t
test-extension.t
test-help.t