1869 def display(fn, ctx, pstates, states): |
1869 def display(fn, ctx, pstates, states): |
1870 rev = ctx.rev() |
1870 rev = ctx.rev() |
1871 datefunc = ui.quiet and util.shortdate or util.datestr |
1871 datefunc = ui.quiet and util.shortdate or util.datestr |
1872 found = False |
1872 found = False |
1873 filerevmatches = {} |
1873 filerevmatches = {} |
|
1874 def binary(): |
|
1875 flog = getfile(fn) |
|
1876 return util.binary(flog.read(ctx.filenode(fn))) |
|
1877 |
1874 if opts.get('all'): |
1878 if opts.get('all'): |
1875 iter = difflinestates(pstates, states) |
1879 iter = difflinestates(pstates, states) |
1876 else: |
1880 else: |
1877 iter = [('', l) for l in states] |
1881 iter = [('', l) for l in states] |
1878 for change, l in iter: |
1882 for change, l in iter: |
1895 before = l.line[:l.colstart] |
1899 before = l.line[:l.colstart] |
1896 match = l.line[l.colstart:l.colend] |
1900 match = l.line[l.colstart:l.colend] |
1897 after = l.line[l.colend:] |
1901 after = l.line[l.colend:] |
1898 ui.write(sep.join(cols)) |
1902 ui.write(sep.join(cols)) |
1899 if before is not None: |
1903 if before is not None: |
1900 ui.write(sep + before) |
1904 if not opts.get('text') and binary(): |
1901 ui.write(match, label='grep.match') |
1905 ui.write(sep + " Binary file matches") |
1902 ui.write(after) |
1906 else: |
|
1907 ui.write(sep + before) |
|
1908 ui.write(match, label='grep.match') |
|
1909 ui.write(after) |
1903 ui.write(eol) |
1910 ui.write(eol) |
1904 found = True |
1911 found = True |
1905 return found |
1912 return found |
1906 |
1913 |
1907 skip = {} |
1914 skip = {} |
4565 _('[OPTION]... FILE...')), |
4572 _('[OPTION]... FILE...')), |
4566 "grep": |
4573 "grep": |
4567 (grep, |
4574 (grep, |
4568 [('0', 'print0', None, _('end fields with NUL')), |
4575 [('0', 'print0', None, _('end fields with NUL')), |
4569 ('', 'all', None, _('print all revisions that match')), |
4576 ('', 'all', None, _('print all revisions that match')), |
|
4577 ('a', 'text', None, _('treat all files as text')), |
4570 ('f', 'follow', None, |
4578 ('f', 'follow', None, |
4571 _('follow changeset history,' |
4579 _('follow changeset history,' |
4572 ' or file history across copies and renames')), |
4580 ' or file history across copies and renames')), |
4573 ('i', 'ignore-case', None, _('ignore case when matching')), |
4581 ('i', 'ignore-case', None, _('ignore case when matching')), |
4574 ('l', 'files-with-matches', None, |
4582 ('l', 'files-with-matches', None, |