D5776: grep: move writing of path outside of column loop

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Thu Jan 31 01:38:22 UTC 2019


martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  This will make the next patch simpler.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5776

AFFECTED FILES
  mercurial/commands.py

CHANGE DETAILS

diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2867,18 +2867,18 @@
             except error.WdirUnsupported:
                 return ctx[fn].isbinary()
 
-        fieldnamemap = {'filename': 'path', 'linenumber': 'lineno'}
+        fieldnamemap = {'linenumber': 'lineno'}
         if diff:
             iter = difflinestates(pstates, states)
         else:
             iter = [('', l) for l in states]
         for change, l in iter:
             fm.startitem()
             fm.context(ctx=ctx)
             fm.data(node=fm.hexfunc(scmutil.binnode(ctx)))
+            fm.write('path', '%s', fn, label='grep.filename')
 
             cols = [
-                ('filename', '%s', fn, True),
                 ('rev', '%d', rev, not plaingrep),
                 ('linenumber', '%d', l.linenum, opts.get('line_number')),
             ]
@@ -2889,13 +2889,11 @@
                 ('date', '%s', fm.formatdate(ctx.date(), datefmt),
                  opts.get('date')),
             ])
-            lastcol = next(
-                name for name, fmt, data, cond in reversed(cols) if cond)
             for name, fmt, data, cond in cols:
+                if cond:
+                    fm.plain(sep, label='grep.sep')
                 field = fieldnamemap.get(name, name)
                 fm.condwrite(cond, field, fmt, data, label='grep.%s' % name)
-                if cond and name != lastcol:
-                    fm.plain(sep, label='grep.sep')
             if not opts.get('files_with_matches'):
                 fm.plain(sep, label='grep.sep')
                 if not opts.get('text') and binary():



To: martinvonz, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list