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
--- a/mercurial/fancyopts.py Sat Aug 11 12:47:58 2007 +0200
+++ b/mercurial/fancyopts.py Sat Aug 11 13:07:47 2007 +0200
@@ -9,7 +9,10 @@
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)):