OrionUserland
Barry Importing existing Orion Userland 19aefaa (3 years, 3 months ago)
#ifndef ARG_H
#define ARG_H
extern char *progname;
#define ARGBEGIN for (progname = *argv, argv++, argc--; \
argc && argv[0] && argv[0][0] == '-' \
&& argv[0][1]; \
argc--, argv++) { \
char argc_, **argv_; \
int brk_; \
if (argv[0][1] == '-' && argv[0][2] == '\0') { \
argv++; \
argc--; \
break; \
} \
int i_; \
for (i_ = 1, brk_ = 0, argv_ = argv; \
argv[0][i_] && !brk_; \
i_++) { \
if (argv_ != argv) \
break; \
argc_ = argv[0][i_]; \
switch (argc_)
#define ARGEND } \
}
#define ARGC() argc_
#define EARGF(x) ((argv[0][i_+1] == '\0' && argv[1] == NULL) ? \
((x), abort(), (char *) 0) : \
(brk_ = 1, (argv[0][i_+1] != '\0') ? \
(&argv[0][i_+1]) : \
(argc--, argv++, argv[0])))
#define ARGF() ((argv[0][i_+1] == '\0' && argv[1] == NULL) ? \
(char *) 0 : \
(brk_ = 1, (argv[0][i_+1] != '\0') ? \
(&argv[0][i_+1]) : \
(argc--, argv++, argv[0])))
#endif