mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-15 11:20:03 +00:00
24 lines
751 B
C
24 lines
751 B
C
|
typedef unsigned short Rune; /* 16 bits */
|
||
|
typedef unsigned char uchar;
|
||
|
#define Runeerror 0x80 /* decoding error in UTF */
|
||
|
#define Runeself 0x80 /* rune and UTF sequences are the same (<) */
|
||
|
#define UTFmax 6 /* maximum bytes per rune */
|
||
|
|
||
|
/*
|
||
|
plan 9 argument parsing
|
||
|
*/
|
||
|
#define ARGBEGIN for((argv0? 0: (argv0= *argv)),argv++,argc--;\
|
||
|
argv[0] && argv[0][0]=='-' && argv[0][1];\
|
||
|
argc--, argv++) {\
|
||
|
char *_args, *_argt, _argc;\
|
||
|
_args = &argv[0][1];\
|
||
|
if(_args[0]=='-' && _args[1]==0){\
|
||
|
argc--; argv++; break;\
|
||
|
}\
|
||
|
_argc=0;while(*_args) switch(_argc= *_args++)
|
||
|
#define ARGEND }
|
||
|
#define ARGF() (_argt=_args, _args="",\
|
||
|
(*_argt? _argt: argv[1]? (argc--, *++argv): 0))
|
||
|
#define ARGC() _argc
|
||
|
extern char *argv0;
|