# HG changeset patch # User TK Soh # Date 1130368236 25200 # Node ID 6fbb13b7a59fc3f6cab865cb6e9bd634fcd854e4 # Parent f1755621cb7dbbfd9fc68a30e0963e392bf462d9 get command defaults from hgrc diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2417,7 +2417,7 @@ def run(): class ParseError(Exception): """Exception raised on errors in parsing the command line.""" -def parse(args): +def parse(ui, args): options = {} cmdoptions = {} @@ -2428,6 +2428,17 @@ def parse(args): if args: cmd, args = args[0], args[1:] + defaults = ui.config("defaults", cmd) + if defaults: + # reparse with command defaults added + args = [cmd] + defaults.split() + args + try: + args = fancyopts.fancyopts(args, globalopts, options) + except fancyopts.getopt.GetoptError, inst: + raise ParseError(None, inst) + + cmd, args = args[0], args[1:] + i = find(cmd)[1] c = list(i[1]) else: @@ -2494,7 +2505,7 @@ def dispatch(args): table.update(cmdtable) try: - cmd, func, args, options, cmdoptions = parse(args) + cmd, func, args, options, cmdoptions = parse(u, args) except ParseError, inst: if inst.args[0]: u.warn(_("hg %s: %s\n") % (inst.args[0], inst.args[1]))