#include #include #include "mdx/cmdline.h" static const char *Type[] = { "CMD_NONE", "CMD_OPTC", "CMD_OPTW", "CMD_ARG", "CMD_VAL", "CMD_ERR_OPTC", "CMD_ERR_OPTW", "CMD_ERR_ARG", "CMD_ERR_VAL" }; int main(int argc, char **argv) { Cmdline cmd; Cmdstr cmdstr; int i, n; if (cmdline_init(&cmd, "s")) { fprintf(stderr, "cmdline_init failed\n"); exit(1); } if (cmdline_custom(&cmd, "--", '-', ':', '#', '=', ',')) { fprintf(stderr, "cmdline_custom failed\n"); exit(1); } if ((n = cmdline_parse(&cmd, argc, argv)) < 0) { fprintf(stderr, "cmdline_parse failed\n"); exit(1); } for (i = 0; i < n; i++) { cmdstr = cmdline_cmdstr(&cmd, i); if (cmdstr.type == CMD_NONE) { fprintf(stderr, "cmdline_cmdstr failed for i=%d\n", i); exit(1); } printf("s=%s type=%s num=%d\n", (cmdstr.s != NULL ? cmdstr.s : ""), Type[cmdstr.type], cmdstr.num); } cmdline_done(&cmd); if (argc == 1) { printf("\nUse command line arguments to see how they are parsed.\n" "For instance, try \"%s -sVec=1,2,3\"\n" "using special option \'s\'.\n", argv[0]); } return 0; }