Mercurial > hg
view mercurial/fancyopts.py @ 2161:12e11413ca19
Fix just introduced possible old-http bug
My last patch changed httprangereader.read to read only the specified
amount of data from the connection, to prevent it from returning more
than what was asked.
I just realized that this could lead to the connection not being closed.
In practice, it looks like the connection is closed just fine, but it's
probably safer to read everything and then return only what's necessary.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sun, 30 Apr 2006 18:50:53 +0200 |
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