# HG changeset patch # User Yuya Nishihara # Date 1421574203 -32400 # Node ID 5542bc9125c93e6cf3568d3ab3cecf7fe5963f38 # Parent 3b0f07cc9626a20487cc2316c912d0bc0da6b38c dispatch: pass around ui.fmsg channel This will be set by the command server. See the next patch. diff -r 3b0f07cc9626 -r 5542bc9125c9 mercurial/dispatch.py --- a/mercurial/dispatch.py Sat Nov 10 12:01:21 2018 +0900 +++ b/mercurial/dispatch.py Sun Jan 18 18:43:23 2015 +0900 @@ -50,7 +50,7 @@ class request(object): def __init__(self, args, ui=None, repo=None, fin=None, fout=None, - ferr=None, prereposetups=None): + ferr=None, fmsg=None, prereposetups=None): self.args = args self.ui = ui self.repo = repo @@ -59,6 +59,8 @@ self.fin = fin self.fout = fout self.ferr = ferr + # separate stream for status/error messages + self.fmsg = fmsg # remember options pre-parsed by _earlyparseopts() self.earlyoptions = {} @@ -205,6 +207,8 @@ req.ui.fout = req.fout if req.ferr: req.ui.ferr = req.ferr + if req.fmsg: + req.ui.fmsg = req.fmsg except error.Abort as inst: ferr.write(_("abort: %s\n") % inst) if inst.hint: @@ -955,6 +959,7 @@ repo.ui.fin = ui.fin repo.ui.fout = ui.fout repo.ui.ferr = ui.ferr + repo.ui.fmsg = ui.fmsg else: try: repo = hg.repository(ui, path=path, diff -r 3b0f07cc9626 -r 5542bc9125c9 mercurial/ui.py --- a/mercurial/ui.py Sat Nov 10 12:01:21 2018 +0900 +++ b/mercurial/ui.py Sun Jan 18 18:43:23 2015 +0900 @@ -231,6 +231,7 @@ self._fout = src._fout self._ferr = src._ferr self._fin = src._fin + self._fmsg = src._fmsg self._fmsgout = src._fmsgout self._fmsgerr = src._fmsgerr self._finoutredirected = src._finoutredirected @@ -258,6 +259,7 @@ self._fout = procutil.stdout self._ferr = procutil.stderr self._fin = procutil.stdin + self._fmsg = None self._fmsgout = self.fout # configurable self._fmsgerr = self.ferr # configurable self._finoutredirected = False @@ -912,6 +914,17 @@ def fin(self, f): self._fin = f + @property + def fmsg(self): + """Stream dedicated for status/error messages; may be None if + fout/ferr are used""" + return self._fmsg + + @fmsg.setter + def fmsg(self, f): + self._fmsg = f + self._fmsgout, self._fmsgerr = _selectmsgdests(self) + def pushbuffer(self, error=False, subproc=False, labeled=False): """install a buffer to capture standard output of the ui object