# HG changeset patch # User Yuya Nishihara # Date 1471496989 -32400 # Node ID fac24eab65a4dcee65fa8be81f716859519f58b0 # Parent b842b1adfea2ae19a07f5a43ee8b53954d00b83e grep: factor out function that prints matched line with labels Prepares for formatter support. diff -r b842b1adfea2 -r fac24eab65a4 mercurial/commands.py --- a/mercurial/commands.py Thu Aug 18 14:03:25 2016 +0900 +++ b/mercurial/commands.py Thu Aug 18 14:09:49 2016 +0900 @@ -4356,14 +4356,6 @@ yield m.span() p = m.end() - def __iter__(self): - p = 0 - for s, e in self.findpos(): - yield self.line[p:s], '' - yield self.line[s:e], 'grep.match' - p = e - yield self.line[p:], '' - matches = {} copies = {} def grepbody(fn, rev, body): @@ -4424,14 +4416,21 @@ if not opts.get('text') and binary(): ui.write(_(" Binary file matches")) else: - for s, label in l: - ui.write(s, label=label) + displaymatches(l) ui.write(eol) found = True if opts.get('files_with_matches'): break return found + def displaymatches(l): + p = 0 + for s, e in l.findpos(): + ui.write(l.line[p:s]) + ui.write(l.line[s:e], label='grep.match') + p = e + ui.write(l.line[p:]) + skip = {} revfiles = {} matchfn = scmutil.match(repo[None], pats, opts)