#ifndef ARG_H
#define ARG_H

/* int main(int argc, char *argv[]) */
/* opts (case 'a': break; default: printf("Unknown: %c\n", opt);); */

#define opt argv[optidx][opt_i]
#define optarg (!argv[optidx + optargidx] ? NULL : (argv[optidx + optargidx++]))
#define opts(cases)                                                    \
	do {                                                           \
		unsigned optargidx, opt_i, optidx;                     \
		for (optargidx = 1, opt_i = 1, optidx = 1;             \
		     argv[optidx] && argv[optidx][0] == '-' &&         \
		     argv[optidx][1] && argv[optidx][1] != '-';        \
		     optidx += optargidx) {                            \
			for (opt_i = 1, optargidx = 1; opt; opt_i++) { \
				switch (opt) {                         \
					cases                          \
				}                                      \
			}                                              \
		}                                                      \
	} while (0)

#endif