# HG changeset patch # User Yuya Nishihara # Date 2020-09-09 06:17:26 # Node ID 760bb4d74aad16de6c5045adbeda1076af5a4ce9 # Parent d1c10d33a85c4aea5341f49d60a0dea1add192cb grep: explicitly pass regexp to closure functions These functions will be extracted to new module. diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -3400,7 +3400,7 @@ def grep(ui, repo, pattern, *pats, **opt getfile = util.lrucachefunc(repo.file) - def matchlines(body): + def matchlines(body, regexp): begin = 0 linenum = 0 while begin < len(body): @@ -3427,7 +3427,7 @@ def grep(ui, repo, pattern, *pats, **opt def __eq__(self, other): return self.line == other.line - def findpos(self): + def findpos(self, regexp): """Iterate all (start, end) indices of matches""" yield self.colstart, self.colend p = self.colend @@ -3450,7 +3450,7 @@ def grep(ui, repo, pattern, *pats, **opt if body is None: return - for lnum, cstart, cend, line in matchlines(body): + for lnum, cstart, cend, line in matchlines(body, regexp): s = linestate(line, lnum, cstart, cend) m.append(s) @@ -3562,7 +3562,7 @@ def grep(ui, repo, pattern, *pats, **opt def displaymatches(fm, l): p = 0 - for s, e in l.findpos(): + for s, e in l.findpos(regexp): if p < s: fm.startitem() fm.write(b'text', b'%s', l.line[p:s])