# HG changeset patch # User Matt Harbison # Date 2015-06-05 01:55:56 # Node ID 7ce5a3230441f55b9c4349a9fbe84835aab93c20 # Parent 9c1bcd95b3ff5402bab6904e45094b42c07badf3 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. diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2437,22 +2437,16 @@ def cat(ui, repo, ctx, matcher, prefix, 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 = badfn - - for abs in ctx.walk(matcher): + matcher.bad(path, msg) + + 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: