weakbox

Create a weak container for running programs from a different Linux distribution
Log | Files | Refs | LICENSE

arg.h (619B)


      1 #pragma once
      2 
      3 #define SHIFT (argc--, argv++)
      4 
      5 #define ARGBEGIN                                       \
      6 	for (SHIFT; *argv && *argv[0] == '-'; SHIFT) {     \
      7 		if ((*argv)[1] == '-' && (*argv)[2] == '\0') { \
      8 			SHIFT;                                     \
      9 			break;                                     \
     10 		}                                              \
     11 		for (char* opt = *argv + 1; *opt; opt++) {
     12 
     13 #define ARGEND \
     14 	}          \
     15 	}
     16 
     17 #define OPT          (*opt)
     18 #define ARGF         (argv[1] ? (SHIFT, *argv) : NULL)
     19 #define EARGF(usage) (argv[1] ? ARGF : (printf("'-%c' requires an argument\n", *opt), usage, NULL))