# HG changeset patch # User Thomas Arendsen Hein # Date 1186830467 -7200 # Node ID 88803a69b24ac0ea4298470b70a67043a61a2ff2 # Parent 6e040f6c2c9ce1b961a77ab6834c228009f4e673 fancyopts: Copy list arguments in command table before modifying. Before this, executing commands.dispatch(['log', '-r', '0']) commands.dispatch(['log', '-r', 'tip']) would look like: hg log -r 0 hg log -r 0 -r tip Reported by TK Soh, patch by Alexis S. L. Carvalho diff --git a/mercurial/fancyopts.py b/mercurial/fancyopts.py --- a/mercurial/fancyopts.py +++ b/mercurial/fancyopts.py @@ -9,7 +9,10 @@ def fancyopts(args, options, state): for s, l, d, c in options: pl = l.replace('-', '_') map['-'+s] = map['--'+l] = pl - state[pl] = d + if isinstance(d, list): + state[pl] = d[:] + else: + state[pl] = d dt[pl] = type(d) if (d is not None and d is not True and d is not False and not callable(d)):