# HG changeset patch # User Bryan O'Sullivan <bry...@fb.com> # Date 1490804813 25200 # Wed Mar 29 09:26:53 2017 -0700 # Node ID 935d0e5af9001f3a0730e7c477dc14ae5baf4799 # Parent c1a8ca31d3ade6c8bb0085008bdcf30593edd78f stdio: add machinery to identify failed stdout/stderr writes
Mercurial currently fails to notice failures to write to stdout or stderr. A correctly functioning command line tool should detect this and exit with an error code. To achieve this, we need a little extra plumbing, which we start adding here. diff --git a/mercurial/error.py b/mercurial/error.py --- a/mercurial/error.py +++ b/mercurial/error.py @@ -122,6 +122,16 @@ class CapabilityError(RepoError): class RequirementError(RepoError): """Exception raised if .hg/requires has an unknown entry.""" +class StdioError(IOError): + """Raised if I/O to stdout or stderr fails""" + + def __init__(self, err): + IOError.__init__(self, err.errno, err.strerror) + +def raisestdio(err): + import sys + raise StdioError, StdioError(err), sys.exc_info()[2] + class UnsupportedMergeRecords(Abort): def __init__(self, recordtypes): from .i18n import _ _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel