Mercurial > hg
annotate mercurial/fancyopts.py @ 4384:caaba589d9c7
Use patch.patch() when checking for patch availability.
The test is closer to what we want to know. It also makes sense when you deal with patched versions of patch() as most people do under win32.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sat, 28 Apr 2007 11:53:36 +0200 |
parents | f9567a7fa3b3 |
children | 88803a69b24a |
rev | line source |
---|---|
667
31a9aa890016
A number of minor fixes to problems that pychecker found.
mark.williamson@cl.cam.ac.uk
parents:
608
diff
changeset
|
1 import getopt |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
2 |
596 | 3 def fancyopts(args, options, state): |
1541
bf4e7ef08741
fixed some stuff pychecker shows, marked unclear/wrong stuff with XXX
twaldmann@thinkmo.de
parents:
1056
diff
changeset
|
4 long = [] |
bf4e7ef08741
fixed some stuff pychecker shows, marked unclear/wrong stuff with XXX
twaldmann@thinkmo.de
parents:
1056
diff
changeset
|
5 short = '' |
bf4e7ef08741
fixed some stuff pychecker shows, marked unclear/wrong stuff with XXX
twaldmann@thinkmo.de
parents:
1056
diff
changeset
|
6 map = {} |
bf4e7ef08741
fixed some stuff pychecker shows, marked unclear/wrong stuff with XXX
twaldmann@thinkmo.de
parents:
1056
diff
changeset
|
7 dt = {} |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
8 |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
9 for s, l, d, c in options: |
1056
34be48b4ca85
Map long option names containing dashes to ones containing underscores.
Bryan O'Sullivan <bos@serpentine.com>
parents:
981
diff
changeset
|
10 pl = l.replace('-', '_') |
34be48b4ca85
Map long option names containing dashes to ones containing underscores.
Bryan O'Sullivan <bos@serpentine.com>
parents:
981
diff
changeset
|
11 map['-'+s] = map['--'+l] = pl |
34be48b4ca85
Map long option names containing dashes to ones containing underscores.
Bryan O'Sullivan <bos@serpentine.com>
parents:
981
diff
changeset
|
12 state[pl] = d |
34be48b4ca85
Map long option names containing dashes to ones containing underscores.
Bryan O'Sullivan <bos@serpentine.com>
parents:
981
diff
changeset
|
13 dt[pl] = type(d) |
3749
f9567a7fa3b3
additional fixes for issue436
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3742
diff
changeset
|
14 if (d is not None and d is not True and d is not False and |
f9567a7fa3b3
additional fixes for issue436
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3742
diff
changeset
|
15 not callable(d)): |
959
0aaeee519c66
Fix option parsing bug for empty short options
mpm@selenic.com
parents:
667
diff
changeset
|
16 if s: s += ':' |
0aaeee519c66
Fix option parsing bug for empty short options
mpm@selenic.com
parents:
667
diff
changeset
|
17 if l: l += '=' |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
18 if s: short = short + s |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
19 if l: long.append(l) |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
20 |
293 | 21 opts, args = getopt.getopt(args, short, long) |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
22 |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
23 for opt, arg in opts: |
3673
eb0b4a2d70a9
white space and line break cleanups
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1541
diff
changeset
|
24 if dt[map[opt]] is type(fancyopts): state[map[opt]](state, map[opt], arg) |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
25 elif dt[map[opt]] is type(1): state[map[opt]] = int(arg) |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
26 elif dt[map[opt]] is type(''): state[map[opt]] = arg |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
27 elif dt[map[opt]] is type([]): state[map[opt]].append(arg) |
3742
86c1d1d35593
Fix argument handling for hg -v pull -v x (issue 436)
Matt Mackall <mpm@selenic.com>
parents:
3673
diff
changeset
|
28 elif dt[map[opt]] is type(None): state[map[opt]] = True |
3749
f9567a7fa3b3
additional fixes for issue436
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3742
diff
changeset
|
29 elif dt[map[opt]] is type(False): state[map[opt]] = True |
209 | 30 |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
31 return args |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
32 |