Mercurial > hg > mercurial-crew-with-dirclash
annotate 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 |
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) |
959
0aaeee519c66
Fix option parsing bug for empty short options
mpm@selenic.com
parents:
667
diff
changeset
|
14 if not d is None and not callable(d): |
0aaeee519c66
Fix option parsing bug for empty short options
mpm@selenic.com
parents:
667
diff
changeset
|
15 if s: s += ':' |
0aaeee519c66
Fix option parsing bug for empty short options
mpm@selenic.com
parents:
667
diff
changeset
|
16 if l: l += '=' |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
17 if s: short = short + s |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
18 if l: long.append(l) |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
19 |
293 | 20 opts, args = getopt.getopt(args, short, long) |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
21 |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
22 for opt, arg in opts: |
293 | 23 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
|
24 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
|
25 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
|
26 elif dt[map[opt]] is type([]): state[map[opt]].append(arg) |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
27 elif dt[map[opt]] is type(None): state[map[opt]] = 1 |
209 | 28 |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
29 return args |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
30 |