diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -814,10 +814,9 @@ class ui(object): editor = self.geteditor() - util.system("%s \"%s\"" % (editor, name), + self.system("%s \"%s\"" % (editor, name), environ=environ, - onerr=util.Abort, errprefix=_("edit failed"), - out=self.fout) + onerr=util.Abort, errprefix=_("edit failed")) f = open(name) t = f.read() @@ -827,6 +826,13 @@ class ui(object): return t + def system(self, cmd, environ={}, cwd=None, onerr=None, errprefix=None): + '''execute shell command with appropriate output stream. command + output will be redirected if fout is not stdout. + ''' + return util.system(cmd, environ=environ, cwd=cwd, onerr=onerr, + errprefix=errprefix, out=self.fout) + def traceback(self, exc=None, force=False): '''print exception traceback if traceback printing enabled or forced. only to call in exception handler. returns true if traceback