##// END OF EJS Templates
Ensure that dirstate.walk only yields names once....
Ensure that dirstate.walk only yields names once. Its predecessor code used to do this, and now it does, too.

File last commit:

r667:31a9aa89 default
r821:72d9bd48 default
Show More
fancyopts.py
27 lines | 765 B | text/x-python | PythonLexer
import getopt
def fancyopts(args, options, state):
long=[]
short=''
map={}
dt={}
for s, l, d, c in options:
map['-'+s] = map['--'+l]=l
state[l] = d
dt[l] = type(d)
if not d is None and not callable(d): s, l=s+':', l+'='
if s: short = short + s
if l: long.append(l)
opts, args = getopt.getopt(args, short, long)
for opt, arg in opts:
if dt[map[opt]] is type(fancyopts): state[map[opt]](state,map[opt],arg)
elif dt[map[opt]] is type(1): state[map[opt]] = int(arg)
elif dt[map[opt]] is type(''): state[map[opt]] = arg
elif dt[map[opt]] is type([]): state[map[opt]].append(arg)
elif dt[map[opt]] is type(None): state[map[opt]] = 1
return args