Mercurial > hg-stable
changeset 7267:6a51ca1e05c3
patch: rewrite diffstat with util.filter()
Simpler and works under Windows.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Mon, 27 Oct 2008 22:57:55 +0100 |
parents | e7f6401584f7 |
children | e05092a3c2fe |
files | mercurial/patch.py |
diffstat | 1 files changed, 7 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/patch.py Sat Oct 25 13:24:14 2008 +0200 +++ b/mercurial/patch.py Mon Oct 27 22:57:55 2008 +0100 @@ -1322,22 +1322,10 @@ def diffstat(patchlines): if not util.find_exe('diffstat'): return - fd, name = tempfile.mkstemp(prefix="hg-patchbomb-", suffix=".txt") - try: - p = util.Popen3('diffstat -p1 -w79 2>/dev/null > ' + name) - try: - for line in patchlines: - p.tochild.write(line + "\n") - p.tochild.close() - if p.wait(): return - fp = os.fdopen(fd, 'r') - stat = [] - for line in fp: stat.append(line.lstrip()) - last = stat.pop() - stat.insert(0, last) - stat = ''.join(stat) - return stat - except: raise - finally: - try: os.unlink(name) - except: pass + output = util.filter('\n'.join(patchlines), + 'diffstat -p1 -w79 2>%s' % util.nulldev) + stat = [l.lstrip() for l in output.splitlines(True)] + last = stat.pop() + stat.insert(0, last) + stat = ''.join(stat) + return stat