# HG changeset patch # User Benoit Boissinot # Date 2009-05-17 14:15:37 # Node ID a0104303f400d510c38fb8411809b4ac6d237a60 # Parent d5dda64f55525aeb79584c64464ce6bb95c3ec6a alias: honor the [defaults] section, fix issue1642 diff --git a/hgext/alias.py b/hgext/alias.py --- a/hgext/alias.py +++ b/hgext/alias.py @@ -11,6 +11,7 @@ mycmd = cmd --args from mercurial.i18n import _ from mercurial import commands, cmdutil, error +import shlex cmdtable = {} @@ -69,8 +70,11 @@ def uisetup(ui): if not target: ui.warn(_('*** [alias] %s: no definition\n') % cmd) continue - args = target.split(' ') + args = shlex.split(target) tcmd = args.pop(0) if args: + defaults = ui.config('defaults', cmd) + if defaults: + args = shlex.split(defaults) + args ui.setconfig('defaults', cmd, ' '.join(args)) cmdtable[cmd] = lazycommand(ui, cmd, tcmd) diff --git a/tests/test-alias b/tests/test-alias --- a/tests/test-alias +++ b/tests/test-alias @@ -10,6 +10,13 @@ cleanstatus = status -c unknown = bargle ambiguous = s recursive = recursive +mylog = log +lognull = log -r null + +[defaults] +mylog = -q +lognull = -q +log = -v EOF echo '% basic' @@ -30,3 +37,7 @@ hg ci -Amfoo echo '% with opts' hg cleanst + +echo '% interaction with defaults' +hg mylog +hg lognull diff --git a/tests/test-alias.out b/tests/test-alias.out --- a/tests/test-alias.out +++ b/tests/test-alias.out @@ -8,3 +8,6 @@ adding foo % with opts C foo +% interaction with defaults +0:e63c23eaa88a +-1:000000000000