Mercurial > hg > mercurial-crew-with-dirclash
view mercurial/fancyopts.py @ 968:4a9a753e8232
[PATCH] Take DST into account
Right now, mercurial doesn't take daylight saving time into account
because it uses time.timezone inconditionally, instead of resorting to
time.altzone if daylight saving time is on.
author | Samuel Tardieu <sam@rfc1149.net> |
---|---|
date | Fri, 19 Aug 2005 23:26:32 -0800 |
parents | 0aaeee519c66 |
children | 4f81068ed8cd |
line wrap: on
line source
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): 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