OLD | NEW |
1 /* | 1 /* |
2 Derived from Inferno include/kern.h. | 2 Derived from Inferno include/kern.h. |
3 | 3 |
4 http://code.google.com/p/inferno-os/source/browse/include/kern.h | 4 http://code.google.com/p/inferno-os/source/browse/include/kern.h |
5 | 5 |
6 Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. | 6 Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. |
7 Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuo
va.com). All rights reserved. | 7 Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuo
va.com). All rights reserved. |
8 Portions Copyright © 2009 The Go Authors. All rights reserved. | 8 Portions Copyright © 2009 The Go Authors. All rights reserved. |
9 | 9 |
10 Permission is hereby granted, free of charge, to any person obtaining a copy | 10 Permission is hereby granted, free of charge, to any person obtaining a copy |
(...skipping 10 matching lines...) Expand all Loading... |
21 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 21 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
22 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | 22 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
23 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | 23 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
24 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | 24 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
25 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | 25 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
26 THE SOFTWARE. | 26 THE SOFTWARE. |
27 */ | 27 */ |
28 | 28 |
29 /* command line */ | 29 /* command line */ |
30 extern char *argv0; | 30 extern char *argv0; |
31 #define»ARGBEGIN» for((argv0?0:(argv0=(*argv))),argv++,argc--;\ | 31 #define»ARGBEGIN» for((argv0=(argv0?argv0:*argv)),argv++,argc--;\ |
32 argv[0] && argv[0][0]=='-' && argv[0][1];\ | 32 argv[0] && argv[0][0]=='-' && argv[0][1];\ |
33 argc--, argv++) {\ | 33 argc--, argv++) {\ |
34 char *_args, *_argt;\ | 34 char *_args, *_argt;\ |
35 char _argc;\ | 35 char _argc;\ |
36 _args = &argv[0][1];\ | 36 _args = &argv[0][1];\ |
37 if(_args[0]=='-' && _args[1]==0){\ | 37 if(_args[0]=='-' && _args[1]==0){\ |
38 argc--; argv++; break;\ | 38 argc--; argv++; break;\ |
39 }\ | 39 }\ |
40 _argc = 0;\ | |
41 while((_argc = *_args++) != 0)\ | 40 while((_argc = *_args++) != 0)\ |
42 switch(_argc) | 41 switch(_argc) |
43 #define ARGEND _argt=0;USED(_argt);USED(_argc);USED(_args);}USED(argv);
USED(argc); | 42 #define ARGEND _argt=0;USED(_argt);USED(_argc);USED(_args);}USED(argv);
USED(argc); |
44 #define ARGF() (_argt=_args, _args="",\ | 43 #define ARGF() (_argt=_args, _args="",\ |
45 (*_argt? _argt: argv[1]? (argc--, *++argv): 0)) | 44 (*_argt? _argt: argv[1]? (argc--, *++argv): 0)) |
46 #define EARGF(x) (_argt=_args, _args="",\ | 45 #define EARGF(x) (_argt=_args, _args="",\ |
47 (*_argt? _argt: argv[1]? (argc--, *++argv): ((x)
, fatal("usage"), (char*)0))) | 46 (*_argt? _argt: argv[1]? (argc--, *++argv): ((x)
, fatal("usage"), (char*)0))) |
48 | 47 |
49 #define ARGC() _argc | 48 #define ARGC() _argc |
50 | 49 |
OLD | NEW |