cat: replace match.bad() monkey patching with match.badmatch()

No known issues with the previous code since it restored the original method,
but this is cleaner.
This commit is contained in:
Matt Harbison 2015-06-04 21:55:56 -04:00
parent 6cb27fae52
commit e439cb0dce

View File

@ -2437,22 +2437,16 @@ def cat(ui, repo, ctx, matcher, prefix, **opts):
return 0
# Don't warn about "missing" files that are really in subrepos
bad = matcher.bad
def badfn(path, msg):
for subpath in ctx.substate:
if path.startswith(subpath):
return
bad(path, msg)
matcher.bad(path, msg)
matcher.bad = badfn
for abs in ctx.walk(matcher):
for abs in ctx.walk(matchmod.badmatch(matcher, badfn)):
write(abs)
err = 0
matcher.bad = bad
for subpath in sorted(ctx.substate):
sub = ctx.sub(subpath)
try: