#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "optread.h"

const char *enumtest[] = { "zero", "one", "two", "three", "four", "five", NULL };

int main(int argc, char **argv) {
    initopt(argc, argv);
    while (nextopt(OPT_CHECK | OPT_STRIP_DASHES | OPT_LOWERCASE_IF_DASH | OPT_LOWERCASE_IF_DOUBLE_DASH | OPT_FLOAT_PERCENT | OPT_SI_SUFFIX)) {
        if ((opt.flags & OPT_DASH) && !strcmp(opt.stringval, "enum")) {
            nextopt(OPT_NONZERO);
            printf("enum test result: %d\n", optenum(enumtest));
        } else if ((opt.flags & OPT_DASH) && !strcmp(opt.stringval, "file")) {
            nextopt(OPT_NONZERO);
            printf("loading option file: %s\n", opt.stringval);
            optfile(opt.stringval, 0);
        } else {
            printf("\"%s\"", opt.stringval);
            if (opt.flags & OPT_BOOL) printf(" bool=%d", opt.intval);
            if (opt.flags & OPT_FLOAT) printf(" float=%.2f", opt.floatval);
            if (opt.flags & OPT_INT) printf(" int=%d", opt.intval);
            if (opt.flags & OPT_POSITIVE) printf(" positive");
            if (opt.flags & OPT_NONZERO) printf(" nonzero");
            if (opt.flags & OPT_DASH) printf(" dash");
            if (opt.flags & OPT_DOUBLE_DASH) printf(" double-dash");
            printf("\n");
        }
    }
    closeopt();
    return 0;
}
