diff -r 32b213b9b22c -r 635d601e8f21 mercurial/commands.py --- a/mercurial/commands.py Fri Apr 02 15:22:00 2010 -0500 +++ b/mercurial/commands.py Fri Apr 02 15:22:03 2010 -0500 @@ -1353,6 +1353,7 @@ iter = [('', l) for l in states] for change, l in iter: cols = [fn, str(rev)] + before, match, after = None, None, None if opts.get('line_number'): cols.append(str(l.linenum)) if opts.get('all'): @@ -1367,8 +1368,15 @@ continue filerevmatches[c] = 1 else: - cols.append(l.line) - ui.write(sep.join(cols), eol) + before = l.line[:l.colstart] + match = l.line[l.colstart:l.colend] + after = l.line[l.colend:] + ui.write(sep.join(cols)) + if before is not None: + ui.write(sep + before) + ui.write(match, label='grep.match') + ui.write(after) + ui.write(eol) found = True return found