Mercurial > hg > mercurial-crew-with-dirclash
view mercurial/fancyopts.py @ 2698:c1123e83c8e2
mq: fix qnew and qimport to deal with series file comments
qnew and qimport did not take comments into account when deciding where
to place new patches in the series file.
author | Chris Mason <mason@suse.com> |
---|---|
date | Thu, 27 Jul 2006 09:27:42 -0700 |
parents | bf4e7ef08741 |
children | eb0b4a2d70a9 |
line wrap: on
line source
import getopt def fancyopts(args, options, state): long = [] short = '' map = {} dt = {} for s, l, d, c in options: pl = l.replace('-', '_') map['-'+s] = map['--'+l] = pl state[pl] = d dt[pl] = type(d) if not d is None and not callable(d): if s: s += ':' if l: 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