diff --git a/main.c b/main.c index 30bd6ae..113b0f3 100644 --- a/main.c +++ b/main.c @@ -17,6 +17,7 @@ #include #endif #include +#include "xgetopt.h" #include "lint.h" int debug = 0; @@ -655,46 +656,6 @@ searchall(struct epg *epg __attribute__((unused)), } } -#define GETOPTOPT \ - do { \ - if (*++cp == '\0' && argc > 1) \ - { \ - argc--, argv++; \ - cp = argv[0]; \ - } \ - while (*cp != '\0' && isspace((int)*cp)) \ - cp++; \ - } while (0) - -#define GETOPTINTOPT \ - do { \ - if (*++cp == '\0' && argc > 1 && atoi(argv[1]) > 0) \ - { \ - argc--, argv++; \ - cp = argv[0]; \ - } \ - while (*cp != '\0' && isspace((int)*cp)) \ - cp++; \ - } while (0) - -#define GETOPT \ - do { \ - if (*++cp == '\0' && argc < 2) \ - { \ - fprintf(stderr, \ - "No argument supplied for -%c\n", opt); \ - exit(1); \ - } \ - else if (*cp == '\0') \ - { \ - argc--, argv++; \ - cp = argv[0]; \ - } \ - while (isspace((int)*cp)) \ - cp++; \ - } while (0) - - int main(int argc, char **argv) { diff --git a/xgetopt.h b/xgetopt.h new file mode 100644 index 0000000..30e98cb --- /dev/null +++ b/xgetopt.h @@ -0,0 +1,40 @@ + +#define GETOPTOPT \ + do { \ + if (*++cp == '\0' && argc > 1) \ + { \ + argc--, argv++; \ + cp = argv[0]; \ + } \ + while (*cp != '\0' && isspace((int)*cp)) \ + cp++; \ + } while (0) + +#define GETOPTINTOPT \ + do { \ + if (*++cp == '\0' && argc > 1 && atoi(argv[1]) > 0) \ + { \ + argc--, argv++; \ + cp = argv[0]; \ + } \ + while (*cp != '\0' && isspace((int)*cp)) \ + cp++; \ + } while (0) + +#define GETOPT \ + do { \ + if (*++cp == '\0' && argc < 2) \ + { \ + fprintf(stderr, \ + "No argument supplied for -%c\n", opt); \ + exit(1); \ + } \ + else if (*cp == '\0') \ + { \ + argc--, argv++; \ + cp = argv[0]; \ + } \ + while (isspace((int)*cp)) \ + cp++; \ + } while (0) +