[PATCH] pager: honour internal aliases
David Soria Parra
dsp at experimentalworks.net
Sun Oct 20 21:18:22 CDT 2013
# HG changeset patch
# User David Soria Parra <dsp at experimentalworks.net>
# Date 1381629094 25200
# Sat Oct 12 18:51:34 2013 -0700
# Node ID 04dd8d9ca0ce2ddd279eddb9af82f5742cc8bd87
# Parent ab2362e1672e341d13b0f2546b672122b2eb5ced
pager: honour internal aliases
If paging is configured for a command all it's internal defined aliases
will be paged as well. This will make attend=log cause 'hg history'
to run the pager. However custom aliases will not be paged by default.
diff --git a/hgext/pager.py b/hgext/pager.py
--- a/hgext/pager.py
+++ b/hgext/pager.py
@@ -48,7 +48,7 @@
'''
import atexit, sys, os, signal, subprocess, errno, shlex
-from mercurial import commands, dispatch, util, extensions
+from mercurial import commands, dispatch, util, extensions, cmdutil
from mercurial.i18n import _
testedwith = 'internal'
@@ -121,14 +121,20 @@
attend = ui.configlist('pager', 'attend', attended)
auto = options['pager'] == 'auto'
always = util.parsebool(options['pager'])
- if (always or auto and
- (cmd in attend or
- (cmd not in ui.configlist('pager', 'ignore') and not attend))):
- ui.setconfig('ui', 'formatted', ui.formatted())
- ui.setconfig('ui', 'interactive', False)
- if util.safehasattr(signal, "SIGPIPE"):
- signal.signal(signal.SIGPIPE, signal.SIG_DFL)
- _runpager(ui, p)
+
+ cmds, _ = cmdutil.findcmd(cmd, commands.table)
+
+ ignore = ui.configlist('pager', 'ignore')
+ for cmd in cmds:
+ if (always or auto and
+ (cmd in attend or
+ (cmd not in ignore and not attend))):
+ ui.setconfig('ui', 'formatted', ui.formatted())
+ ui.setconfig('ui', 'interactive', False)
+ if util.safehasattr(signal, "SIGPIPE"):
+ signal.signal(signal.SIGPIPE, signal.SIG_DFL)
+ _runpager(ui, p)
+ break
return orig(ui, options, cmd, cmdfunc)
extensions.wrapfunction(dispatch, '_runcommand', pagecmd)
More information about the Mercurial-devel
mailing list